27 #ifndef _CEGUIOpenGLESGeometryBuffer_h_
28 #define _CEGUIOpenGLESGeometryBuffer_h_
30 #include "CEGUI/GeometryBuffer.h"
31 #include "CEGUI/RendererModules/OpenGLES/Renderer.h"
32 #include "CEGUI/Rect.h"
33 #include "CEGUI/Quaternion.h"
39 # pragma warning(push)
40 # pragma warning(disable : 4251)
46 class OpenGLESTexture;
52 class OPENGLES_GUIRENDERER_API OpenGLESGeometryBuffer :
public GeometryBuffer
56 OpenGLESGeometryBuffer();
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;
77 const float* getMatrix()
const;
81 void performBatchManagement();
84 void updateMatrix()
const;
95 OpenGLESTexture* d_activeTexture;
97 typedef std::pair<uint, uint> BatchInfo;
99 typedef std::vector<BatchInfo> BatchList;
103 typedef std::vector<GLVertex> VertexList;
105 VertexList d_vertices;
109 bool d_clippingActive;
119 mutable float d_matrix[16];
121 mutable bool d_matrixValid;
127 #if defined(_MSC_VER)
128 # pragma warning(pop)
131 #endif // end of guard _CEGUIOpenGLESGeometryBuffer_h_