27 #ifndef _CEGUIIrrlichtGeometryBuffer_h_
28 #define _CEGUIIrrlichtGeometryBuffer_h_
30 #include "CEGUI/RendererModules/Irrlicht/RendererDef.h"
31 #include "CEGUI/GeometryBuffer.h"
32 #include "CEGUI/Rect.h"
33 #include "CEGUI/Vector.h"
38 # pragma warning(push)
39 # pragma warning(disable : 4251)
45 class IrrlichtTexture;
48 class IRR_GUIRENDERER_API IrrlichtGeometryBuffer :
public GeometryBuffer
52 IrrlichtGeometryBuffer(irr::video::IVideoDriver& driver);
55 const irr::core::matrix4& getMatrix()
const;
58 irr::video::SMaterial& getMaterial();
60 const irr::video::SMaterial& getMaterial()
const;
65 void setTranslation(
const Vector3f& v);
66 void setRotation(
const Quaternion& r);
67 void setPivot(
const Vector3f& p);
68 void setClippingRegion(
const Rectf& region);
69 void appendVertex(
const Vertex& vertex);
70 void appendGeometry(
const Vertex*
const vbuff, uint vertex_count);
71 void setActiveTexture(Texture* texture);
73 Texture* getActiveTexture()
const;
74 uint getVertexCount()
const;
75 uint getBatchCount()
const;
76 void setRenderEffect(RenderEffect* effect);
77 RenderEffect* getRenderEffect();
78 void setClippingActive(
const bool active);
79 bool isClippingActive()
const;
85 void updateMatrix()
const;
86 void setupClipping()
const;
87 void cleanupClipping()
const;
92 irr::video::ITexture* texture;
98 irr::video::IVideoDriver& d_driver;
100 IrrlichtTexture* d_activeTexture;
102 mutable irr::video::SMaterial d_material;
106 bool d_clippingActive;
108 irr::core::vector3d<irr::f32> d_translation;
110 irr::core::quaternion d_rotation;
112 irr::core::vector3d<irr::f32> d_pivot;
114 RenderEffect* d_effect;
116 mutable irr::core::matrix4 d_matrix;
118 mutable bool d_matrixValid;
128 VertexList d_vertices;
132 const float d_xViewDir;
134 const float d_texelOffset;
136 mutable irr::core::rect<irr::s32> d_savedViewport;
138 mutable irr::core::matrix4 d_savedProjection;
144 #if defined(_MSC_VER)
145 # pragma warning(pop)
148 #endif // end of guard _CEGUIIrrlichtGeometryBuffer_h_
Main namespace for Crazy Eddie's GUI Library.
Definition: cegui/include/CEGUI/Affector.h:42
std::vector< BatchInfo > BatchList
type of container that tracks BatchInfos.
Definition: debian/tmp/usr/include/cegui-0.8.7/CEGUI/RendererModules/Irrlicht/GeometryBuffer.h:120
BlendMode
Enumerated type that contains the valid options that specify the type of blending that is to be perfo...
Definition: cegui/include/CEGUI/Renderer.h:61
std::vector< irr::video::S3DVertex > VertexList
type of container used to queue the geometry
Definition: debian/tmp/usr/include/cegui-0.8.7/CEGUI/RendererModules/Irrlicht/GeometryBuffer.h:122
std::vector< irr::u16 > IndexList
type of container used for indexes
Definition: debian/tmp/usr/include/cegui-0.8.7/CEGUI/RendererModules/Irrlicht/GeometryBuffer.h:124