From 74b493a5e61237de081a438e774e5d8139d4c6b7 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Wed, 24 Jan 2001 00:04:58 +0000 Subject: Lots of GLchan datatype changes. Added GLvector4us datatype in math/m_vector.[ch] Added _math_trans_4us() in math/m_translate.[ch] Choose GLvector4ub, GLvector4us, GLvector4f at compile time based on CHAN_BITS. Made Driver.ClearColor() and Driver.ClearIndex() optional driver functions. Changed args to Driver.ClearColor(), updated drivers. Reordered files in Makefile.X11 --- src/mesa/array_cache/ac_import.c | 82 +++++++++++++++++++++++++++++----------- 1 file changed, 60 insertions(+), 22 deletions(-) (limited to 'src/mesa/array_cache') diff --git a/src/mesa/array_cache/ac_import.c b/src/mesa/array_cache/ac_import.c index e6d7651170..3c665e9d66 100644 --- a/src/mesa/array_cache/ac_import.c +++ b/src/mesa/array_cache/ac_import.c @@ -1,4 +1,4 @@ -/* $Id: ac_import.c,v 1.3 2001/01/16 15:25:11 brianp Exp $ */ +/* $Id: ac_import.c,v 1.4 2001/01/24 00:04:59 brianp Exp $ */ /* * Mesa 3-D graphics library @@ -33,6 +33,7 @@ #include "mmath.h" #include "mtypes.h" +#include "math/m_translate.h" #include "array_cache/ac_context.h" #include "math/m_translate.h" @@ -270,20 +271,39 @@ static void import_color( GLcontext *ctx, /* Limited choices at this stage: */ - ASSERT(type == GL_UNSIGNED_BYTE); - ASSERT(stride == 4*sizeof(GLubyte) || stride == 0); + /* XXX GLchan: is this right for GLchan? */ + ASSERT(type == CHAN_TYPE); + ASSERT(stride == 4 * sizeof(GLchan) || stride == 0); +#if CHAN_TYPE == GL_UNSIGNED_BYTE _math_trans_4ub( to->Ptr, - from->Ptr, - from->StrideB, - from->Type, - from->Size, - ac->start, - ac->count); + from->Ptr, + from->StrideB, + from->Type, + from->Size, + ac->start, + ac->count); +#elif CHAN_TYPE == GL_UNSIGNED_SHORT + _math_trans_4us( to->Ptr, + from->Ptr, + from->StrideB, + from->Type, + from->Size, + ac->start, + ac->count); +#elif CHAN_TYPE == GL_FLOAT + _math_trans_4f( to->Ptr, + from->Ptr, + from->StrideB, + from->Type, + from->Size, + ac->start, + ac->count); +#endif to->Size = from->Size; - to->StrideB = 4 * sizeof(GLubyte); - to->Type = GL_UNSIGNED_BYTE; + to->StrideB = 4 * sizeof(GLchan); + to->Type = CHAN_TYPE; ac->Current.Color = to; ac->Writeable.Color = GL_TRUE; } @@ -322,19 +342,37 @@ static void import_secondarycolor( GLcontext *ctx, /* Limited choices at this stage: */ - ASSERT(type == GL_UNSIGNED_BYTE); - ASSERT(stride == 4*sizeof(GLubyte) || stride == 0); + ASSERT(type == CHAN_TYPE); + ASSERT(stride == 4 * sizeof(GLchan) || stride == 0); +#if CHAN_TYPE == GL_UNSIGNED_BYTE _math_trans_4ub( to->Ptr, - from->Ptr, - from->StrideB, - from->Type, - from->Size, - ac->start, - ac->count); - - to->StrideB = 4 * sizeof(GLubyte); - to->Type = GL_UNSIGNED_BYTE; + from->Ptr, + from->StrideB, + from->Type, + from->Size, + ac->start, + ac->count); +#elif CHAN_TYPE == GL_UNSIGNED_SHORT + _math_trans_4us( to->Ptr, + from->Ptr, + from->StrideB, + from->Type, + from->Size, + ac->start, + ac->count); +#elif CHAN_TYPE == GL_FLOAT + _math_trans_4f( to->Ptr, + from->Ptr, + from->StrideB, + from->Type, + from->Size, + ac->start, + ac->count); +#endif + + to->StrideB = 4 * sizeof(GLchan); + to->Type = CHAN_TYPE; ac->Current.SecondaryColor = to; ac->Writeable.SecondaryColor = GL_TRUE; } -- cgit v1.2.3