diff options
author | Keith Whitwell <keith@tungstengraphics.com> | 2003-12-11 16:49:55 +0000 |
---|---|---|
committer | Keith Whitwell <keith@tungstengraphics.com> | 2003-12-11 16:49:55 +0000 |
commit | 844cdaf461e3e181bcf1d4c0ba79ef5c4140cb4e (patch) | |
tree | a9d4a90738093f7108d5195fb349ce384bbd199e /src/mesa/tnl_dd/t_dd_vbtmp.h | |
parent | 2dc621f3fdb585f23013aa3e220f2148f9405538 (diff) | |
download | external_mesa3d-844cdaf461e3e181bcf1d4c0ba79ef5c4140cb4e.zip external_mesa3d-844cdaf461e3e181bcf1d4c0ba79ef5c4140cb4e.tar.gz external_mesa3d-844cdaf461e3e181bcf1d4c0ba79ef5c4140cb4e.tar.bz2 |
Updates to tnl_dd_dmatmp.h
- Allocate vertices explicitly, rather than trying to talk
about dma buffers.
- Clean up the various Flush() operations.
- Don't allow fallbacks any longer. Provide a support function
to detect them ahead o ftime
Updates to tnl_dd_vbtmp.h
- Get rid of power-of-two vertex strides. Pack all vertices tightly.
- Get texunit 2,3 emit working coorrectly.
Other stuff:
- Get rid of lingering Ubyte color support.
- Fix a few compiler warnings.
Diffstat (limited to 'src/mesa/tnl_dd/t_dd_vbtmp.h')
-rw-r--r-- | src/mesa/tnl_dd/t_dd_vbtmp.h | 22 |
1 files changed, 4 insertions, 18 deletions
diff --git a/src/mesa/tnl_dd/t_dd_vbtmp.h b/src/mesa/tnl_dd/t_dd_vbtmp.h index 14b4a28..f4b710d 100644 --- a/src/mesa/tnl_dd/t_dd_vbtmp.h +++ b/src/mesa/tnl_dd/t_dd_vbtmp.h @@ -470,14 +470,14 @@ static void TAG(interp)( GLcontext *ctx, LOCALVARS struct vertex_buffer *VB = &TNL_CONTEXT(ctx)->vb; GLubyte *ddverts = GET_VERTEX_STORE(); - GLuint shift = GET_VERTEX_STRIDE_SHIFT(); + GLuint size = GET_VERTEX_SIZE(); const GLfloat *dstclip = VB->ClipPtr->data[edst]; GLfloat w; const GLfloat *s = GET_VIEWPORT_MAT(); - VERTEX *dst = (VERTEX *)(ddverts + (edst << shift)); - VERTEX *in = (VERTEX *)(ddverts + (ein << shift)); - VERTEX *out = (VERTEX *)(ddverts + (eout << shift)); + VERTEX *dst = (VERTEX *)(ddverts + (edst * size)); + VERTEX *in = (VERTEX *)(ddverts + (ein * size)); + VERTEX *out = (VERTEX *)(ddverts + (eout * size)); (void)s; @@ -611,12 +611,10 @@ static void TAG(init)( void ) ASSERT(HAVE_PTEX_VERTICES); setup_tab[IND].vertex_format = PROJ_TEX3_VERTEX_FORMAT; setup_tab[IND].vertex_size = 18; - setup_tab[IND].vertex_stride_shift = 7; } else { setup_tab[IND].vertex_format = TEX3_VERTEX_FORMAT; setup_tab[IND].vertex_size = 14; - setup_tab[IND].vertex_stride_shift = 6; } } else if (DO_TEX2) { @@ -624,12 +622,10 @@ static void TAG(init)( void ) ASSERT(HAVE_PTEX_VERTICES); setup_tab[IND].vertex_format = PROJ_TEX3_VERTEX_FORMAT; setup_tab[IND].vertex_size = 18; - setup_tab[IND].vertex_stride_shift = 7; } else { setup_tab[IND].vertex_format = TEX2_VERTEX_FORMAT; setup_tab[IND].vertex_size = 12; - setup_tab[IND].vertex_stride_shift = 6; } } else if (DO_TEX1) { @@ -637,41 +633,31 @@ static void TAG(init)( void ) ASSERT(HAVE_PTEX_VERTICES); setup_tab[IND].vertex_format = PROJ_TEX1_VERTEX_FORMAT; setup_tab[IND].vertex_size = 12; - setup_tab[IND].vertex_stride_shift = 6; } else { setup_tab[IND].vertex_format = TEX1_VERTEX_FORMAT; setup_tab[IND].vertex_size = 10; - setup_tab[IND].vertex_stride_shift = 6; } } else if (DO_TEX0) { if (DO_PTEX && HAVE_PTEX_VERTICES) { setup_tab[IND].vertex_format = PROJ_TEX1_VERTEX_FORMAT; setup_tab[IND].vertex_size = 12; - setup_tab[IND].vertex_stride_shift = 6; } else { setup_tab[IND].vertex_format = TEX0_VERTEX_FORMAT; setup_tab[IND].vertex_size = 8; - setup_tab[IND].vertex_stride_shift = 5; } } else if (!HAVE_HW_DIVIDE && !DO_SPEC && !DO_FOG && HAVE_TINY_VERTICES) { setup_tab[IND].vertex_format = TINY_VERTEX_FORMAT; setup_tab[IND].vertex_size = 4; - setup_tab[IND].vertex_stride_shift = 4; } else if (HAVE_NOTEX_VERTICES) { setup_tab[IND].vertex_format = NOTEX_VERTEX_FORMAT; setup_tab[IND].vertex_size = 6; - setup_tab[IND].vertex_stride_shift = 5; } else { setup_tab[IND].vertex_format = TEX0_VERTEX_FORMAT; setup_tab[IND].vertex_size = 8; - setup_tab[IND].vertex_stride_shift = 5; } - - assert(setup_tab[IND].vertex_size * 4 <= - 1 << setup_tab[IND].vertex_stride_shift); } |