Browse Source

BufferedTexture is now privately based on AbstractTexture.

Don't duplicate the functionality when it is not necessarily needed.
pull/279/head
Vladimír Vondruš 14 years ago
parent
commit
676f89127f
  1. 46
      src/BufferedTexture.h

46
src/BufferedTexture.h

@ -19,6 +19,7 @@
* @brief Class Magnum::BufferedTexture
*/
#include "AbstractTexture.h"
#include "Buffer.h"
namespace Magnum {
@ -39,7 +40,7 @@ data using integer coordinates in `texelFetch()`.
@requires_gl
@requires_gl31 Extension @extension{ARB,texture_buffer_object}
*/
class BufferedTexture {
class BufferedTexture: private AbstractTexture {
BufferedTexture(const BufferedTexture& other) = delete;
BufferedTexture(BufferedTexture&& other) = delete;
BufferedTexture& operator=(const BufferedTexture& other) = delete;
@ -116,38 +117,10 @@ class BufferedTexture {
/*@}*/
/**
* @brief Constructor
*
* Creates one OpenGL texture.
* @see @fn_gl{GenTextures}
*/
inline BufferedTexture() {
glGenTextures(1, &_id);
}
/**
* @brief Destructor
*
* Deletes assigned OpenGL texture.
* @see @fn_gl{DeleteTextures}
*/
inline virtual ~BufferedTexture() {
glDeleteTextures(1, &_id);
}
inline BufferedTexture(): AbstractTexture(GL_TEXTURE_BUFFER) {}
/**
* @brief Bind texture for rendering
*
* Sets current texture as active in given layer. The layer must be
* between 0 and maxSupportedLayerCount(). Note that only one texture
* can be bound to given layer.
* @see @fn_gl{ActiveTexture}, @fn_gl{BindTexture}
*/
inline void bind(GLint layer) {
glActiveTexture(GL_TEXTURE0 + layer);
bind();
}
/** @copydoc AbstractTexture::bind() */
inline void bind(GLint layer) { AbstractTexture::bind(layer); }
/**
* @brief Set texture buffer
@ -160,16 +133,9 @@ class BufferedTexture {
* @see @fn_gl{BindTexture}, @fn_gl{TexBuffer}
*/
void setBuffer(InternalFormat internalFormat, Buffer* buffer) {
bind();
AbstractTexture::bind();
glTexBuffer(GL_TEXTURE_BUFFER, internalFormat, buffer->id());
}
private:
GLuint _id;
inline void bind() {
glBindTexture(GL_TEXTURE_BUFFER, _id);
}
};
/** @relates BufferedTexture

Loading…
Cancel
Save