#include "sis_context.h"
#include "sis_span.h"
+#include "sis_lock.h"
+#include "sis_tris.h"
#include "swrast/swrast.h"
/* 16 bit depthbuffer functions.
*/
#define WRITE_DEPTH( _x, _y, d ) \
- *(GLushort *)(buf + _x*2 + _y*smesa->depthPitch) = d;
+ *(GLushort *)(buf + (_x)*2 + (_y)*smesa->depthPitch) = d;
#define READ_DEPTH( d, _x, _y ) \
- d = *(GLushort *)(buf + _x*2 + _y*smesa->depthPitch);
+ d = *(GLushort *)(buf + (_x)*2 + (_y)*smesa->depthPitch);
#define TAG(x) sis##x##_16
#include "depthtmp.h"
/* 32 bit depthbuffer functions.
*/
#define WRITE_DEPTH( _x, _y, d ) \
- *(GLuint *)(buf + _x*4 + _y*smesa->depthPitch) = d;
+ *(GLuint *)(buf + (_x)*4 + (_y)*smesa->depthPitch) = d;
#define READ_DEPTH( d, _x, _y ) \
- d = *(GLuint *)(buf + _x*4 + _y*smesa->depthPitch);
+ d = *(GLuint *)(buf + (_x)*4 + (_y)*smesa->depthPitch);
#define TAG(x) sis##x##_32
#include "depthtmp.h"
/* 8/24 bit interleaved depth/stencil functions
*/
#define WRITE_DEPTH( _x, _y, d ) { \
- GLuint tmp = *(GLuint *)(buf + _x*4 + _y*smesa->depthPitch); \
+ GLuint tmp = *(GLuint *)(buf + (_x)*4 + (_y)*smesa->depthPitch); \
tmp &= 0xff000000; \
tmp |= (d & 0x00ffffff); \
- *(GLuint *)(buf + _x*4 + _y*smesa->depthPitch) = tmp; \
+ *(GLuint *)(buf + (_x)*4 + (_y)*smesa->depthPitch) = tmp; \
}
#define READ_DEPTH( d, _x, _y ) { \
- d = *(GLuint *)(buf + _x*4 + _y*smesa->depthPitch) & 0x00ffffff; \
+ d = *(GLuint *)(buf + (_x)*4 + (_y)*smesa->depthPitch) & 0x00ffffff; \
}
#define TAG(x) sis##x##_24_8
#include "depthtmp.h"
#define WRITE_STENCIL( _x, _y, d ) { \
- GLuint tmp = *(GLuint *)(buf + _x*4 + _y*smesa->depthPitch); \
+ GLuint tmp = *(GLuint *)(buf + (_x)*4 + (_y)*smesa->depthPitch); \
tmp &= 0x00ffffff; \
tmp |= (d << 24); \
- *(GLuint *)(buf + _x*4 + _y*smesa->depthPitch) = tmp; \
+ *(GLuint *)(buf + (_x)*4 + (_y)*smesa->depthPitch) = tmp; \
}
#define READ_STENCIL( d, _x, _y ) \
- d = (*(GLuint *)(buf + _x*4 + _y*smesa->depthPitch) & 0xff000000) >> 24;
+ d = (*(GLuint *)(buf + (_x)*4 + (_y)*smesa->depthPitch) & 0xff000000) >> 24;
#define TAG(x) sis##x##_24_8
#include "stenciltmp.h"
sisContextPtr smesa = SIS_CONTEXT(ctx);
switch ( bufferBit ) {
- case FRONT_LEFT_BIT:
+ case DD_FRONT_LEFT_BIT:
smesa->drawOffset = smesa->readOffset = smesa->frontOffset;
smesa->drawPitch = smesa->readPitch = smesa->frontPitch;
break;
- case BACK_LEFT_BIT:
+ case DD_BACK_LEFT_BIT:
smesa->drawOffset = smesa->readOffset = smesa->backOffset;
smesa->drawPitch = smesa->readPitch = smesa->backPitch;
break;
}
}
-static void sisSpanRenderStart( GLcontext *ctx )
+void sisSpanRenderStart( GLcontext *ctx )
{
sisContextPtr smesa = SIS_CONTEXT(ctx);
+ SIS_FIREVERTICES(smesa);
+ LOCK_HARDWARE();
WaitEngIdle( smesa );
}
-static void sisSpanRenderFinish( GLcontext *ctx )
+void sisSpanRenderFinish( GLcontext *ctx )
{
+ sisContextPtr smesa = SIS_CONTEXT(ctx);
+
_swrast_flush( ctx );
+ UNLOCK_HARDWARE();
}
void
swdd->ReadRGBAPixels = sisReadRGBAPixels_8888;
break;
default:
- assert(0);
+ sis_fatal_error("Bad bytesPerPixel.\n");
break;
}