gallium: Add interfaces needed for instanced drawing.

This commit is contained in:
Michal Krol 2009-12-23 19:37:18 +01:00
parent b5a408bae5
commit d0b55120be
3 changed files with 19 additions and 1 deletions

View file

@ -69,6 +69,22 @@ struct pipe_context {
unsigned indexSize,
unsigned mode, unsigned start, unsigned count);
boolean (*draw_arrays_instanced)(struct pipe_context *pipe,
unsigned mode,
unsigned start,
unsigned count,
unsigned startInstance,
unsigned instanceCount);
boolean (*draw_elements_instanced)(struct pipe_context *pipe,
struct pipe_buffer *indexBuffer,
unsigned indexSize,
unsigned mode,
unsigned start,
unsigned count,
unsigned startInstance,
unsigned instanceCount);
/* XXX: this is (probably) a temporary entrypoint, as the range
* information should be available from the vertex_buffer state.
* Using this to quickly evaluate a specialized path in the draw

View file

@ -130,7 +130,8 @@ struct tgsi_declaration_range
#define TGSI_SEMANTIC_NORMAL 6
#define TGSI_SEMANTIC_FACE 7
#define TGSI_SEMANTIC_EDGEFLAG 8
#define TGSI_SEMANTIC_COUNT 9 /**< number of semantic values */
#define TGSI_SEMANTIC_INSTANCEID 9
#define TGSI_SEMANTIC_COUNT 10 /**< number of semantic values */
struct tgsi_declaration_semantic
{

View file

@ -364,6 +364,7 @@ struct pipe_vertex_buffer
unsigned stride; /**< stride to same attrib in next vertex, in bytes */
unsigned max_index; /**< number of vertices in this buffer */
unsigned buffer_offset; /**< offset to start of data in buffer, in bytes */
unsigned instance_divisor; /**< instance data rate divisor, 0 means per-vertex data */
struct pipe_buffer *buffer; /**< the actual buffer */
};