Crazy Eddie's GUI System  0.8.2
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Pages
CEGUI::OpenGL3GeometryBuffer Class Reference

OpenGL3 based implementation of the GeometryBuffer interface. More...

+ Inheritance diagram for CEGUI::OpenGL3GeometryBuffer:
+ Collaboration diagram for CEGUI::OpenGL3GeometryBuffer:

Public Member Functions

 OpenGL3GeometryBuffer (OpenGL3Renderer &owner)
 Constructor.
 
void initialiseOpenGLBuffers ()
 
void deinitialiseOpenGLBuffers ()
 
void updateOpenGLBuffers ()
 
void draw () const
 Draw the geometry buffered within this GeometryBuffer object.
 
void appendGeometry (const Vertex *const vbuff, uint vertex_count)
 Append a number of vertices from an array to the GeometryBuffer. More...
 
void reset ()
 Clear all buffered data and reset the GeometryBuffer to the default state.
 
- Public Member Functions inherited from CEGUI::OpenGLGeometryBufferBase
 OpenGLGeometryBufferBase (OpenGLRendererBase &owner)
 Constructor.
 
void setTranslation (const Vector3f &t)
 Set the translation to be applied to the geometry in the buffer when it is subsequently rendered. More...
 
void setRotation (const Quaternion &r)
 Set the rotations to be applied to the geometry in the buffer when it is subsequently rendered. More...
 
void setPivot (const Vector3f &p)
 Set the pivot point to be used when applying the rotations. More...
 
void setClippingRegion (const Rectf &region)
 Set the clipping region to be used when rendering this buffer.
 
void appendVertex (const Vertex &vertex)
 Append a single vertex to the buffer. More...
 
void setActiveTexture (Texture *texture)
 Set the active texture to be used with all subsequently added vertices. More...
 
TexturegetActiveTexture () const
 Return a pointer to the currently active Texture object. This may return 0 if no texture is set. More...
 
uint getVertexCount () const
 Return the total number of vertices currently held by this GeometryBuffer object. More...
 
uint getBatchCount () const
 Return the number of batches of geometry that this GeometryBuffer has split the vertices into. More...
 
void setRenderEffect (RenderEffect *effect)
 Set the RenderEffect to be used by this GeometryBuffer. More...
 
RenderEffectgetRenderEffect ()
 Return the RenderEffect object that is assigned to this GeometryBuffer or 0 if none.
 
void setClippingActive (const bool active)
 Set whether clipping will be active for subsequently added vertices. More...
 
bool isClippingActive () const
 
const mat4PimplgetMatrix () const
 return the GL modelview matrix used for this buffer.
 
- Public Member Functions inherited from CEGUI::GeometryBuffer
virtual ~GeometryBuffer ()
 Destructor.
 
virtual void setBlendMode (const BlendMode mode)
 Set the blend mode option to use when rendering this GeometryBuffer. More...
 
virtual BlendMode getBlendMode () const
 Return the blend mode that is set to be used for this GeometryBuffer. More...
 

Protected Attributes

GLuint d_verticesVAO
 OpenGL vao used for the vertices.
 
GLuint d_verticesVBO
 OpenGL vbo containing all vertex data.
 
CEGUI::OpenGL3Shader *& d_shader
 Reference to the OpenGL shader inside the Renderer, that is used to render all geometry.
 
const GLint d_shaderPosLoc
 Position variable location inside the shader, for OpenGL.
 
const GLint d_shaderTexCoordLoc
 TexCoord variable location inside the shader, for OpenGL.
 
const GLint d_shaderColourLoc
 Color variable location inside the shader, for OpenGL.
 
const GLint d_shaderStandardMatrixLoc
 Matrix uniform location inside the shader, for OpenGL.
 
OpenGL3StateChangeWrapperd_glStateChanger
 Pointer to the OpenGL state changer wrapper that was created inside the Renderer.
 
GLuint d_bufferSize
 Size of the buffer that is currently in use.
 
- Protected Attributes inherited from CEGUI::OpenGLGeometryBufferBase
OpenGLRendererBased_owner
 OpenGLRendererBase that owns the GeometryBuffer.
 
OpenGLTextured_activeTexture
 last texture that was set as active
 
BatchList d_batches
 list of texture batches added to the geometry buffer
 
VertexList d_vertices
 container where added geometry is stored.
 
Rectf d_clipRect
 rectangular clip region
 
bool d_clippingActive
 whether clipping will be active for the current batch
 
Vector3f d_translation
 translation vector
 
Quaternion d_rotation
 rotation quaternion
 
Vector3f d_pivot
 pivot point for rotation
 
RenderEffectd_effect
 RenderEffect that will be used by the GeometryBuffer.
 
mat4Pimpld_matrix
 model matrix cache - we use double because gluUnproject takes double
 
bool d_matrixValid
 true when d_matrix is valid and up to date
 
- Protected Attributes inherited from CEGUI::GeometryBuffer
BlendMode d_blendMode
 The BlendMode to use when rendering this GeometryBuffer.
 

Additional Inherited Members

- Protected Types inherited from CEGUI::OpenGLGeometryBufferBase
typedef std::vector< BatchInfoBatchList
 type of container that tracks BatchInfos.
 
typedef std::vector< GLVertexVertexList
 type of container used to queue the geometry
 
- Protected Member Functions inherited from CEGUI::OpenGLGeometryBufferBase
void performBatchManagement ()
 perform batch management operations prior to adding new geometry.
 
void updateMatrix () const
 update cached matrix
 

Detailed Description

OpenGL3 based implementation of the GeometryBuffer interface.

Member Function Documentation

void CEGUI::OpenGL3GeometryBuffer::appendGeometry ( const Vertex *const  vbuff,
uint  vertex_count 
)
virtual

Append a number of vertices from an array to the GeometryBuffer.

Parameters
vbuffPointer to an array of Vertex objects that describe the vertices that are to be added to the GeometryBuffer.
vertex_countThe number of Vertex objects from the array vbuff that are to be added to the GeometryBuffer.

Reimplemented from CEGUI::OpenGLGeometryBufferBase.