added RGB24 support

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24651 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Jérôme Duval
2008-03-29 13:40:00 +00:00
parent dce81a0945
commit ea8bf461cd
@@ -112,6 +112,25 @@ extern const char * color_space_name(color_space space);
DST[ACOMP] = 0xff; DST[ACOMP] = 0xff;
#include "swrast/s_spantemp.h" #include "swrast/s_spantemp.h"
/* 24-bit RGB */
#define NAME(PREFIX) PREFIX##_RGB24
#define RB_TYPE GLubyte
#define SPAN_VARS \
MesaSoftwareRenderer *mr = (MesaSoftwareRenderer *) ctx->DriverCtx;
#define INIT_PIXEL_PTR(P, X, Y) \
GLubyte *P = ((GLubyte **) mr->GetRows())[Y] + (X) * 3
#define INC_PIXEL_PTR(P) P += 3
#define STORE_PIXEL(DST, X, Y, VALUE) \
DST[BE_RCOMP] = VALUE[RCOMP]; \
DST[BE_GCOMP] = VALUE[GCOMP]; \
DST[BE_BCOMP] = VALUE[BCOMP];
#define FETCH_PIXEL(DST, SRC) \
DST[RCOMP] = SRC[BE_RCOMP]; \
DST[GCOMP] = SRC[BE_GCOMP]; \
DST[BCOMP] = SRC[BE_BCOMP]; \
DST[ACOMP] = 0xff;
#include "swrast/s_spantemp.h"
/* 16-bit RGB */ /* 16-bit RGB */
#define NAME(PREFIX) PREFIX##_RGB16 #define NAME(PREFIX) PREFIX##_RGB16
#define RB_TYPE GLubyte #define RB_TYPE GLubyte
@@ -293,6 +312,15 @@ MesaSoftwareRenderer::LockGL()
fRenderBuffer->PutValues = put_values_RGB32; fRenderBuffer->PutValues = put_values_RGB32;
fRenderBuffer->PutMonoValues = put_mono_values_RGB32; fRenderBuffer->PutMonoValues = put_mono_values_RGB32;
break; break;
case B_RGB24:
fRenderBuffer->GetRow = get_row_RGB24;
fRenderBuffer->GetValues = get_values_RGB24;
fRenderBuffer->PutRow = put_row_RGB24;
fRenderBuffer->PutRowRGB = put_row_rgb_RGB24;
fRenderBuffer->PutMonoRow = put_mono_row_RGB24;
fRenderBuffer->PutValues = put_values_RGB24;
fRenderBuffer->PutMonoValues = put_mono_values_RGB24;
break;
case B_RGB16: case B_RGB16:
fRenderBuffer->GetRow = get_row_RGB16; fRenderBuffer->GetRow = get_row_RGB16;
fRenderBuffer->GetValues = get_values_RGB16; fRenderBuffer->GetValues = get_values_RGB16;