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"
41# pragma warning(disable : 4251)
74 bool isClippingActive()
const;
Abstract class defining the interface for objects that buffer geometry for later rendering.
Definition GeometryBuffer.h:44
OpenGL based implementation of the GeometryBuffer interface.
Definition GeometryBufferBase.h:53
mat4Pimpl * d_matrix
model matrix cache - we use double because gluUnproject takes double
Definition GeometryBufferBase.h:127
OpenGLGeometryBufferBase(OpenGLRendererBase &owner)
Constructor.
std::vector< BatchInfo > BatchList
type of container that tracks BatchInfos.
Definition GeometryBufferBase.h:107
bool d_matrixValid
true when d_matrix is valid and up to date
Definition GeometryBufferBase.h:129
void appendGeometry(const Vertex *const vbuff, uint vertex_count)
Append a number of vertices from an array to the GeometryBuffer.
Quaternion d_rotation
rotation quaternion
Definition GeometryBufferBase.h:121
void reset()
Clear all buffered data and reset the GeometryBuffer to the default state.
bool d_clippingActive
whether clipping will be active for the current batch
Definition GeometryBufferBase.h:117
Vector3f d_translation
translation vector
Definition GeometryBufferBase.h:119
Rectf d_clipRect
rectangular clip region
Definition GeometryBufferBase.h:115
void setClippingRegion(const Rectf ®ion)
Set the clipping region to be used when rendering this buffer.
const mat4Pimpl * getMatrix() const
return the GL modelview matrix used for this buffer.
uint getBatchCount() const
Return the number of batches of geometry that this GeometryBuffer has split the vertices into.
void setRotation(const Quaternion &r)
Set the rotations to be applied to the geometry in the buffer when it is subsequently rendered.
void setClippingActive(const bool active)
Set whether clipping will be active for subsequently added vertices.
RenderEffect * d_effect
RenderEffect that will be used by the GeometryBuffer.
Definition GeometryBufferBase.h:125
void appendVertex(const Vertex &vertex)
Append a single vertex to the buffer.
void setPivot(const Vector3f &p)
Set the pivot point to be used when applying the rotations.
OpenGLTexture * d_activeTexture
last texture that was set as active
Definition GeometryBufferBase.h:105
void setActiveTexture(Texture *texture)
Set the active texture to be used with all subsequently added vertices.
Texture * getActiveTexture() const
Return a pointer to the currently active Texture object. This may return 0 if no texture is set.
void setTranslation(const Vector3f &t)
Set the translation to be applied to the geometry in the buffer when it is subsequently rendered.
VertexList d_vertices
container where added geometry is stored.
Definition GeometryBufferBase.h:113
void updateMatrix() const
update cached matrix
void performBatchManagement()
perform batch management operations prior to adding new geometry.
uint getVertexCount() const
Return the total number of vertices currently held by this GeometryBuffer object.
Vector3f d_pivot
pivot point for rotation
Definition GeometryBufferBase.h:123
std::vector< GLVertex > VertexList
type of container used to queue the geometry
Definition GeometryBufferBase.h:111
BatchList d_batches
list of texture batches added to the geometry buffer
Definition GeometryBufferBase.h:109
OpenGLRendererBase * d_owner
OpenGLRendererBase that owns the GeometryBuffer.
Definition GeometryBufferBase.h:103
void setRenderEffect(RenderEffect *effect)
Set the RenderEffect to be used by this GeometryBuffer.
RenderEffect * getRenderEffect()
Return the RenderEffect object that is assigned to this GeometryBuffer or 0 if none.
Common base class used for other OpenGL (desktop or ES) based renderer modules.
Definition RendererBase.h:54
Texture implementation for the OpenGLRenderer.
Definition RendererModules/OpenGL/Texture.h:45
Class to represent rotation, avoids Gimbal lock.
Definition Quaternion.h:69
Interface for objects that hook into RenderingWindow to affect the rendering process,...
Definition RenderEffect.h:42
Abstract base class specifying the required interface for Texture objects.
Definition Texture.h:54
base class for properties able to do native set/get
Definition TypedProperty.h:50
Main namespace for Crazy Eddie's GUI Library.
Definition arch_overview.dox:1
type to track info for per-texture sub batches of geometry
Definition GeometryBufferBase.h:96
internal Vertex structure used for GL based geometry.
Definition GeometryBufferBase.h:88
structure that is used to hold details of a single vertex in 3D space.
Definition Vertex.h:42