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() {
if(state != Linked) return false;
glUseProgram(program);
glUseProgram(_id);
return true;
}
@ -36,26 +36,26 @@ bool AbstractShaderProgram::attachShader(Shader& shader) {
GLuint _shader = shader.compile();
if(!_shader) return false;
glAttachShader(program, _shader);
glAttachShader(_id, _shader);
return true;
}
void AbstractShaderProgram::bindAttributeLocation(GLuint location, const string& name) {
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
void AbstractShaderProgram::bindFragmentDataLocation(GLuint location, const std::string& name) {
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) {
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
@ -64,15 +64,15 @@ void AbstractShaderProgram::link() {
if(state != Initialized) return;
/* Link shader program */
glLinkProgram(program);
glLinkProgram(_id);
/* Check link status */
GLint status;
glGetProgramiv(program, GL_LINK_STATUS, &status);
glGetProgramiv(_id, GL_LINK_STATUS, &status);
/* Display errors or warnings */
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 */
if(status == GL_FALSE) {
@ -92,7 +92,7 @@ GLint AbstractShaderProgram::uniformLocation(const std::string& name) {
/** @todo What if linking just failed (not programmer error?) */
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)
Warning() << "AbstractShaderProgram: location of uniform \'" + name + "\' cannot be retrieved!";
return location;

10
src/AbstractShaderProgram.h

@ -220,7 +220,7 @@ class MAGNUM_EXPORT AbstractShaderProgram {
* @see @fn_gl{CreateProgram}
*/
inline AbstractShaderProgram(): state(Initialized) {
program = glCreateProgram();
_id = glCreateProgram();
}
/**
@ -253,7 +253,7 @@ class MAGNUM_EXPORT AbstractShaderProgram {
* @requires_gles30 (no extension providing this functionality)
*/
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
@ -268,7 +268,7 @@ class MAGNUM_EXPORT AbstractShaderProgram {
* @requires_gl41 Extension @extension{ARB,separate_shader_objects}
*/
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
@ -638,11 +638,11 @@ class MAGNUM_EXPORT AbstractShaderProgram {
Failed
};
GLuint program;
GLuint _id;
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}
*/
inline AbstractTexture(GLenum target): _target(target) {
glGenTextures(1, &texture);
glGenTextures(1, &_id);
}
/**
@ -568,8 +568,8 @@ class MAGNUM_EXPORT AbstractTexture {
*/
virtual ~AbstractTexture() = 0;
/** @brief OpenGL internal texture ID */
inline GLuint id() const { return texture; }
/** @brief OpenGL texture ID */
inline GLuint id() const { return _id; }
/**
* @brief Bind texture for rendering
@ -675,14 +675,14 @@ class MAGNUM_EXPORT AbstractTexture {
* @see @fn_gl{BindTexture}
*/
inline void bind() {
glBindTexture(_target, texture);
glBindTexture(_target, _id);
}
private:
GLuint texture;
GLuint _id;
};
inline AbstractTexture::~AbstractTexture() { glDeleteTextures(1, &texture); }
inline AbstractTexture::~AbstractTexture() { glDeleteTextures(1, &_id); }
/** @relates AbstractTexture
@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}
*/
inline Buffer(Target defaultTarget): _defaultTarget(defaultTarget) {
glGenBuffers(1, &buffer);
glGenBuffers(1, &_id);
}
/**
@ -273,14 +273,14 @@ class MAGNUM_EXPORT Buffer {
* @see @fn_gl{DeleteBuffers}
*/
inline virtual ~Buffer() {
glDeleteBuffers(1, &buffer);
glDeleteBuffers(1, &_id);
}
/** @brief Default bind type */
inline Target defaultTarget() const { return _defaultTarget; }
/** @brief OpenGL internal buffer ID */
inline GLuint id() const { return buffer; }
/** @brief OpenGL buffer ID */
inline GLuint id() const { return _id; }
/**
* @brief Bind buffer
@ -297,7 +297,7 @@ class MAGNUM_EXPORT Buffer {
* @see @fn_gl{BindBuffer}
*/
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:
GLuint buffer;
GLuint _id;
Target _defaultTarget;
};

8
src/BufferedTexture.h

@ -124,7 +124,7 @@ class BufferedTexture {
* @see @fn_gl{GenTextures}
*/
inline BufferedTexture() {
glGenTextures(1, &texture);
glGenTextures(1, &_id);
}
/**
@ -134,7 +134,7 @@ class BufferedTexture {
* @see @fn_gl{DeleteTextures}
*/
inline virtual ~BufferedTexture() {
glDeleteTextures(1, &texture);
glDeleteTextures(1, &_id);
}
/**
@ -166,10 +166,10 @@ class BufferedTexture {
}
private:
GLuint texture;
GLuint _id;
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}
* @requires_gl30 Extension @extension{EXT,framebuffer_object}
*/
inline Framebuffer() { glGenFramebuffers(1, &framebuffer); }
inline Framebuffer() { glGenFramebuffers(1, &_id); }
/**
* @brief Destructor
@ -765,7 +765,7 @@ class MAGNUM_EXPORT Framebuffer {
* @see @fn_gl{DeleteFramebuffers}
* @requires_gl30 Extension @extension{EXT,framebuffer_object}
*/
inline ~Framebuffer() { glDeleteFramebuffers(1, &framebuffer); }
inline ~Framebuffer() { glDeleteFramebuffers(1, &_id); }
/**
* @brief Bind default framebuffer to given target
@ -785,7 +785,7 @@ class MAGNUM_EXPORT Framebuffer {
* @requires_gl30 Extension @extension{EXT,framebuffer_object}
*/
inline void bind(Target target) {
glBindFramebuffer(static_cast<GLenum>(target), framebuffer);
glBindFramebuffer(static_cast<GLenum>(target), _id);
}
#ifndef MAGNUM_TARGET_GLES
@ -1164,7 +1164,7 @@ class MAGNUM_EXPORT Framebuffer {
/*@}*/
private:
GLuint framebuffer;
GLuint _id;
};
CORRADE_ENUMSET_OPERATORS(Framebuffer::ClearMask)

16
src/Query.cpp

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

15
src/Query.h

@ -41,7 +41,7 @@ class MAGNUM_EXPORT AbstractQuery {
* Generates one OpenGL query.
* @see @fn_gl{GenQueries}
*/
inline AbstractQuery() { glGenQueries(1, &query); }
inline AbstractQuery() { glGenQueries(1, &_id); }
/**
* @brief Destructor
@ -49,7 +49,10 @@ class MAGNUM_EXPORT AbstractQuery {
* Deletes assigned OpenGL query.
* @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
@ -71,8 +74,8 @@ class MAGNUM_EXPORT AbstractQuery {
*/
template<class T> T result();
protected:
GLuint query; /**< @brief OpenGL internal query ID */
private:
GLuint _id;
};
@ -276,7 +279,7 @@ class MAGNUM_EXPORT SampleQuery: public AbstractQuery {
* @requires_gl30 Extension @extension{NV,conditional_render}
*/
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}
*/
inline void timestamp() {
glQueryCounter(query, GL_TIMESTAMP);
glQueryCounter(id(), GL_TIMESTAMP);
}
};
#endif

Loading…
Cancel
Save