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() ...@@ -131,6 +131,8 @@ inline Error NoError()
return Error(GL_NO_ERROR); return Error(GL_NO_ERROR);
} }
using LinkResult = ErrorOrResult<bool>;
} // namespace gl } // namespace gl
namespace egl namespace egl
......
...@@ -31,8 +31,6 @@ struct BlockMemberInfo; ...@@ -31,8 +31,6 @@ struct BlockMemberInfo;
namespace rx namespace rx
{ {
using LinkResult = gl::ErrorOrResult<bool>;
class ProgramImpl : angle::NonCopyable class ProgramImpl : angle::NonCopyable
{ {
public: public:
...@@ -40,16 +38,16 @@ class ProgramImpl : angle::NonCopyable ...@@ -40,16 +38,16 @@ class ProgramImpl : angle::NonCopyable
virtual ~ProgramImpl() {} virtual ~ProgramImpl() {}
virtual void destroy(const gl::Context *context) {} virtual void destroy(const gl::Context *context) {}
virtual LinkResult load(const gl::Context *context, virtual gl::LinkResult load(const gl::Context *context,
gl::InfoLog &infoLog, gl::InfoLog &infoLog,
gl::BinaryInputStream *stream) = 0; gl::BinaryInputStream *stream) = 0;
virtual void save(gl::BinaryOutputStream *stream) = 0; virtual void save(gl::BinaryOutputStream *stream) = 0;
virtual void setBinaryRetrievableHint(bool retrievable) = 0; virtual void setBinaryRetrievableHint(bool retrievable) = 0;
virtual void setSeparable(bool separable) = 0; virtual void setSeparable(bool separable) = 0;
virtual LinkResult link(const gl::Context *context, virtual gl::LinkResult link(const gl::Context *context,
const gl::VaryingPacking &packing, const gl::VaryingPacking &packing,
gl::InfoLog &infoLog) = 0; gl::InfoLog &infoLog) = 0;
virtual GLboolean validate(const gl::Caps &caps, 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; virtual void setUniform1fv(GLint location, GLsizei count, const GLfloat *v) = 0;
......
...@@ -23,12 +23,13 @@ class MockProgramImpl : public rx::ProgramImpl ...@@ -23,12 +23,13 @@ class MockProgramImpl : public rx::ProgramImpl
MockProgramImpl() : ProgramImpl(gl::ProgramState()) {} MockProgramImpl() : ProgramImpl(gl::ProgramState()) {}
virtual ~MockProgramImpl() { destructor(); } 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(save, void(gl::BinaryOutputStream *));
MOCK_METHOD1(setBinaryRetrievableHint, void(bool)); MOCK_METHOD1(setBinaryRetrievableHint, void(bool));
MOCK_METHOD1(setSeparable, 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_METHOD2(validate, GLboolean(const gl::Caps &, gl::InfoLog *));
MOCK_METHOD3(setUniform1fv, void(GLint, GLsizei, const GLfloat *)); MOCK_METHOD3(setUniform1fv, void(GLint, GLsizei, const GLfloat *));
......
...@@ -694,9 +694,9 @@ void ProgramD3D::updateSamplerMapping() ...@@ -694,9 +694,9 @@ void ProgramD3D::updateSamplerMapping()
} }
} }
LinkResult ProgramD3D::load(const gl::Context *context, gl::LinkResult ProgramD3D::load(const gl::Context *context,
gl::InfoLog &infoLog, gl::InfoLog &infoLog,
gl::BinaryInputStream *stream) gl::BinaryInputStream *stream)
{ {
// TODO(jmadill): Use Renderer from contextImpl. // TODO(jmadill): Use Renderer from contextImpl.
...@@ -1401,7 +1401,8 @@ gl::Error ProgramD3D::getComputeExecutable(ShaderExecutableD3D **outExecutable) ...@@ -1401,7 +1401,8 @@ gl::Error ProgramD3D::getComputeExecutable(ShaderExecutableD3D **outExecutable)
return gl::NoError(); 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. // Ensure the compiler is initialized to avoid race conditions.
ANGLE_TRY(mRenderer->ensureHLSLCompilerInitialized()); ANGLE_TRY(mRenderer->ensureHLSLCompilerInitialized());
...@@ -1458,7 +1459,8 @@ LinkResult ProgramD3D::compileProgramExecutables(const gl::Context *context, gl: ...@@ -1458,7 +1459,8 @@ LinkResult ProgramD3D::compileProgramExecutables(const gl::Context *context, gl:
(!usesGeometryShader(GL_POINTS) || pointGS)); (!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. // Ensure the compiler is initialized to avoid race conditions.
ANGLE_TRY(mRenderer->ensureHLSLCompilerInitialized()); ANGLE_TRY(mRenderer->ensureHLSLCompilerInitialized());
...@@ -1485,9 +1487,9 @@ LinkResult ProgramD3D::compileComputeExecutable(const gl::Context *context, gl:: ...@@ -1485,9 +1487,9 @@ LinkResult ProgramD3D::compileComputeExecutable(const gl::Context *context, gl::
return mComputeExecutable.get() != nullptr; return mComputeExecutable.get() != nullptr;
} }
LinkResult ProgramD3D::link(const gl::Context *context, gl::LinkResult ProgramD3D::link(const gl::Context *context,
const gl::VaryingPacking &packing, const gl::VaryingPacking &packing,
gl::InfoLog &infoLog) gl::InfoLog &infoLog)
{ {
const auto &data = context->getContextState(); const auto &data = context->getContextState();
...@@ -1500,7 +1502,7 @@ LinkResult ProgramD3D::link(const gl::Context *context, ...@@ -1500,7 +1502,7 @@ LinkResult ProgramD3D::link(const gl::Context *context,
defineUniformsAndAssignRegisters(context); defineUniformsAndAssignRegisters(context);
LinkResult result = compileComputeExecutable(context, infoLog); gl::LinkResult result = compileComputeExecutable(context, infoLog);
if (result.isError()) if (result.isError())
{ {
infoLog << result.getError().getMessage(); infoLog << result.getError().getMessage();
...@@ -1574,7 +1576,7 @@ LinkResult ProgramD3D::link(const gl::Context *context, ...@@ -1574,7 +1576,7 @@ LinkResult ProgramD3D::link(const gl::Context *context,
gatherTransformFeedbackVaryings(packing, builtins[SHADER_VERTEX]); gatherTransformFeedbackVaryings(packing, builtins[SHADER_VERTEX]);
LinkResult result = compileProgramExecutables(context, infoLog); gl::LinkResult result = compileProgramExecutables(context, infoLog);
if (result.isError()) if (result.isError())
{ {
infoLog << result.getError().getMessage(); infoLog << result.getError().getMessage();
......
...@@ -158,9 +158,9 @@ class ProgramD3D : public ProgramImpl ...@@ -158,9 +158,9 @@ class ProgramD3D : public ProgramImpl
bool usesGeometryShader(GLenum drawMode) const; bool usesGeometryShader(GLenum drawMode) const;
bool usesInstancedPointSpriteEmulation() const; bool usesInstancedPointSpriteEmulation() const;
LinkResult load(const gl::Context *context, gl::LinkResult load(const gl::Context *context,
gl::InfoLog &infoLog, gl::InfoLog &infoLog,
gl::BinaryInputStream *stream) override; gl::BinaryInputStream *stream) override;
void save(gl::BinaryOutputStream *stream) override; void save(gl::BinaryOutputStream *stream) override;
void setBinaryRetrievableHint(bool retrievable) override; void setBinaryRetrievableHint(bool retrievable) override;
void setSeparable(bool separable) override; void setSeparable(bool separable) override;
...@@ -178,9 +178,9 @@ class ProgramD3D : public ProgramImpl ...@@ -178,9 +178,9 @@ class ProgramD3D : public ProgramImpl
ShaderExecutableD3D **outExecutable, ShaderExecutableD3D **outExecutable,
gl::InfoLog *infoLog); gl::InfoLog *infoLog);
gl::Error getComputeExecutable(ShaderExecutableD3D **outExecutable); gl::Error getComputeExecutable(ShaderExecutableD3D **outExecutable);
LinkResult link(const gl::Context *context, gl::LinkResult link(const gl::Context *context,
const gl::VaryingPacking &packing, const gl::VaryingPacking &packing,
gl::InfoLog &infoLog) override; gl::InfoLog &infoLog) override;
GLboolean validate(const gl::Caps &caps, 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; bool getUniformBlockSize(const std::string &blockName, size_t *sizeOut) const override;
...@@ -364,8 +364,8 @@ class ProgramD3D : public ProgramImpl ...@@ -364,8 +364,8 @@ class ProgramD3D : public ProgramImpl
const GLfloat *value, const GLfloat *value,
GLenum targetUniformType); GLenum targetUniformType);
LinkResult compileProgramExecutables(const gl::Context *context, gl::InfoLog &infoLog); gl::LinkResult compileProgramExecutables(const gl::Context *context, gl::InfoLog &infoLog);
LinkResult compileComputeExecutable(const gl::Context *context, gl::InfoLog &infoLog); gl::LinkResult compileComputeExecutable(const gl::Context *context, gl::InfoLog &infoLog);
void gatherTransformFeedbackVaryings(const gl::VaryingPacking &varyings, void gatherTransformFeedbackVaryings(const gl::VaryingPacking &varyings,
const BuiltinInfo &builtins); const BuiltinInfo &builtins);
......
...@@ -49,9 +49,9 @@ ProgramGL::~ProgramGL() ...@@ -49,9 +49,9 @@ ProgramGL::~ProgramGL()
mProgramID = 0; mProgramID = 0;
} }
LinkResult ProgramGL::load(const gl::Context *context, gl::LinkResult ProgramGL::load(const gl::Context *context,
gl::InfoLog &infoLog, gl::InfoLog &infoLog,
gl::BinaryInputStream *stream) gl::BinaryInputStream *stream)
{ {
preLink(); preLink();
...@@ -116,9 +116,9 @@ void ProgramGL::setSeparable(bool separable) ...@@ -116,9 +116,9 @@ void ProgramGL::setSeparable(bool separable)
mFunctions->programParameteri(mProgramID, GL_PROGRAM_SEPARABLE, separable ? GL_TRUE : GL_FALSE); mFunctions->programParameteri(mProgramID, GL_PROGRAM_SEPARABLE, separable ? GL_TRUE : GL_FALSE);
} }
LinkResult ProgramGL::link(const gl::Context *context, gl::LinkResult ProgramGL::link(const gl::Context *context,
const gl::VaryingPacking &packing, const gl::VaryingPacking &packing,
gl::InfoLog &infoLog) gl::InfoLog &infoLog)
{ {
preLink(); preLink();
......
...@@ -31,16 +31,16 @@ class ProgramGL : public ProgramImpl ...@@ -31,16 +31,16 @@ class ProgramGL : public ProgramImpl
bool enablePathRendering); bool enablePathRendering);
~ProgramGL() override; ~ProgramGL() override;
LinkResult load(const gl::Context *contextImpl, gl::LinkResult load(const gl::Context *contextImpl,
gl::InfoLog &infoLog, gl::InfoLog &infoLog,
gl::BinaryInputStream *stream) override; gl::BinaryInputStream *stream) override;
void save(gl::BinaryOutputStream *stream) override; void save(gl::BinaryOutputStream *stream) override;
void setBinaryRetrievableHint(bool retrievable) override; void setBinaryRetrievableHint(bool retrievable) override;
void setSeparable(bool separable) override; void setSeparable(bool separable) override;
LinkResult link(const gl::Context *contextImpl, gl::LinkResult link(const gl::Context *contextImpl,
const gl::VaryingPacking &packing, const gl::VaryingPacking &packing,
gl::InfoLog &infoLog) override; gl::InfoLog &infoLog) override;
GLboolean validate(const gl::Caps &caps, gl::InfoLog *infoLog) override; GLboolean validate(const gl::Caps &caps, gl::InfoLog *infoLog) override;
void setUniform1fv(GLint location, GLsizei count, const GLfloat *v) override; void setUniform1fv(GLint location, GLsizei count, const GLfloat *v) override;
......
...@@ -22,9 +22,9 @@ ProgramNULL::~ProgramNULL() ...@@ -22,9 +22,9 @@ ProgramNULL::~ProgramNULL()
{ {
} }
LinkResult ProgramNULL::load(const gl::Context *contextImpl, gl::LinkResult ProgramNULL::load(const gl::Context *contextImpl,
gl::InfoLog &infoLog, gl::InfoLog &infoLog,
gl::BinaryInputStream *stream) gl::BinaryInputStream *stream)
{ {
return true; return true;
} }
...@@ -41,9 +41,9 @@ void ProgramNULL::setSeparable(bool separable) ...@@ -41,9 +41,9 @@ void ProgramNULL::setSeparable(bool separable)
{ {
} }
LinkResult ProgramNULL::link(const gl::Context *contextImpl, gl::LinkResult ProgramNULL::link(const gl::Context *contextImpl,
const gl::VaryingPacking &packing, const gl::VaryingPacking &packing,
gl::InfoLog &infoLog) gl::InfoLog &infoLog)
{ {
return true; return true;
} }
......
...@@ -21,16 +21,16 @@ class ProgramNULL : public ProgramImpl ...@@ -21,16 +21,16 @@ class ProgramNULL : public ProgramImpl
ProgramNULL(const gl::ProgramState &state); ProgramNULL(const gl::ProgramState &state);
~ProgramNULL() override; ~ProgramNULL() override;
LinkResult load(const gl::Context *context, gl::LinkResult load(const gl::Context *context,
gl::InfoLog &infoLog, gl::InfoLog &infoLog,
gl::BinaryInputStream *stream) override; gl::BinaryInputStream *stream) override;
void save(gl::BinaryOutputStream *stream) override; void save(gl::BinaryOutputStream *stream) override;
void setBinaryRetrievableHint(bool retrievable) override; void setBinaryRetrievableHint(bool retrievable) override;
void setSeparable(bool separable) override; void setSeparable(bool separable) override;
LinkResult link(const gl::Context *context, gl::LinkResult link(const gl::Context *context,
const gl::VaryingPacking &packing, const gl::VaryingPacking &packing,
gl::InfoLog &infoLog) override; gl::InfoLog &infoLog) override;
GLboolean validate(const gl::Caps &caps, gl::InfoLog *infoLog) override; GLboolean validate(const gl::Caps &caps, gl::InfoLog *infoLog) override;
void setUniform1fv(GLint location, GLsizei count, const GLfloat *v) override; void setUniform1fv(GLint location, GLsizei count, const GLfloat *v) override;
......
...@@ -63,10 +63,10 @@ GlslangWrapper::~GlslangWrapper() ...@@ -63,10 +63,10 @@ GlslangWrapper::~GlslangWrapper()
ASSERT(result != 0); ASSERT(result != 0);
} }
LinkResult GlslangWrapper::linkProgram(const std::string &vertexSource, gl::LinkResult GlslangWrapper::linkProgram(const std::string &vertexSource,
const std::string &fragmentSource, const std::string &fragmentSource,
std::vector<uint32_t> *vertexCodeOut, std::vector<uint32_t> *vertexCodeOut,
std::vector<uint32_t> *fragmentCodeOut) std::vector<uint32_t> *fragmentCodeOut)
{ {
std::array<const char *, 2> strings = {{vertexSource.c_str(), fragmentSource.c_str()}}; std::array<const char *, 2> strings = {{vertexSource.c_str(), fragmentSource.c_str()}};
......
...@@ -23,10 +23,10 @@ class GlslangWrapper : public RefCountObjectNoID ...@@ -23,10 +23,10 @@ class GlslangWrapper : public RefCountObjectNoID
static GlslangWrapper *GetReference(); static GlslangWrapper *GetReference();
static void ReleaseReference(); static void ReleaseReference();
LinkResult linkProgram(const std::string &vertexSource, gl::LinkResult linkProgram(const std::string &vertexSource,
const std::string &fragmentSource, const std::string &fragmentSource,
std::vector<uint32_t> *vertexCodeOut, std::vector<uint32_t> *vertexCodeOut,
std::vector<uint32_t> *fragmentCodeOut); std::vector<uint32_t> *fragmentCodeOut);
private: private:
GlslangWrapper(); GlslangWrapper();
......
...@@ -35,9 +35,9 @@ void ProgramVk::destroy(const gl::Context *contextImpl) ...@@ -35,9 +35,9 @@ void ProgramVk::destroy(const gl::Context *contextImpl)
mPipelineLayout.destroy(device); mPipelineLayout.destroy(device);
} }
LinkResult ProgramVk::load(const gl::Context *contextImpl, gl::LinkResult ProgramVk::load(const gl::Context *contextImpl,
gl::InfoLog &infoLog, gl::InfoLog &infoLog,
gl::BinaryInputStream *stream) gl::BinaryInputStream *stream)
{ {
UNIMPLEMENTED(); UNIMPLEMENTED();
return gl::InternalError(); return gl::InternalError();
...@@ -58,9 +58,9 @@ void ProgramVk::setSeparable(bool separable) ...@@ -58,9 +58,9 @@ void ProgramVk::setSeparable(bool separable)
UNIMPLEMENTED(); UNIMPLEMENTED();
} }
LinkResult ProgramVk::link(const gl::Context *glContext, gl::LinkResult ProgramVk::link(const gl::Context *glContext,
const gl::VaryingPacking &packing, const gl::VaryingPacking &packing,
gl::InfoLog &infoLog) gl::InfoLog &infoLog)
{ {
ContextVk *context = GetImplAs<ContextVk>(glContext); ContextVk *context = GetImplAs<ContextVk>(glContext);
RendererVk *renderer = context->getRenderer(); RendererVk *renderer = context->getRenderer();
......
...@@ -23,16 +23,16 @@ class ProgramVk : public ProgramImpl ...@@ -23,16 +23,16 @@ class ProgramVk : public ProgramImpl
~ProgramVk() override; ~ProgramVk() override;
void destroy(const gl::Context *context) override; void destroy(const gl::Context *context) override;
LinkResult load(const gl::Context *context, gl::LinkResult load(const gl::Context *context,
gl::InfoLog &infoLog, gl::InfoLog &infoLog,
gl::BinaryInputStream *stream) override; gl::BinaryInputStream *stream) override;
void save(gl::BinaryOutputStream *stream) override; void save(gl::BinaryOutputStream *stream) override;
void setBinaryRetrievableHint(bool retrievable) override; void setBinaryRetrievableHint(bool retrievable) override;
void setSeparable(bool separable) override; void setSeparable(bool separable) override;
LinkResult link(const gl::Context *context, gl::LinkResult link(const gl::Context *context,
const gl::VaryingPacking &packing, const gl::VaryingPacking &packing,
gl::InfoLog &infoLog) override; gl::InfoLog &infoLog) override;
GLboolean validate(const gl::Caps &caps, gl::InfoLog *infoLog) override; GLboolean validate(const gl::Caps &caps, gl::InfoLog *infoLog) override;
void setUniform1fv(GLint location, GLsizei count, const GLfloat *v) 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