11#pragma warning(disable : 4251)
171 float uniform_scalar[8];
#define UExport
Definition Exports.h:25
User-defined GPU driver interface.
Definition GPUDriver.h:278
virtual void EndSynchronize()=0
Called after all state has been updated during a call to Renderer::Render().
virtual void BeginSynchronize()=0
Called before any state (eg, CreateTexture(), UpdateTexture(), DestroyTexture(), etc....
virtual void CreateRenderBuffer(uint32_t render_buffer_id, const RenderBuffer &buffer)=0
Create a render buffer with certain ID and buffer description.
virtual uint32_t NextRenderBufferId()=0
Get the next available render buffer ID.
virtual uint32_t NextTextureId()=0
Get the next available texture ID.
virtual void CreateGeometry(uint32_t geometry_id, const VertexBuffer &vertices, const IndexBuffer &indices)=0
Create geometry with certain ID and vertex/index data.
virtual void DestroyTexture(uint32_t texture_id)=0
Destroy a texture.
virtual void CreateTexture(uint32_t texture_id, RefPtr< Bitmap > bitmap)=0
Create a texture with a certain ID and optional bitmap.
virtual void UpdateTexture(uint32_t texture_id, RefPtr< Bitmap > bitmap)=0
Update an existing non-RTT texture with new bitmap data.
virtual void UpdateCommandList(const CommandList &list)=0
Update the pending command list with commands to execute on the GPU.
virtual void DestroyRenderBuffer(uint32_t render_buffer_id)=0
Destroy a render buffer.
virtual void DestroyGeometry(uint32_t geometry_id)=0
Destroy geometry.
virtual uint32_t NextGeometryId()=0
Get the next available geometry ID.
virtual void UpdateGeometry(uint32_t geometry_id, const VertexBuffer &vertices, const IndexBuffer &indices)=0
Update existing geometry with new vertex/index data.
A nullable smart pointer.
Definition RefPtr.h:79
CommandType
The types of commands.
Definition GPUDriver.h:196
@ ClearRenderBuffer
Clear the specified render buffer.
@ DrawGeometry
Draw the specified geometry to the specified render buffer.
ShaderType
Shader program types.
Definition GPUDriver.h:124
@ FillPath
Shader program for filling tesselated path geometry.
@ Fill
Shader program for filling quad geometry.
VertexBufferFormat
Vertex buffer formats.
Definition GPUDriver.h:81
@ _2f_4ub_2f
Vertex_2f_4ub_2f (used for path rendering)
@ _2f_4ub_2f_2f_28f
Vertex_2f_4ub_2f_2f_28f (used for quad rendering)
uint32_t IndexType
Vertex index type.
Definition GPUDriver.h:100
A command to execute on the GPU.
Definition GPUDriver.h:211
GPUState gpu_state
The current GPU state.
Definition GPUDriver.h:213
CommandType command_type
The type of command to dispatch.
Definition GPUDriver.h:212
uint32_t indices_count
The number of indices. (used with CommandType::DrawGeometry)
Definition GPUDriver.h:215
uint32_t geometry_id
The geometry ID to bind. (used with CommandType::DrawGeometry)
Definition GPUDriver.h:214
uint32_t indices_offset
The index to start from. (used with CommandType::DrawGeometry)
Definition GPUDriver.h:216
List of commands to execute on the GPU.
Definition GPUDriver.h:224
Command * commands
The raw command list data.
Definition GPUDriver.h:226
uint32_t size
The number of commands in the list.
Definition GPUDriver.h:225
The state of the GPU for a given draw command.
Definition GPUDriver.h:136
uint32_t viewport_height
Viewport height in pixels.
Definition GPUDriver.h:141
uint32_t texture_3_id
The texture id to bind to slot #3. (Will be 0 if none)
Definition GPUDriver.h:168
uint32_t texture_1_id
The texture id to bind to slot #1. (Will be 0 if none)
Definition GPUDriver.h:162
uint32_t texture_2_id
The texture id to bind to slot #2. (Will be 0 if none)
Definition GPUDriver.h:165
IntRect scissor_rect
The scissor rect to use for scissor testing (units in pixels)
Definition GPUDriver.h:186
bool enable_blend
Whether or not we should enable blending for the current draw command.
Definition GPUDriver.h:153
Matrix4x4 transform
Transform matrix– you should multiply this with the screen-space orthographic projection matrix then ...
Definition GPUDriver.h:145
uint32_t render_buffer_id
The render buffer to use for the current draw command.
Definition GPUDriver.h:159
bool enable_texturing
Whether or not we should enable texturing for the current draw command.
Definition GPUDriver.h:148
bool enable_scissor
Whether or not scissor testing should be used for the current draw command.
Definition GPUDriver.h:183
ShaderType shader_type
The vertex/pixel shader program pair to use for the current draw command.
Definition GPUDriver.h:156
uint8_t clip_size
The clip size (passed to the pixel shader via uniforms).
Definition GPUDriver.h:177
uint32_t viewport_width
Viewport width in pixels.
Definition GPUDriver.h:138
Index buffer description.
Definition GPUDriver.h:111
uint32_t size
The size of the index buffer in bytes.
Definition GPUDriver.h:112
uint8_t * data
The raw index buffer data.
Definition GPUDriver.h:113
Integer Rectangle Helper.
Definition Geometry.h:529
4x4 Matrix Helper
Definition Matrix.h:18
Render buffer description.
Definition GPUDriver.h:32
bool has_depth_buffer
Currently unsued, always false.
Definition GPUDriver.h:37
uint32_t texture_id
The backing texture for this RenderBuffer.
Definition GPUDriver.h:33
uint32_t width
The width of the RenderBuffer texture.
Definition GPUDriver.h:34
bool has_stencil_buffer
Currently unused, always false.
Definition GPUDriver.h:36
uint32_t height
The height of the RenderBuffer texture.
Definition GPUDriver.h:35
Vertex layout for quad vertices.
Definition GPUDriver.h:58
float obj[2]
Definition GPUDriver.h:62
float data2[4]
Definition GPUDriver.h:65
float data3[4]
Definition GPUDriver.h:66
float data1[4]
Definition GPUDriver.h:64
float tex[2]
Definition GPUDriver.h:61
float data4[4]
Definition GPUDriver.h:67
unsigned char color[4]
Definition GPUDriver.h:60
float data5[4]
Definition GPUDriver.h:68
float data0[4]
Definition GPUDriver.h:63
float pos[2]
Definition GPUDriver.h:59
float data6[4]
Definition GPUDriver.h:69
Vertex layout for path vertices.
Definition GPUDriver.h:46
float obj[2]
Definition GPUDriver.h:49
unsigned char color[4]
Definition GPUDriver.h:48
float pos[2]
Definition GPUDriver.h:47
Vertex buffer description.
Definition GPUDriver.h:91
VertexBufferFormat format
The format of the vertex buffer.
Definition GPUDriver.h:92
uint32_t size
The size of the vertex buffer in bytes.
Definition GPUDriver.h:93
uint8_t * data
The raw vertex buffer data.
Definition GPUDriver.h:94
4D Vector Helper
Definition Geometry.h:283