Commit 9cf9e871 by Jamie Madill Committed by Commit Bot

Move LinkResult to the gl:: namespace.

This is a derived type from gl::Error so makes sense to be there. Also makes it more accessible than in ProgramImpl.h BUG=angleproject:1897 Change-Id: Id41b13e5a072745d8c361057f5bef8f152e0452b Reviewed-on: https://chromium-review.googlesource.com/522872Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org> Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
parent 83418fb1
......@@ -131,6 +131,8 @@ inline Error NoError()
return Error(GL_NO_ERROR);
}
using LinkResult = ErrorOrResult<bool>;
} // namespace gl
namespace egl
......
......@@ -31,8 +31,6 @@ struct BlockMemberInfo;
namespace rx
{
using LinkResult = gl::ErrorOrResult<bool>;
class ProgramImpl : angle::NonCopyable
{
public:
......@@ -40,16 +38,16 @@ class ProgramImpl : angle::NonCopyable
virtual ~ProgramImpl() {}
virtual void destroy(const gl::Context *context) {}
virtual LinkResult load(const gl::Context *context,
gl::InfoLog &infoLog,
gl::BinaryInputStream *stream) = 0;
virtual void save(gl::BinaryOutputStream *stream) = 0;
virtual gl::LinkResult load(const gl::Context *context,
gl::InfoLog &infoLog,
gl::BinaryInputStream *stream) = 0;
virtual void save(gl::BinaryOutputStream *stream) = 0;
virtual void setBinaryRetrievableHint(bool retrievable) = 0;
virtual void setSeparable(bool separable) = 0;
virtual LinkResult link(const gl::Context *context,
const gl::VaryingPacking &packing,
gl::InfoLog &infoLog) = 0;
virtual gl::LinkResult link(const gl::Context *context,
const gl::VaryingPacking &packing,
gl::InfoLog &infoLog) = 0;
virtual GLboolean validate(const gl::Caps &caps, gl::InfoLog *infoLog) = 0;
virtual void setUniform1fv(GLint location, GLsizei count, const GLfloat *v) = 0;
......
......@@ -23,12 +23,13 @@ class MockProgramImpl : public rx::ProgramImpl
MockProgramImpl() : ProgramImpl(gl::ProgramState()) {}
virtual ~MockProgramImpl() { destructor(); }
MOCK_METHOD3(load, LinkResult(const gl::Context *, gl::InfoLog &, gl::BinaryInputStream *));
MOCK_METHOD3(load, gl::LinkResult(const gl::Context *, gl::InfoLog &, gl::BinaryInputStream *));
MOCK_METHOD1(save, void(gl::BinaryOutputStream *));
MOCK_METHOD1(setBinaryRetrievableHint, void(bool));
MOCK_METHOD1(setSeparable, void(bool));
MOCK_METHOD3(link, LinkResult(const gl::Context *, const gl::VaryingPacking &, gl::InfoLog &));
MOCK_METHOD3(link,
gl::LinkResult(const gl::Context *, const gl::VaryingPacking &, gl::InfoLog &));
MOCK_METHOD2(validate, GLboolean(const gl::Caps &, gl::InfoLog *));
MOCK_METHOD3(setUniform1fv, void(GLint, GLsizei, const GLfloat *));
......
......@@ -694,9 +694,9 @@ void ProgramD3D::updateSamplerMapping()
}
}
LinkResult ProgramD3D::load(const gl::Context *context,
gl::InfoLog &infoLog,
gl::BinaryInputStream *stream)
gl::LinkResult ProgramD3D::load(const gl::Context *context,
gl::InfoLog &infoLog,
gl::BinaryInputStream *stream)
{
// TODO(jmadill): Use Renderer from contextImpl.
......@@ -1401,7 +1401,8 @@ gl::Error ProgramD3D::getComputeExecutable(ShaderExecutableD3D **outExecutable)
return gl::NoError();
}
LinkResult ProgramD3D::compileProgramExecutables(const gl::Context *context, gl::InfoLog &infoLog)
gl::LinkResult ProgramD3D::compileProgramExecutables(const gl::Context *context,
gl::InfoLog &infoLog)
{
// Ensure the compiler is initialized to avoid race conditions.
ANGLE_TRY(mRenderer->ensureHLSLCompilerInitialized());
......@@ -1458,7 +1459,8 @@ LinkResult ProgramD3D::compileProgramExecutables(const gl::Context *context, gl:
(!usesGeometryShader(GL_POINTS) || pointGS));
}
LinkResult ProgramD3D::compileComputeExecutable(const gl::Context *context, gl::InfoLog &infoLog)
gl::LinkResult ProgramD3D::compileComputeExecutable(const gl::Context *context,
gl::InfoLog &infoLog)
{
// Ensure the compiler is initialized to avoid race conditions.
ANGLE_TRY(mRenderer->ensureHLSLCompilerInitialized());
......@@ -1485,9 +1487,9 @@ LinkResult ProgramD3D::compileComputeExecutable(const gl::Context *context, gl::
return mComputeExecutable.get() != nullptr;
}
LinkResult ProgramD3D::link(const gl::Context *context,
const gl::VaryingPacking &packing,
gl::InfoLog &infoLog)
gl::LinkResult ProgramD3D::link(const gl::Context *context,
const gl::VaryingPacking &packing,
gl::InfoLog &infoLog)
{
const auto &data = context->getContextState();
......@@ -1500,7 +1502,7 @@ LinkResult ProgramD3D::link(const gl::Context *context,
defineUniformsAndAssignRegisters(context);
LinkResult result = compileComputeExecutable(context, infoLog);
gl::LinkResult result = compileComputeExecutable(context, infoLog);
if (result.isError())
{
infoLog << result.getError().getMessage();
......@@ -1574,7 +1576,7 @@ LinkResult ProgramD3D::link(const gl::Context *context,
gatherTransformFeedbackVaryings(packing, builtins[SHADER_VERTEX]);
LinkResult result = compileProgramExecutables(context, infoLog);
gl::LinkResult result = compileProgramExecutables(context, infoLog);
if (result.isError())
{
infoLog << result.getError().getMessage();
......
......@@ -158,9 +158,9 @@ class ProgramD3D : public ProgramImpl
bool usesGeometryShader(GLenum drawMode) const;
bool usesInstancedPointSpriteEmulation() const;
LinkResult load(const gl::Context *context,
gl::InfoLog &infoLog,
gl::BinaryInputStream *stream) override;
gl::LinkResult load(const gl::Context *context,
gl::InfoLog &infoLog,
gl::BinaryInputStream *stream) override;
void save(gl::BinaryOutputStream *stream) override;
void setBinaryRetrievableHint(bool retrievable) override;
void setSeparable(bool separable) override;
......@@ -178,9 +178,9 @@ class ProgramD3D : public ProgramImpl
ShaderExecutableD3D **outExecutable,
gl::InfoLog *infoLog);
gl::Error getComputeExecutable(ShaderExecutableD3D **outExecutable);
LinkResult link(const gl::Context *context,
const gl::VaryingPacking &packing,
gl::InfoLog &infoLog) override;
gl::LinkResult link(const gl::Context *context,
const gl::VaryingPacking &packing,
gl::InfoLog &infoLog) override;
GLboolean validate(const gl::Caps &caps, gl::InfoLog *infoLog) override;
bool getUniformBlockSize(const std::string &blockName, size_t *sizeOut) const override;
......@@ -364,8 +364,8 @@ class ProgramD3D : public ProgramImpl
const GLfloat *value,
GLenum targetUniformType);
LinkResult compileProgramExecutables(const gl::Context *context, gl::InfoLog &infoLog);
LinkResult compileComputeExecutable(const gl::Context *context, gl::InfoLog &infoLog);
gl::LinkResult compileProgramExecutables(const gl::Context *context, gl::InfoLog &infoLog);
gl::LinkResult compileComputeExecutable(const gl::Context *context, gl::InfoLog &infoLog);
void gatherTransformFeedbackVaryings(const gl::VaryingPacking &varyings,
const BuiltinInfo &builtins);
......
......@@ -49,9 +49,9 @@ ProgramGL::~ProgramGL()
mProgramID = 0;
}
LinkResult ProgramGL::load(const gl::Context *context,
gl::InfoLog &infoLog,
gl::BinaryInputStream *stream)
gl::LinkResult ProgramGL::load(const gl::Context *context,
gl::InfoLog &infoLog,
gl::BinaryInputStream *stream)
{
preLink();
......@@ -116,9 +116,9 @@ void ProgramGL::setSeparable(bool separable)
mFunctions->programParameteri(mProgramID, GL_PROGRAM_SEPARABLE, separable ? GL_TRUE : GL_FALSE);
}
LinkResult ProgramGL::link(const gl::Context *context,
const gl::VaryingPacking &packing,
gl::InfoLog &infoLog)
gl::LinkResult ProgramGL::link(const gl::Context *context,
const gl::VaryingPacking &packing,
gl::InfoLog &infoLog)
{
preLink();
......
......@@ -31,16 +31,16 @@ class ProgramGL : public ProgramImpl
bool enablePathRendering);
~ProgramGL() override;
LinkResult load(const gl::Context *contextImpl,
gl::InfoLog &infoLog,
gl::BinaryInputStream *stream) override;
gl::LinkResult load(const gl::Context *contextImpl,
gl::InfoLog &infoLog,
gl::BinaryInputStream *stream) override;
void save(gl::BinaryOutputStream *stream) override;
void setBinaryRetrievableHint(bool retrievable) override;
void setSeparable(bool separable) override;
LinkResult link(const gl::Context *contextImpl,
const gl::VaryingPacking &packing,
gl::InfoLog &infoLog) override;
gl::LinkResult link(const gl::Context *contextImpl,
const gl::VaryingPacking &packing,
gl::InfoLog &infoLog) override;
GLboolean validate(const gl::Caps &caps, gl::InfoLog *infoLog) override;
void setUniform1fv(GLint location, GLsizei count, const GLfloat *v) override;
......
......@@ -22,9 +22,9 @@ ProgramNULL::~ProgramNULL()
{
}
LinkResult ProgramNULL::load(const gl::Context *contextImpl,
gl::InfoLog &infoLog,
gl::BinaryInputStream *stream)
gl::LinkResult ProgramNULL::load(const gl::Context *contextImpl,
gl::InfoLog &infoLog,
gl::BinaryInputStream *stream)
{
return true;
}
......@@ -41,9 +41,9 @@ void ProgramNULL::setSeparable(bool separable)
{
}
LinkResult ProgramNULL::link(const gl::Context *contextImpl,
const gl::VaryingPacking &packing,
gl::InfoLog &infoLog)
gl::LinkResult ProgramNULL::link(const gl::Context *contextImpl,
const gl::VaryingPacking &packing,
gl::InfoLog &infoLog)
{
return true;
}
......
......@@ -21,16 +21,16 @@ class ProgramNULL : public ProgramImpl
ProgramNULL(const gl::ProgramState &state);
~ProgramNULL() override;
LinkResult load(const gl::Context *context,
gl::InfoLog &infoLog,
gl::BinaryInputStream *stream) override;
gl::LinkResult load(const gl::Context *context,
gl::InfoLog &infoLog,
gl::BinaryInputStream *stream) override;
void save(gl::BinaryOutputStream *stream) override;
void setBinaryRetrievableHint(bool retrievable) override;
void setSeparable(bool separable) override;
LinkResult link(const gl::Context *context,
const gl::VaryingPacking &packing,
gl::InfoLog &infoLog) override;
gl::LinkResult link(const gl::Context *context,
const gl::VaryingPacking &packing,
gl::InfoLog &infoLog) override;
GLboolean validate(const gl::Caps &caps, gl::InfoLog *infoLog) override;
void setUniform1fv(GLint location, GLsizei count, const GLfloat *v) override;
......
......@@ -63,10 +63,10 @@ GlslangWrapper::~GlslangWrapper()
ASSERT(result != 0);
}
LinkResult GlslangWrapper::linkProgram(const std::string &vertexSource,
const std::string &fragmentSource,
std::vector<uint32_t> *vertexCodeOut,
std::vector<uint32_t> *fragmentCodeOut)
gl::LinkResult GlslangWrapper::linkProgram(const std::string &vertexSource,
const std::string &fragmentSource,
std::vector<uint32_t> *vertexCodeOut,
std::vector<uint32_t> *fragmentCodeOut)
{
std::array<const char *, 2> strings = {{vertexSource.c_str(), fragmentSource.c_str()}};
......
......@@ -23,10 +23,10 @@ class GlslangWrapper : public RefCountObjectNoID
static GlslangWrapper *GetReference();
static void ReleaseReference();
LinkResult linkProgram(const std::string &vertexSource,
const std::string &fragmentSource,
std::vector<uint32_t> *vertexCodeOut,
std::vector<uint32_t> *fragmentCodeOut);
gl::LinkResult linkProgram(const std::string &vertexSource,
const std::string &fragmentSource,
std::vector<uint32_t> *vertexCodeOut,
std::vector<uint32_t> *fragmentCodeOut);
private:
GlslangWrapper();
......
......@@ -35,9 +35,9 @@ void ProgramVk::destroy(const gl::Context *contextImpl)
mPipelineLayout.destroy(device);
}
LinkResult ProgramVk::load(const gl::Context *contextImpl,
gl::InfoLog &infoLog,
gl::BinaryInputStream *stream)
gl::LinkResult ProgramVk::load(const gl::Context *contextImpl,
gl::InfoLog &infoLog,
gl::BinaryInputStream *stream)
{
UNIMPLEMENTED();
return gl::InternalError();
......@@ -58,9 +58,9 @@ void ProgramVk::setSeparable(bool separable)
UNIMPLEMENTED();
}
LinkResult ProgramVk::link(const gl::Context *glContext,
const gl::VaryingPacking &packing,
gl::InfoLog &infoLog)
gl::LinkResult ProgramVk::link(const gl::Context *glContext,
const gl::VaryingPacking &packing,
gl::InfoLog &infoLog)
{
ContextVk *context = GetImplAs<ContextVk>(glContext);
RendererVk *renderer = context->getRenderer();
......
......@@ -23,16 +23,16 @@ class ProgramVk : public ProgramImpl
~ProgramVk() override;
void destroy(const gl::Context *context) override;
LinkResult load(const gl::Context *context,
gl::InfoLog &infoLog,
gl::BinaryInputStream *stream) override;
gl::LinkResult load(const gl::Context *context,
gl::InfoLog &infoLog,
gl::BinaryInputStream *stream) override;
void save(gl::BinaryOutputStream *stream) override;
void setBinaryRetrievableHint(bool retrievable) override;
void setSeparable(bool separable) override;
LinkResult link(const gl::Context *context,
const gl::VaryingPacking &packing,
gl::InfoLog &infoLog) override;
gl::LinkResult link(const gl::Context *context,
const gl::VaryingPacking &packing,
gl::InfoLog &infoLog) override;
GLboolean validate(const gl::Caps &caps, gl::InfoLog *infoLog) override;
void setUniform1fv(GLint location, GLsizei count, const GLfloat *v) override;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment