28#ifndef DVD_CEGUIDVDGeometryBuffer_h_
29#define DVD_CEGUIDVDGeometryBuffer_h_
31#include "CEGUI/GeometryBuffer.h"
32#include "CEGUI/Rect.h"
33#include "CEGUI/Quaternion.h"
35#include <glm/mat4x4.hpp>
76 [[nodiscard]]
const glm::mat4&
getMatrix()
const;
80#pragma region GeometryBuffer Interface
81 void draw()
const override;
82 void reset()
override;
86 void setPivot(
const Vector3f& p )
override;
89 void appendGeometry(
const Vertex* vbuff, uint vertex_count )
override;
135 Divide::GenericVertexData_ptr
_gvd;
void draw() const override
BatchList _batches
list of texture batches added to the geometry buffer
Rectf _clipRect
rectangular clip region
bool isClippingActive() const override
void setTranslation(const Vector3f &t) override
Texture * getActiveTexture() const override
Vector3f _pivot
pivot point for rotation
RenderEffect * _effect
RenderEffect that will be used by the GeometryBuffer.
void setPivot(const Vector3f &p) override
Vector3f _translation
translation vector
uint getVertexCount() const override
VertexList _vertices
container where added geometry is stored.
void setRenderEffect(RenderEffect *effect) override
bool _clippingActive
whether clipping will be active for the current batch
uint _bufferSize
Size of the buffer that is currently in use.
DVDTexture * _activeTexture
last texture that was set as active
Divide::vector< DVDVertex > VertexList
type of container used to queue the geometry
void recreateBuffer(Divide::Byte *initialData, size_t intialDataSize)
recreates the Divide specific geometry buffer. Usually called if "initialDataSize" is larger than the...
bool _matrixValid
true when d_matrix is valid and up to date
void updateMatrix() const
update cached matrix
void appendGeometry(const Vertex *vbuff, uint vertex_count) override
CEGUIRenderer * _owner
CEGUIRenderer that owns the GeometryBuffer.
void setClippingActive(bool active) override
void performBatchManagement()
perform batch management operations prior to adding new geometry.
uint getBatchCount() const override
Divide::GenericVertexData_ptr _gvd
Divide specific geometry buffer.
Divide::vector< BatchInfo > BatchList
type of container that tracks BatchInfos.
const glm::mat4 & getMatrix() const
void appendVertex(const Vertex &vertex) override
RenderEffect * getRenderEffect() override
Quaternion _rotation
rotation quaternion
void setActiveTexture(Texture *texture) override
void setClippingRegion(const Rectf ®ion) override
glm::mat4 _matrix
model matrix cache - we use double because gluUnproject takes double
void setRotation(const Quaternion &r) override
Divide::SamplerDescriptor _sampler
Sampler hash to use if the current batch needs a texture bound.
Handle console commands that start with a forward slash.
eastl::vector< Type > vector
type to track info for per-texture sub batches of geometry
Divide::Handle< Divide::Texture > texture