mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-04-06 01:30:35 +02:00
gallium: Add pipe_context::draw_vbo and pipe_context::set_index_buffer.
This commit adds a new unified draw_vbo method to pipe_context. Unlike other draw methods, draw_vbo treats the index buffer as a state which is set with set_index_buffer.
This commit is contained in:
parent
7e4e79be6b
commit
c5e9d3114a
2 changed files with 41 additions and 0 deletions
|
|
@ -102,6 +102,9 @@ struct pipe_context {
|
|||
unsigned start,
|
||||
unsigned count);
|
||||
|
||||
void (*draw_vbo)( struct pipe_context *pipe,
|
||||
const struct pipe_draw_info *info );
|
||||
|
||||
/**
|
||||
* Draw the stream output buffer at index 0
|
||||
*/
|
||||
|
|
@ -249,6 +252,9 @@ struct pipe_context {
|
|||
unsigned num_buffers,
|
||||
const struct pipe_vertex_buffer * );
|
||||
|
||||
void (*set_index_buffer)( struct pipe_context *pipe,
|
||||
const struct pipe_index_buffer * );
|
||||
|
||||
void (*set_stream_output_buffers)(struct pipe_context *,
|
||||
struct pipe_resource **buffers,
|
||||
int *offsets, /*array of offsets
|
||||
|
|
|
|||
|
|
@ -426,6 +426,41 @@ struct pipe_vertex_element
|
|||
};
|
||||
|
||||
|
||||
/**
|
||||
* An index buffer. When an index buffer is bound, all indices to vertices
|
||||
* will be looked up in the buffer.
|
||||
*/
|
||||
struct pipe_index_buffer
|
||||
{
|
||||
unsigned index_size; /**< size of an index, in bytes */
|
||||
unsigned offset; /**< offset to start of data in buffer, in bytes */
|
||||
struct pipe_resource *buffer; /**< the actual buffer */
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Information to describe a draw_vbo call.
|
||||
*/
|
||||
struct pipe_draw_info
|
||||
{
|
||||
boolean indexed; /**< use index buffer */
|
||||
|
||||
unsigned mode; /**< the mode of the primitive */
|
||||
unsigned start; /**< the index of the first vertex */
|
||||
unsigned count; /**< number of vertices */
|
||||
|
||||
unsigned start_instance; /**< first instance id */
|
||||
unsigned instance_count; /**< number of instances */
|
||||
|
||||
/**
|
||||
* For indexed drawing, these fields apply after index lookup.
|
||||
*/
|
||||
int index_bias; /**< a bias to be added to each index */
|
||||
unsigned min_index; /**< the min index */
|
||||
unsigned max_index; /**< the max index */
|
||||
};
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue