-/**********************************************************************/
-/***** Read/write spans/arrays of pixels *****/
-/**********************************************************************/
-
-/* 8-bit RGBA */
-#define NAME(PREFIX) PREFIX##_RGBA8
-#define RB_TYPE GLubyte
-#define SPAN_VARS \
- const OSMesaContext osmesa = OSMESA_CONTEXT(ctx);
-#define INIT_PIXEL_PTR(P, X, Y) \
- GLubyte *P = (GLubyte *) osmesa->rowaddr[Y] + 4 * (X)
-#define INC_PIXEL_PTR(P) P += 4
-#define STORE_PIXEL(DST, X, Y, VALUE) \
- DST[0] = VALUE[RCOMP]; \
- DST[1] = VALUE[GCOMP]; \
- DST[2] = VALUE[BCOMP]; \
- DST[3] = VALUE[ACOMP]
-#define STORE_PIXEL_RGB(DST, X, Y, VALUE) \
- DST[0] = VALUE[RCOMP]; \
- DST[1] = VALUE[GCOMP]; \
- DST[2] = VALUE[BCOMP]; \
- DST[3] = 255
-#define FETCH_PIXEL(DST, SRC) \
- DST[RCOMP] = SRC[0]; \
- DST[GCOMP] = SRC[1]; \
- DST[BCOMP] = SRC[2]; \
- DST[ACOMP] = SRC[3]
-#include "swrast/s_spantemp.h"
-
-/* 16-bit RGBA */
-#define NAME(PREFIX) PREFIX##_RGBA16
-#define RB_TYPE GLushort
-#define SPAN_VARS \
- const OSMesaContext osmesa = OSMESA_CONTEXT(ctx);
-#define INIT_PIXEL_PTR(P, X, Y) \
- GLushort *P = (GLushort *) osmesa->rowaddr[Y] + 4 * (X)
-#define INC_PIXEL_PTR(P) P += 4
-#define STORE_PIXEL(DST, X, Y, VALUE) \
- DST[0] = VALUE[RCOMP]; \
- DST[1] = VALUE[GCOMP]; \
- DST[2] = VALUE[BCOMP]; \
- DST[3] = VALUE[ACOMP]
-#define STORE_PIXEL_RGB(DST, X, Y, VALUE) \
- DST[0] = VALUE[RCOMP]; \
- DST[1] = VALUE[GCOMP]; \
- DST[2] = VALUE[BCOMP]; \
- DST[3] = 65535
-#define FETCH_PIXEL(DST, SRC) \
- DST[RCOMP] = SRC[0]; \
- DST[GCOMP] = SRC[1]; \
- DST[BCOMP] = SRC[2]; \
- DST[ACOMP] = SRC[3]
-#include "swrast/s_spantemp.h"
-
-/* 32-bit RGBA */
-#define NAME(PREFIX) PREFIX##_RGBA32
-#define RB_TYPE GLfloat
-#define SPAN_VARS \
- const OSMesaContext osmesa = OSMESA_CONTEXT(ctx);
-#define INIT_PIXEL_PTR(P, X, Y) \
- GLfloat *P = (GLfloat *) osmesa->rowaddr[Y] + 4 * (X)
-#define INC_PIXEL_PTR(P) P += 4
-#define STORE_PIXEL(DST, X, Y, VALUE) \
- DST[0] = MAX2((VALUE[RCOMP]), 0.0F); \
- DST[1] = MAX2((VALUE[GCOMP]), 0.0F); \
- DST[2] = MAX2((VALUE[BCOMP]), 0.0F); \
- DST[3] = CLAMP((VALUE[ACOMP]), 0.0F, 1.0F)
-#define STORE_PIXEL_RGB(DST, X, Y, VALUE) \
- DST[0] = MAX2((VALUE[RCOMP]), 0.0F); \
- DST[1] = MAX2((VALUE[GCOMP]), 0.0F); \
- DST[2] = MAX2((VALUE[BCOMP]), 0.0F); \
- DST[3] = 1.0F
-#define FETCH_PIXEL(DST, SRC) \
- DST[RCOMP] = SRC[0]; \
- DST[GCOMP] = SRC[1]; \
- DST[BCOMP] = SRC[2]; \
- DST[ACOMP] = SRC[3]
-#include "swrast/s_spantemp.h"
-
-
-/* 8-bit BGRA */
-#define NAME(PREFIX) PREFIX##_BGRA8
-#define RB_TYPE GLubyte
-#define SPAN_VARS \
- const OSMesaContext osmesa = OSMESA_CONTEXT(ctx);
-#define INIT_PIXEL_PTR(P, X, Y) \
- GLubyte *P = (GLubyte *) osmesa->rowaddr[Y] + 4 * (X)
-#define INC_PIXEL_PTR(P) P += 4
-#define STORE_PIXEL(DST, X, Y, VALUE) \
- DST[2] = VALUE[RCOMP]; \
- DST[1] = VALUE[GCOMP]; \
- DST[0] = VALUE[BCOMP]; \
- DST[3] = VALUE[ACOMP]
-#define STORE_PIXEL_RGB(DST, X, Y, VALUE) \
- DST[2] = VALUE[RCOMP]; \
- DST[1] = VALUE[GCOMP]; \
- DST[0] = VALUE[BCOMP]; \
- DST[3] = 255
-#define FETCH_PIXEL(DST, SRC) \
- DST[RCOMP] = SRC[2]; \
- DST[GCOMP] = SRC[1]; \
- DST[BCOMP] = SRC[0]; \
- DST[ACOMP] = SRC[3]
-#include "swrast/s_spantemp.h"
-
-/* 16-bit BGRA */
-#define NAME(PREFIX) PREFIX##_BGRA16
-#define RB_TYPE GLushort
-#define SPAN_VARS \
- const OSMesaContext osmesa = OSMESA_CONTEXT(ctx);
-#define INIT_PIXEL_PTR(P, X, Y) \
- GLushort *P = (GLushort *) osmesa->rowaddr[Y] + 4 * (X)
-#define INC_PIXEL_PTR(P) P += 4
-#define STORE_PIXEL(DST, X, Y, VALUE) \
- DST[2] = VALUE[RCOMP]; \
- DST[1] = VALUE[GCOMP]; \
- DST[0] = VALUE[BCOMP]; \
- DST[3] = VALUE[ACOMP]
-#define STORE_PIXEL_RGB(DST, X, Y, VALUE) \
- DST[2] = VALUE[RCOMP]; \
- DST[1] = VALUE[GCOMP]; \
- DST[0] = VALUE[BCOMP]; \
- DST[3] = 65535
-#define FETCH_PIXEL(DST, SRC) \
- DST[RCOMP] = SRC[2]; \
- DST[GCOMP] = SRC[1]; \
- DST[BCOMP] = SRC[0]; \
- DST[ACOMP] = SRC[3]
-#include "swrast/s_spantemp.h"
-
-/* 32-bit BGRA */
-#define NAME(PREFIX) PREFIX##_BGRA32
-#define RB_TYPE GLfloat
-#define SPAN_VARS \
- const OSMesaContext osmesa = OSMESA_CONTEXT(ctx);
-#define INIT_PIXEL_PTR(P, X, Y) \
- GLfloat *P = (GLfloat *) osmesa->rowaddr[Y] + 4 * (X)
-#define INC_PIXEL_PTR(P) P += 4
-#define STORE_PIXEL(DST, X, Y, VALUE) \
- DST[2] = VALUE[RCOMP]; \
- DST[1] = VALUE[GCOMP]; \
- DST[0] = VALUE[BCOMP]; \
- DST[3] = VALUE[ACOMP]
-#define STORE_PIXEL_RGB(DST, X, Y, VALUE) \
- DST[2] = VALUE[RCOMP]; \
- DST[1] = VALUE[GCOMP]; \
- DST[0] = VALUE[BCOMP]; \
- DST[3] = 1.0F
-#define FETCH_PIXEL(DST, SRC) \
- DST[RCOMP] = SRC[2]; \
- DST[GCOMP] = SRC[1]; \
- DST[BCOMP] = SRC[0]; \
- DST[ACOMP] = SRC[3]
-#include "swrast/s_spantemp.h"
-
-
-/* 8-bit ARGB */
-#define NAME(PREFIX) PREFIX##_ARGB8
-#define RB_TYPE GLubyte
-#define SPAN_VARS \
- const OSMesaContext osmesa = OSMESA_CONTEXT(ctx);
-#define INIT_PIXEL_PTR(P, X, Y) \
- GLubyte *P = (GLubyte *) osmesa->rowaddr[Y] + 4 * (X)
-#define INC_PIXEL_PTR(P) P += 4
-#define STORE_PIXEL(DST, X, Y, VALUE) \
- DST[1] = VALUE[RCOMP]; \
- DST[2] = VALUE[GCOMP]; \
- DST[3] = VALUE[BCOMP]; \
- DST[0] = VALUE[ACOMP]
-#define STORE_PIXEL_RGB(DST, X, Y, VALUE) \
- DST[1] = VALUE[RCOMP]; \
- DST[2] = VALUE[GCOMP]; \
- DST[3] = VALUE[BCOMP]; \
- DST[0] = 255
-#define FETCH_PIXEL(DST, SRC) \
- DST[RCOMP] = SRC[1]; \
- DST[GCOMP] = SRC[2]; \
- DST[BCOMP] = SRC[3]; \
- DST[ACOMP] = SRC[0]
-#include "swrast/s_spantemp.h"
-
-/* 16-bit ARGB */
-#define NAME(PREFIX) PREFIX##_ARGB16
-#define RB_TYPE GLushort
-#define SPAN_VARS \
- const OSMesaContext osmesa = OSMESA_CONTEXT(ctx);
-#define INIT_PIXEL_PTR(P, X, Y) \
- GLushort *P = (GLushort *) osmesa->rowaddr[Y] + 4 * (X)
-#define INC_PIXEL_PTR(P) P += 4
-#define STORE_PIXEL(DST, X, Y, VALUE) \
- DST[1] = VALUE[RCOMP]; \
- DST[2] = VALUE[GCOMP]; \
- DST[3] = VALUE[BCOMP]; \
- DST[0] = VALUE[ACOMP]
-#define STORE_PIXEL_RGB(DST, X, Y, VALUE) \
- DST[1] = VALUE[RCOMP]; \
- DST[2] = VALUE[GCOMP]; \
- DST[3] = VALUE[BCOMP]; \
- DST[0] = 65535
-#define FETCH_PIXEL(DST, SRC) \
- DST[RCOMP] = SRC[1]; \
- DST[GCOMP] = SRC[2]; \
- DST[BCOMP] = SRC[3]; \
- DST[ACOMP] = SRC[0]
-#include "swrast/s_spantemp.h"
-
-/* 32-bit ARGB */
-#define NAME(PREFIX) PREFIX##_ARGB32
-#define RB_TYPE GLfloat
-#define SPAN_VARS \
- const OSMesaContext osmesa = OSMESA_CONTEXT(ctx);
-#define INIT_PIXEL_PTR(P, X, Y) \
- GLfloat *P = (GLfloat *) osmesa->rowaddr[Y] + 4 * (X)
-#define INC_PIXEL_PTR(P) P += 4
-#define STORE_PIXEL(DST, X, Y, VALUE) \
- DST[1] = VALUE[RCOMP]; \
- DST[2] = VALUE[GCOMP]; \
- DST[3] = VALUE[BCOMP]; \
- DST[0] = VALUE[ACOMP]
-#define STORE_PIXEL_RGB(DST, X, Y, VALUE) \
- DST[1] = VALUE[RCOMP]; \
- DST[2] = VALUE[GCOMP]; \
- DST[3] = VALUE[BCOMP]; \
- DST[0] = 1.0F
-#define FETCH_PIXEL(DST, SRC) \
- DST[RCOMP] = SRC[1]; \
- DST[GCOMP] = SRC[2]; \
- DST[BCOMP] = SRC[3]; \
- DST[ACOMP] = SRC[0]
-#include "swrast/s_spantemp.h"
-
-
-/* 8-bit RGB */
-#define NAME(PREFIX) PREFIX##_RGB8
-#define RB_TYPE GLubyte
-#define SPAN_VARS \
- const OSMesaContext osmesa = OSMESA_CONTEXT(ctx);
-#define INIT_PIXEL_PTR(P, X, Y) \
- GLubyte *P = (GLubyte *) osmesa->rowaddr[Y] + 3 * (X)
-#define INC_PIXEL_PTR(P) P += 3
-#define STORE_PIXEL(DST, X, Y, VALUE) \
- DST[0] = VALUE[RCOMP]; \
- DST[1] = VALUE[GCOMP]; \
- DST[2] = VALUE[BCOMP]
-#define FETCH_PIXEL(DST, SRC) \
- DST[RCOMP] = SRC[0]; \
- DST[GCOMP] = SRC[1]; \
- DST[BCOMP] = SRC[2]; \
- DST[ACOMP] = 255
-#include "swrast/s_spantemp.h"
-
-/* 16-bit RGB */
-#define NAME(PREFIX) PREFIX##_RGB16
-#define RB_TYPE GLushort
-#define SPAN_VARS \
- const OSMesaContext osmesa = OSMESA_CONTEXT(ctx);
-#define INIT_PIXEL_PTR(P, X, Y) \
- GLushort *P = (GLushort *) osmesa->rowaddr[Y] + 3 * (X)
-#define INC_PIXEL_PTR(P) P += 3
-#define STORE_PIXEL(DST, X, Y, VALUE) \
- DST[0] = VALUE[RCOMP]; \
- DST[1] = VALUE[GCOMP]; \
- DST[2] = VALUE[BCOMP]
-#define FETCH_PIXEL(DST, SRC) \
- DST[RCOMP] = SRC[0]; \
- DST[GCOMP] = SRC[1]; \
- DST[BCOMP] = SRC[2]; \
- DST[ACOMP] = 65535U
-#include "swrast/s_spantemp.h"
-
-/* 32-bit RGB */
-#define NAME(PREFIX) PREFIX##_RGB32
-#define RB_TYPE GLfloat
-#define SPAN_VARS \
- const OSMesaContext osmesa = OSMESA_CONTEXT(ctx);
-#define INIT_PIXEL_PTR(P, X, Y) \
- GLfloat *P = (GLfloat *) osmesa->rowaddr[Y] + 3 * (X)
-#define INC_PIXEL_PTR(P) P += 3
-#define STORE_PIXEL(DST, X, Y, VALUE) \
- DST[0] = VALUE[RCOMP]; \
- DST[1] = VALUE[GCOMP]; \
- DST[2] = VALUE[BCOMP]
-#define FETCH_PIXEL(DST, SRC) \
- DST[RCOMP] = SRC[0]; \
- DST[GCOMP] = SRC[1]; \
- DST[BCOMP] = SRC[2]; \
- DST[ACOMP] = 1.0F
-#include "swrast/s_spantemp.h"
-
-
-/* 8-bit BGR */
-#define NAME(PREFIX) PREFIX##_BGR8
-#define RB_TYPE GLubyte
-#define SPAN_VARS \
- const OSMesaContext osmesa = OSMESA_CONTEXT(ctx);
-#define INIT_PIXEL_PTR(P, X, Y) \
- GLubyte *P = (GLubyte *) osmesa->rowaddr[Y] + 3 * (X)
-#define INC_PIXEL_PTR(P) P += 3
-#define STORE_PIXEL(DST, X, Y, VALUE) \
- DST[2] = VALUE[RCOMP]; \
- DST[1] = VALUE[GCOMP]; \
- DST[0] = VALUE[BCOMP]
-#define FETCH_PIXEL(DST, SRC) \
- DST[RCOMP] = SRC[2]; \
- DST[GCOMP] = SRC[1]; \
- DST[BCOMP] = SRC[0]; \
- DST[ACOMP] = 255
-#include "swrast/s_spantemp.h"
-
-/* 16-bit BGR */
-#define NAME(PREFIX) PREFIX##_BGR16
-#define RB_TYPE GLushort
-#define SPAN_VARS \
- const OSMesaContext osmesa = OSMESA_CONTEXT(ctx);
-#define INIT_PIXEL_PTR(P, X, Y) \
- GLushort *P = (GLushort *) osmesa->rowaddr[Y] + 3 * (X)
-#define INC_PIXEL_PTR(P) P += 3
-#define STORE_PIXEL(DST, X, Y, VALUE) \
- DST[2] = VALUE[RCOMP]; \
- DST[1] = VALUE[GCOMP]; \
- DST[0] = VALUE[BCOMP]
-#define FETCH_PIXEL(DST, SRC) \
- DST[RCOMP] = SRC[2]; \
- DST[GCOMP] = SRC[1]; \
- DST[BCOMP] = SRC[0]; \
- DST[ACOMP] = 65535
-#include "swrast/s_spantemp.h"
-
-/* 32-bit BGR */
-#define NAME(PREFIX) PREFIX##_BGR32
-#define RB_TYPE GLfloat
-#define SPAN_VARS \
- const OSMesaContext osmesa = OSMESA_CONTEXT(ctx);
-#define INIT_PIXEL_PTR(P, X, Y) \
- GLfloat *P = (GLfloat *) osmesa->rowaddr[Y] + 3 * (X)
-#define INC_PIXEL_PTR(P) P += 3
-#define STORE_PIXEL(DST, X, Y, VALUE) \
- DST[2] = VALUE[RCOMP]; \
- DST[1] = VALUE[GCOMP]; \
- DST[0] = VALUE[BCOMP]
-#define FETCH_PIXEL(DST, SRC) \
- DST[RCOMP] = SRC[2]; \
- DST[GCOMP] = SRC[1]; \
- DST[BCOMP] = SRC[0]; \
- DST[ACOMP] = 1.0F
-#include "swrast/s_spantemp.h"
-
-
-/* 16-bit 5/6/5 RGB */
-#define NAME(PREFIX) PREFIX##_RGB_565
-#define RB_TYPE GLubyte
-#define SPAN_VARS \
- const OSMesaContext osmesa = OSMESA_CONTEXT(ctx);
-#define INIT_PIXEL_PTR(P, X, Y) \
- GLushort *P = (GLushort *) osmesa->rowaddr[Y] + (X)
-#define INC_PIXEL_PTR(P) P += 1
-#define STORE_PIXEL(DST, X, Y, VALUE) \
- *DST = ( (((VALUE[RCOMP]) & 0xf8) << 8) | (((VALUE[GCOMP]) & 0xfc) << 3) | ((VALUE[BCOMP]) >> 3) )
-#define FETCH_PIXEL(DST, SRC) \
- DST[RCOMP] = ( (((*SRC) >> 8) & 0xf8) | (((*SRC) >> 11) & 0x7) ); \
- DST[GCOMP] = ( (((*SRC) >> 3) & 0xfc) | (((*SRC) >> 5) & 0x3) ); \
- DST[BCOMP] = ( (((*SRC) << 3) & 0xf8) | (((*SRC) ) & 0x7) ); \
- DST[ACOMP] = CHAN_MAX
-#include "swrast/s_spantemp.h"
-
-