summaryrefslogtreecommitdiff
path: root/xc/lib/GL/mesa/src/drv/r200
diff options
context:
space:
mode:
authorkeithw <keithw>2003-09-03 09:55:07 +0000
committerkeithw <keithw>2003-09-03 09:55:07 +0000
commitaea526b6e6211eab8df3a6169c5a74a81c745a5b (patch)
treec91e0dc852e7ade06d5b7d6f8cdded52b58e5174 /xc/lib/GL/mesa/src/drv/r200
parent1774ec34f55340782f85874951b0c97facf8018a (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.c25
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;