Browse Source

Refactoring of internal OpenGL object names.

vectorfields
Vladimír Vondruš 14 years ago
parent
commit
2595974fae
  1. 18
      src/AbstractShaderProgram.cpp
  2. 10
      src/AbstractShaderProgram.h
  3. 12
      src/AbstractTexture.h
  4. 12
      src/Buffer.h
  5. 8
      src/BufferedTexture.h
  6. 8
      src/Framebuffer.h
  7. 16
      src/Query.cpp
  8. 15
      src/Query.h

18
src/AbstractShaderProgram.cpp

@ -28,7 +28,7 @@ namespace Magnum {
bool AbstractShaderProgram::use() { bool AbstractShaderProgram::use() {
if(state != Linked) return false; if(state != Linked) return false;
glUseProgram(program); glUseProgram(_id);
return true; return true;
} }
@ -36,26 +36,26 @@ bool AbstractShaderProgram::attachShader(Shader& shader) {
GLuint _shader = shader.compile(); GLuint _shader = shader.compile();
if(!_shader) return false; if(!_shader) return false;
glAttachShader(program, _shader); glAttachShader(_id, _shader);
return true; return true;
} }
void AbstractShaderProgram::bindAttributeLocation(GLuint location, const string& name) { void AbstractShaderProgram::bindAttributeLocation(GLuint location, const string& name) {
CORRADE_ASSERT(state == Initialized, "AbstractShaderProgram: attribute cannot be bound after linking.", ); CORRADE_ASSERT(state == Initialized, "AbstractShaderProgram: attribute cannot be bound after linking.", );
glBindAttribLocation(program, location, name.c_str()); glBindAttribLocation(_id, location, name.c_str());
} }
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
void AbstractShaderProgram::bindFragmentDataLocation(GLuint location, const std::string& name) { void AbstractShaderProgram::bindFragmentDataLocation(GLuint location, const std::string& name) {
CORRADE_ASSERT(state == Initialized, "AbstractShaderProgram: fragment data location cannot be bound after linking.", ); CORRADE_ASSERT(state == Initialized, "AbstractShaderProgram: fragment data location cannot be bound after linking.", );
glBindFragDataLocation(program, location, name.c_str()); glBindFragDataLocation(_id, location, name.c_str());
} }
void AbstractShaderProgram::bindFragmentDataLocationIndexed(GLuint location, GLuint index, const std::string& name) { void AbstractShaderProgram::bindFragmentDataLocationIndexed(GLuint location, GLuint index, const std::string& name) {
CORRADE_ASSERT(state == Initialized, "AbstractShaderProgram: fragment data location cannot be bound after linking.", ); CORRADE_ASSERT(state == Initialized, "AbstractShaderProgram: fragment data location cannot be bound after linking.", );
glBindFragDataLocationIndexed(program, location, index, name.c_str()); glBindFragDataLocationIndexed(_id, location, index, name.c_str());
} }
#endif #endif
@ -64,15 +64,15 @@ void AbstractShaderProgram::link() {
if(state != Initialized) return; if(state != Initialized) return;
/* Link shader program */ /* Link shader program */
glLinkProgram(program); glLinkProgram(_id);
/* Check link status */ /* Check link status */
GLint status; GLint status;
glGetProgramiv(program, GL_LINK_STATUS, &status); glGetProgramiv(_id, GL_LINK_STATUS, &status);
/* Display errors or warnings */ /* Display errors or warnings */
char message[LINKER_MESSAGE_MAX_LENGTH]; char message[LINKER_MESSAGE_MAX_LENGTH];
glGetProgramInfoLog(program, LINKER_MESSAGE_MAX_LENGTH, nullptr, message); glGetProgramInfoLog(_id, LINKER_MESSAGE_MAX_LENGTH, nullptr, message);
/* Show error log and delete shader */ /* Show error log and delete shader */
if(status == GL_FALSE) { if(status == GL_FALSE) {
@ -92,7 +92,7 @@ GLint AbstractShaderProgram::uniformLocation(const std::string& name) {
/** @todo What if linking just failed (not programmer error?) */ /** @todo What if linking just failed (not programmer error?) */
CORRADE_ASSERT(state == Linked, "AbstractShaderProgram: uniform location cannot be retrieved before linking.", -1); CORRADE_ASSERT(state == Linked, "AbstractShaderProgram: uniform location cannot be retrieved before linking.", -1);
GLint location = glGetUniformLocation(program, name.c_str()); GLint location = glGetUniformLocation(_id, name.c_str());
if(location == -1) if(location == -1)
Warning() << "AbstractShaderProgram: location of uniform \'" + name + "\' cannot be retrieved!"; Warning() << "AbstractShaderProgram: location of uniform \'" + name + "\' cannot be retrieved!";
return location; return location;

10
src/AbstractShaderProgram.h

@ -220,7 +220,7 @@ class MAGNUM_EXPORT AbstractShaderProgram {
* @see @fn_gl{CreateProgram} * @see @fn_gl{CreateProgram}
*/ */
inline AbstractShaderProgram(): state(Initialized) { inline AbstractShaderProgram(): state(Initialized) {
program = glCreateProgram(); _id = glCreateProgram();
} }
/** /**
@ -253,7 +253,7 @@ class MAGNUM_EXPORT AbstractShaderProgram {
* @requires_gles30 (no extension providing this functionality) * @requires_gles30 (no extension providing this functionality)
*/ */
inline void setRetrievableBinary(bool enabled) { inline void setRetrievableBinary(bool enabled) {
glProgramParameteri(program, GL_PROGRAM_BINARY_RETRIEVABLE_HINT, enabled ? GL_TRUE : GL_FALSE); glProgramParameteri(_id, GL_PROGRAM_BINARY_RETRIEVABLE_HINT, enabled ? GL_TRUE : GL_FALSE);
} }
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
@ -268,7 +268,7 @@ class MAGNUM_EXPORT AbstractShaderProgram {
* @requires_gl41 Extension @extension{ARB,separate_shader_objects} * @requires_gl41 Extension @extension{ARB,separate_shader_objects}
*/ */
inline void setSeparable(bool enabled) { inline void setSeparable(bool enabled) {
glProgramParameteri(program, GL_PROGRAM_SEPARABLE, enabled ? GL_TRUE : GL_FALSE); glProgramParameteri(_id, GL_PROGRAM_SEPARABLE, enabled ? GL_TRUE : GL_FALSE);
} }
#endif #endif
@ -638,11 +638,11 @@ class MAGNUM_EXPORT AbstractShaderProgram {
Failed Failed
}; };
GLuint program; GLuint _id;
State state; State state;
}; };
inline AbstractShaderProgram::~AbstractShaderProgram() { glDeleteProgram(program); } inline AbstractShaderProgram::~AbstractShaderProgram() { glDeleteProgram(_id); }
} }

12
src/AbstractTexture.h

@ -557,7 +557,7 @@ class MAGNUM_EXPORT AbstractTexture {
* @see @fn_gl{GenTextures} * @see @fn_gl{GenTextures}
*/ */
inline AbstractTexture(GLenum target): _target(target) { inline AbstractTexture(GLenum target): _target(target) {
glGenTextures(1, &texture); glGenTextures(1, &_id);
} }
/** /**
@ -568,8 +568,8 @@ class MAGNUM_EXPORT AbstractTexture {
*/ */
virtual ~AbstractTexture() = 0; virtual ~AbstractTexture() = 0;
/** @brief OpenGL internal texture ID */ /** @brief OpenGL texture ID */
inline GLuint id() const { return texture; } inline GLuint id() const { return _id; }
/** /**
* @brief Bind texture for rendering * @brief Bind texture for rendering
@ -675,14 +675,14 @@ class MAGNUM_EXPORT AbstractTexture {
* @see @fn_gl{BindTexture} * @see @fn_gl{BindTexture}
*/ */
inline void bind() { inline void bind() {
glBindTexture(_target, texture); glBindTexture(_target, _id);
} }
private: private:
GLuint texture; GLuint _id;
}; };
inline AbstractTexture::~AbstractTexture() { glDeleteTextures(1, &texture); } inline AbstractTexture::~AbstractTexture() { glDeleteTextures(1, &_id); }
/** @relates AbstractTexture /** @relates AbstractTexture
@brief Convertor of component count and data type to InternalFormat @brief Convertor of component count and data type to InternalFormat

12
src/Buffer.h

@ -263,7 +263,7 @@ class MAGNUM_EXPORT Buffer {
* @see @fn_gl{GenBuffers} * @see @fn_gl{GenBuffers}
*/ */
inline Buffer(Target defaultTarget): _defaultTarget(defaultTarget) { inline Buffer(Target defaultTarget): _defaultTarget(defaultTarget) {
glGenBuffers(1, &buffer); glGenBuffers(1, &_id);
} }
/** /**
@ -273,14 +273,14 @@ class MAGNUM_EXPORT Buffer {
* @see @fn_gl{DeleteBuffers} * @see @fn_gl{DeleteBuffers}
*/ */
inline virtual ~Buffer() { inline virtual ~Buffer() {
glDeleteBuffers(1, &buffer); glDeleteBuffers(1, &_id);
} }
/** @brief Default bind type */ /** @brief Default bind type */
inline Target defaultTarget() const { return _defaultTarget; } inline Target defaultTarget() const { return _defaultTarget; }
/** @brief OpenGL internal buffer ID */ /** @brief OpenGL buffer ID */
inline GLuint id() const { return buffer; } inline GLuint id() const { return _id; }
/** /**
* @brief Bind buffer * @brief Bind buffer
@ -297,7 +297,7 @@ class MAGNUM_EXPORT Buffer {
* @see @fn_gl{BindBuffer} * @see @fn_gl{BindBuffer}
*/ */
inline void bind(Target target) { inline void bind(Target target) {
glBindBuffer(static_cast<GLenum>(target), buffer); glBindBuffer(static_cast<GLenum>(target), _id);
} }
/** /**
@ -480,7 +480,7 @@ class MAGNUM_EXPORT Buffer {
} }
private: private:
GLuint buffer; GLuint _id;
Target _defaultTarget; Target _defaultTarget;
}; };

8
src/BufferedTexture.h

@ -124,7 +124,7 @@ class BufferedTexture {
* @see @fn_gl{GenTextures} * @see @fn_gl{GenTextures}
*/ */
inline BufferedTexture() { inline BufferedTexture() {
glGenTextures(1, &texture); glGenTextures(1, &_id);
} }
/** /**
@ -134,7 +134,7 @@ class BufferedTexture {
* @see @fn_gl{DeleteTextures} * @see @fn_gl{DeleteTextures}
*/ */
inline virtual ~BufferedTexture() { inline virtual ~BufferedTexture() {
glDeleteTextures(1, &texture); glDeleteTextures(1, &_id);
} }
/** /**
@ -166,10 +166,10 @@ class BufferedTexture {
} }
private: private:
GLuint texture; GLuint _id;
inline void bind() { inline void bind() {
glBindTexture(GL_TEXTURE_BUFFER, texture); glBindTexture(GL_TEXTURE_BUFFER, _id);
} }
}; };

8
src/Framebuffer.h

@ -756,7 +756,7 @@ class MAGNUM_EXPORT Framebuffer {
* @see @fn_gl{GenFramebuffers} * @see @fn_gl{GenFramebuffers}
* @requires_gl30 Extension @extension{EXT,framebuffer_object} * @requires_gl30 Extension @extension{EXT,framebuffer_object}
*/ */
inline Framebuffer() { glGenFramebuffers(1, &framebuffer); } inline Framebuffer() { glGenFramebuffers(1, &_id); }
/** /**
* @brief Destructor * @brief Destructor
@ -765,7 +765,7 @@ class MAGNUM_EXPORT Framebuffer {
* @see @fn_gl{DeleteFramebuffers} * @see @fn_gl{DeleteFramebuffers}
* @requires_gl30 Extension @extension{EXT,framebuffer_object} * @requires_gl30 Extension @extension{EXT,framebuffer_object}
*/ */
inline ~Framebuffer() { glDeleteFramebuffers(1, &framebuffer); } inline ~Framebuffer() { glDeleteFramebuffers(1, &_id); }
/** /**
* @brief Bind default framebuffer to given target * @brief Bind default framebuffer to given target
@ -785,7 +785,7 @@ class MAGNUM_EXPORT Framebuffer {
* @requires_gl30 Extension @extension{EXT,framebuffer_object} * @requires_gl30 Extension @extension{EXT,framebuffer_object}
*/ */
inline void bind(Target target) { inline void bind(Target target) {
glBindFramebuffer(static_cast<GLenum>(target), framebuffer); glBindFramebuffer(static_cast<GLenum>(target), _id);
} }
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
@ -1164,7 +1164,7 @@ class MAGNUM_EXPORT Framebuffer {
/*@}*/ /*@}*/
private: private:
GLuint framebuffer; GLuint _id;
}; };
CORRADE_ENUMSET_OPERATORS(Framebuffer::ClearMask) CORRADE_ENUMSET_OPERATORS(Framebuffer::ClearMask)

16
src/Query.cpp

@ -20,44 +20,44 @@ namespace Magnum {
#ifndef MAGNUM_TARGET_GLES2 #ifndef MAGNUM_TARGET_GLES2
bool AbstractQuery::resultAvailable() { bool AbstractQuery::resultAvailable() {
GLuint result; GLuint result;
glGetQueryObjectuiv(query, GL_QUERY_RESULT_AVAILABLE, &result); glGetQueryObjectuiv(_id, GL_QUERY_RESULT_AVAILABLE, &result);
return result == GL_TRUE; return result == GL_TRUE;
} }
template<> bool AbstractQuery::result<bool>() { template<> bool AbstractQuery::result<bool>() {
GLuint result; GLuint result;
glGetQueryObjectuiv(query, GL_QUERY_RESULT, &result); glGetQueryObjectuiv(_id, GL_QUERY_RESULT, &result);
return result == GL_TRUE; return result == GL_TRUE;
} }
template<> GLuint AbstractQuery::result<GLuint>() { template<> GLuint AbstractQuery::result<GLuint>() {
GLuint result; GLuint result;
glGetQueryObjectuiv(query, GL_QUERY_RESULT, &result); glGetQueryObjectuiv(_id, GL_QUERY_RESULT, &result);
return result; return result;
} }
#ifndef MAGNUM_TARGET_GLES #ifndef MAGNUM_TARGET_GLES
template<> GLint AbstractQuery::result<GLint>() { template<> GLint AbstractQuery::result<GLint>() {
GLint result; GLint result;
glGetQueryObjectiv(query, GL_QUERY_RESULT, &result); glGetQueryObjectiv(_id, GL_QUERY_RESULT, &result);
return result; return result;
} }
template<> GLuint64 AbstractQuery::result<GLuint64>() { template<> GLuint64 AbstractQuery::result<GLuint64>() {
GLuint64 result; GLuint64 result;
glGetQueryObjectui64v(query, GL_QUERY_RESULT, &result); glGetQueryObjectui64v(_id, GL_QUERY_RESULT, &result);
return result; return result;
} }
template<> GLint64 AbstractQuery::result<GLint64>() { template<> GLint64 AbstractQuery::result<GLint64>() {
GLint64 result; GLint64 result;
glGetQueryObjecti64v(query, GL_QUERY_RESULT, &result); glGetQueryObjecti64v(_id, GL_QUERY_RESULT, &result);
return result; return result;
} }
#endif #endif
void Query::begin(Query::Target target) { void Query::begin(Query::Target target) {
glBeginQuery(static_cast<GLenum>(target), query); glBeginQuery(static_cast<GLenum>(target), id());
this->target = new Target(target); this->target = new Target(target);
} }
@ -70,7 +70,7 @@ void Query::end() {
} }
void SampleQuery::begin(SampleQuery::Target target) { void SampleQuery::begin(SampleQuery::Target target) {
glBeginQuery(static_cast<GLenum>(target), query); glBeginQuery(static_cast<GLenum>(target), id());
this->target = new Target(target); this->target = new Target(target);
} }

15
src/Query.h

@ -41,7 +41,7 @@ class MAGNUM_EXPORT AbstractQuery {
* Generates one OpenGL query. * Generates one OpenGL query.
* @see @fn_gl{GenQueries} * @see @fn_gl{GenQueries}
*/ */
inline AbstractQuery() { glGenQueries(1, &query); } inline AbstractQuery() { glGenQueries(1, &_id); }
/** /**
* @brief Destructor * @brief Destructor
@ -49,7 +49,10 @@ class MAGNUM_EXPORT AbstractQuery {
* Deletes assigned OpenGL query. * Deletes assigned OpenGL query.
* @see @fn_gl{DeleteQueries} * @see @fn_gl{DeleteQueries}
*/ */
virtual inline ~AbstractQuery() { glDeleteQueries(1, &query); } virtual inline ~AbstractQuery() { glDeleteQueries(1, &_id); }
/** @brief OpenGL query ID */
inline GLuint id() const { return _id; }
/** /**
* @brief Whether the result is available * @brief Whether the result is available
@ -71,8 +74,8 @@ class MAGNUM_EXPORT AbstractQuery {
*/ */
template<class T> T result(); template<class T> T result();
protected: private:
GLuint query; /**< @brief OpenGL internal query ID */ GLuint _id;
}; };
@ -276,7 +279,7 @@ class MAGNUM_EXPORT SampleQuery: public AbstractQuery {
* @requires_gl30 Extension @extension{NV,conditional_render} * @requires_gl30 Extension @extension{NV,conditional_render}
*/ */
inline void beginConditionalRender(ConditionalRenderMode mode) { inline void beginConditionalRender(ConditionalRenderMode mode) {
glBeginConditionalRender(query, static_cast<GLenum>(mode)); glBeginConditionalRender(id(), static_cast<GLenum>(mode));
} }
/** /**
@ -336,7 +339,7 @@ class TimeQuery: public AbstractQuery {
* @see @fn_gl{QueryCounter} with @def_gl{TIMESTAMP} * @see @fn_gl{QueryCounter} with @def_gl{TIMESTAMP}
*/ */
inline void timestamp() { inline void timestamp() {
glQueryCounter(query, GL_TIMESTAMP); glQueryCounter(id(), GL_TIMESTAMP);
} }
}; };
#endif #endif

Loading…
Cancel
Save