28 #ifndef _CEGUIGeometryBufferBase_h_
29 #define _CEGUIGeometryBufferBase_h_
31 #include "../../GeometryBuffer.h"
32 #include "CEGUI/RendererModules/OpenGL/RendererBase.h"
33 #include "../../Rect.h"
34 #include "../../Quaternion.h"
40 # pragma warning(push)
41 # pragma warning(disable : 4251)
52 class OPENGL_GUIRENDERER_API OpenGLGeometryBufferBase :
public GeometryBuffer
56 OpenGLGeometryBufferBase(OpenGLRendererBase& owner);
57 virtual ~OpenGLGeometryBufferBase();
60 void setTranslation(
const Vector3f& t);
61 void setRotation(
const Quaternion& r);
62 void setPivot(
const Vector3f& p);
63 void setClippingRegion(
const Rectf& region);
64 void appendVertex(
const Vertex& vertex);
65 void appendGeometry(
const Vertex*
const vbuff, uint vertex_count);
66 void setActiveTexture(Texture* texture);
68 Texture* getActiveTexture()
const;
69 uint getVertexCount()
const;
70 uint getBatchCount()
const;
71 void setRenderEffect(RenderEffect* effect);
72 RenderEffect* getRenderEffect();
73 void setClippingActive(
const bool active);
74 bool isClippingActive()
const;
81 void performBatchManagement();
84 void updateMatrix()
const;
103 OpenGLRendererBase* d_owner;
105 OpenGLTexture* d_activeTexture;
107 typedef std::vector<BatchInfo> BatchList;
111 typedef std::vector<GLVertex> VertexList;
113 VertexList d_vertices;
117 bool d_clippingActive;
119 Vector3f d_translation;
121 Quaternion d_rotation;
125 RenderEffect* d_effect;
127 mutable mat4Pimpl* d_matrix;
129 mutable bool d_matrixValid;
134 #if defined(_MSC_VER)
135 # pragma warning(pop)