diff options
author | keithw <keithw> | 2003-09-03 09:55:07 +0000 |
---|---|---|
committer | keithw <keithw> | 2003-09-03 09:55:07 +0000 |
commit | aea526b6e6211eab8df3a6169c5a74a81c745a5b (patch) | |
tree | c91e0dc852e7ade06d5b7d6f8cdded52b58e5174 /xc/lib/GL/mesa/src/drv/r200 | |
parent | 1774ec34f55340782f85874951b0c97facf8018a (diff) |
Add code to emit size==1 texcoord arrays
Diffstat (limited to 'xc/lib/GL/mesa/src/drv/r200')
-rw-r--r-- | xc/lib/GL/mesa/src/drv/r200/r200_maos_arrays.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/xc/lib/GL/mesa/src/drv/r200/r200_maos_arrays.c b/xc/lib/GL/mesa/src/drv/r200/r200_maos_arrays.c index 4b9c3907f..e1eef75f9 100644 --- a/xc/lib/GL/mesa/src/drv/r200/r200_maos_arrays.c +++ b/xc/lib/GL/mesa/src/drv/r200/r200_maos_arrays.c @@ -175,6 +175,28 @@ static void emit_ubyte_rgba( GLcontext *ctx, } +static void emit_vec4( GLcontext *ctx, + struct r200_dma_region *rvb, + char *data, + int stride, + int count ) +{ + int i; + int *out = (int *)(rvb->address + rvb->start); + + if (R200_DEBUG & DEBUG_VERTS) + fprintf(stderr, "%s count %d stride %d\n", + __FUNCTION__, count, stride); + + if (stride == 4) + COPY_DWORDS( out, data, count ); + else + for (i = 0; i < count; i++) { + out[0] = *(int *)data; + out++; + data += stride; + } +} static void emit_vec8( GLcontext *ctx, @@ -285,6 +307,9 @@ static void emit_vector( GLcontext *ctx, /* Emit the data */ switch (size) { + case 1: + emit_vec4( ctx, rvb, data, stride, count ); + break; case 2: emit_vec8( ctx, rvb, data, stride, count ); break; |