summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/r300/r300_context.h
diff options
context:
space:
mode:
authorMaciej Cencora <m.cencora@gmail.com>2009-05-30 13:28:47 +0200
committerDave Airlie <airlied@redhat.com>2009-06-07 16:39:28 +1000
commite98082997c8cfe3bf9c1c1cdc40c23ee897d1007 (patch)
treea6c0e9a4ecde1b239b9294974d36827a59903045 /src/mesa/drivers/dri/r300/r300_context.h
parenta27b689d08d88f99ebccf58bbba64d3cfc668866 (diff)
r300: prepare for different vertex data type support
Diffstat (limited to 'src/mesa/drivers/dri/r300/r300_context.h')
-rw-r--r--src/mesa/drivers/dri/r300/r300_context.h32
1 files changed, 22 insertions, 10 deletions
diff --git a/src/mesa/drivers/dri/r300/r300_context.h b/src/mesa/drivers/dri/r300/r300_context.h
index 2ea064ed452..7694fe4862f 100644
--- a/src/mesa/drivers/dri/r300/r300_context.h
+++ b/src/mesa/drivers/dri/r300/r300_context.h
@@ -584,16 +584,6 @@ struct r300_swtcl_info {
*/
GLuint specoffset;
- struct vertex_attribute{
- GLuint attr;
- GLubyte format;
- GLubyte dst_loc;
- GLuint swizzle;
- GLubyte write_mask;
- } vert_attrs[VERT_ATTRIB_MAX];
-
- GLubyte vertex_attr_count;
-
int sw_tcl_inputs[VERT_ATTRIB_MAX];
};
@@ -605,6 +595,27 @@ struct r300_vtable {
void (* SetupPixelShader)(GLcontext *ctx);
};
+struct r300_vertex_buffer {
+ struct vertex_attribute {
+ /* generic */
+ GLubyte element;
+ GLvoid *data;
+ GLboolean free_needed;
+ GLuint stride;
+ GLuint dwords;
+ GLubyte size; /* number of components */
+
+ /* hw specific */
+ uint32_t data_type:4;
+ uint32_t dst_loc:5;
+ uint32_t _signed:1;
+ uint32_t normalize:1;
+ uint32_t swizzle:12;
+ uint32_t write_mask:4;
+ } attribs[VERT_ATTRIB_MAX];
+
+ GLubyte num_attribs;
+};
/**
* \brief R300 context structure.
@@ -632,6 +643,7 @@ struct r300_context {
} options;
struct r300_swtcl_info swtcl;
+ struct r300_vertex_buffer vbuf;
GLboolean vap_flush_needed;
uint32_t fallback;