}
#endif
-#define BACKENDACTIVECHECK if (!backendactive) Sys_Error("GL backend function called when backend is not active\n");
+#define BACKENDACTIVECHECK if (!backendactive) Sys_Error("GL backend function called when backend is not active");
void SCR_ScreenShot_f (void);
}
gltextureunit_t;
-static struct
+static struct gl_state_s
{
int blendfunc1;
int blendfunc2;
unsigned int i;
gltextureunit_t *unit;
CHECKGLERROR
- gl_state.unit = -1;
- gl_state.clientunit = -1;
+ gl_state.unit = MAX_TEXTUREUNITS;
+ gl_state.clientunit = MAX_TEXTUREUNITS;
for (i = 0;i < MAX_TEXTUREUNITS;i++)
{
unit = gl_state.units + i;
R_Mesh_Draw_ShowTris(firstvertex, numvertices, numtriangles, elements);
return;
}
- c_meshs++;
- c_meshelements += numelements;
+ renderstats.meshes++;
+ renderstats.meshes_elements += numelements;
if (gl_paranoid.integer)
{
unsigned int i, j, size;
void R_Mesh_TexBindAll(unsigned int unitnum, int tex1d, int tex2d, int tex3d, int texcubemap)
{
gltextureunit_t *unit = gl_state.units + unitnum;
- if (unitnum >= backendunits)
+ if (unitnum >= backendimageunits)
return;
if (r_showtrispass)
return;
void R_Mesh_TexBind1D(unsigned int unitnum, int texnum)
{
gltextureunit_t *unit = gl_state.units + unitnum;
- if (unitnum >= backendunits)
+ if (unitnum >= backendimageunits)
return;
if (r_showtrispass)
return;
if (unit->t1d != texnum)
{
GL_ActiveTexture(unitnum);
- if (texnum)
- {
- if (unit->t1d == 0)
- qglEnable(GL_TEXTURE_1D);
- }
- else
+ if (unitnum < backendunits)
{
- if (unit->t1d)
- qglDisable(GL_TEXTURE_1D);
+ if (texnum)
+ {
+ if (unit->t1d == 0)
+ qglEnable(GL_TEXTURE_1D);
+ }
+ else
+ {
+ if (unit->t1d)
+ qglDisable(GL_TEXTURE_1D);
+ }
}
unit->t1d = texnum;
qglBindTexture(GL_TEXTURE_1D, unit->t1d);
if (unit->t2d)
{
GL_ActiveTexture(unitnum);
- if (unit->t2d)
- qglDisable(GL_TEXTURE_2D);
+ if (unitnum < backendunits)
+ {
+ if (unit->t2d)
+ qglDisable(GL_TEXTURE_2D);
+ }
unit->t2d = 0;
qglBindTexture(GL_TEXTURE_2D, unit->t2d);
CHECKGLERROR
if (unit->t3d)
{
GL_ActiveTexture(unitnum);
- if (unit->t3d)
- qglDisable(GL_TEXTURE_3D);
+ if (unitnum < backendunits)
+ {
+ if (unit->t3d)
+ qglDisable(GL_TEXTURE_3D);
+ }
unit->t3d = 0;
qglBindTexture(GL_TEXTURE_3D, unit->t3d);
CHECKGLERROR
if (unit->tcubemap)
{
GL_ActiveTexture(unitnum);
- if (unit->tcubemap)
- qglDisable(GL_TEXTURE_CUBE_MAP_ARB);
+ if (unitnum < backendunits)
+ {
+ if (unit->tcubemap)
+ qglDisable(GL_TEXTURE_CUBE_MAP_ARB);
+ }
unit->tcubemap = 0;
qglBindTexture(GL_TEXTURE_CUBE_MAP_ARB, unit->tcubemap);
CHECKGLERROR
void R_Mesh_TexBind(unsigned int unitnum, int texnum)
{
gltextureunit_t *unit = gl_state.units + unitnum;
- if (unitnum >= backendunits)
+ if (unitnum >= backendimageunits)
return;
if (r_showtrispass)
return;
if (unit->t1d)
{
GL_ActiveTexture(unitnum);
- if (unit->t1d)
- qglDisable(GL_TEXTURE_1D);
+ if (unitnum < backendunits)
+ {
+ if (unit->t1d)
+ qglDisable(GL_TEXTURE_1D);
+ }
unit->t1d = 0;
qglBindTexture(GL_TEXTURE_1D, unit->t1d);
CHECKGLERROR
if (unit->t2d != texnum)
{
GL_ActiveTexture(unitnum);
- if (texnum)
- {
- if (unit->t2d == 0)
- qglEnable(GL_TEXTURE_2D);
- }
- else
+ if (unitnum < backendunits)
{
- if (unit->t2d)
- qglDisable(GL_TEXTURE_2D);
+ if (texnum)
+ {
+ if (unit->t2d == 0)
+ qglEnable(GL_TEXTURE_2D);
+ }
+ else
+ {
+ if (unit->t2d)
+ qglDisable(GL_TEXTURE_2D);
+ }
}
unit->t2d = texnum;
qglBindTexture(GL_TEXTURE_2D, unit->t2d);
if (unit->t3d)
{
GL_ActiveTexture(unitnum);
- if (unit->t3d)
- qglDisable(GL_TEXTURE_3D);
+ if (unitnum < backendunits)
+ {
+ if (unit->t3d)
+ qglDisable(GL_TEXTURE_3D);
+ }
unit->t3d = 0;
qglBindTexture(GL_TEXTURE_3D, unit->t3d);
CHECKGLERROR
if (unit->tcubemap != 0)
{
GL_ActiveTexture(unitnum);
- if (unit->tcubemap)
- qglDisable(GL_TEXTURE_CUBE_MAP_ARB);
+ if (unitnum < backendunits)
+ {
+ if (unit->tcubemap)
+ qglDisable(GL_TEXTURE_CUBE_MAP_ARB);
+ }
unit->tcubemap = 0;
qglBindTexture(GL_TEXTURE_CUBE_MAP_ARB, unit->tcubemap);
CHECKGLERROR
void R_Mesh_TexBind3D(unsigned int unitnum, int texnum)
{
gltextureunit_t *unit = gl_state.units + unitnum;
- if (unitnum >= backendunits)
+ if (unitnum >= backendimageunits)
return;
if (r_showtrispass)
return;
if (unit->t1d)
{
GL_ActiveTexture(unitnum);
- if (unit->t1d)
- qglDisable(GL_TEXTURE_1D);
+ if (unitnum < backendunits)
+ {
+ if (unit->t1d)
+ qglDisable(GL_TEXTURE_1D);
+ }
unit->t1d = 0;
qglBindTexture(GL_TEXTURE_1D, unit->t1d);
CHECKGLERROR
if (unit->t2d)
{
GL_ActiveTexture(unitnum);
- if (unit->t2d)
- qglDisable(GL_TEXTURE_2D);
+ if (unitnum < backendunits)
+ {
+ if (unit->t2d)
+ qglDisable(GL_TEXTURE_2D);
+ }
unit->t2d = 0;
qglBindTexture(GL_TEXTURE_2D, unit->t2d);
CHECKGLERROR
if (unit->t3d != texnum)
{
GL_ActiveTexture(unitnum);
- if (texnum)
- {
- if (unit->t3d == 0)
- qglEnable(GL_TEXTURE_3D);
- }
- else
+ if (unitnum < backendunits)
{
- if (unit->t3d)
- qglDisable(GL_TEXTURE_3D);
+ if (texnum)
+ {
+ if (unit->t3d == 0)
+ qglEnable(GL_TEXTURE_3D);
+ }
+ else
+ {
+ if (unit->t3d)
+ qglDisable(GL_TEXTURE_3D);
+ }
}
unit->t3d = texnum;
qglBindTexture(GL_TEXTURE_3D, unit->t3d);
if (unit->tcubemap != 0)
{
GL_ActiveTexture(unitnum);
- if (unit->tcubemap)
- qglDisable(GL_TEXTURE_CUBE_MAP_ARB);
+ if (unitnum < backendunits)
+ {
+ if (unit->tcubemap)
+ qglDisable(GL_TEXTURE_CUBE_MAP_ARB);
+ }
unit->tcubemap = 0;
qglBindTexture(GL_TEXTURE_CUBE_MAP_ARB, unit->tcubemap);
CHECKGLERROR
void R_Mesh_TexBindCubeMap(unsigned int unitnum, int texnum)
{
gltextureunit_t *unit = gl_state.units + unitnum;
- if (unitnum >= backendunits)
+ if (unitnum >= backendimageunits)
return;
if (r_showtrispass)
return;
if (unit->t1d)
{
GL_ActiveTexture(unitnum);
- if (unit->t1d)
- qglDisable(GL_TEXTURE_1D);
+ if (unitnum < backendunits)
+ {
+ if (unit->t1d)
+ qglDisable(GL_TEXTURE_1D);
+ }
unit->t1d = 0;
qglBindTexture(GL_TEXTURE_1D, unit->t1d);
CHECKGLERROR
if (unit->t2d)
{
GL_ActiveTexture(unitnum);
- if (unit->t2d)
- qglDisable(GL_TEXTURE_2D);
+ if (unitnum < backendunits)
+ {
+ if (unit->t2d)
+ qglDisable(GL_TEXTURE_2D);
+ }
unit->t2d = 0;
qglBindTexture(GL_TEXTURE_2D, unit->t2d);
CHECKGLERROR
if (unit->t3d)
{
GL_ActiveTexture(unitnum);
- if (unit->t3d)
- qglDisable(GL_TEXTURE_3D);
+ if (unitnum < backendunits)
+ {
+ if (unit->t3d)
+ qglDisable(GL_TEXTURE_3D);
+ }
unit->t3d = 0;
qglBindTexture(GL_TEXTURE_3D, unit->t3d);
CHECKGLERROR
if (unit->tcubemap != texnum)
{
GL_ActiveTexture(unitnum);
- if (texnum)
- {
- if (unit->tcubemap == 0)
- qglEnable(GL_TEXTURE_CUBE_MAP_ARB);
- }
- else
+ if (unitnum < backendunits)
{
- if (unit->tcubemap)
- qglDisable(GL_TEXTURE_CUBE_MAP_ARB);
+ if (texnum)
+ {
+ if (unit->tcubemap == 0)
+ qglEnable(GL_TEXTURE_CUBE_MAP_ARB);
+ }
+ else
+ {
+ if (unit->tcubemap)
+ qglDisable(GL_TEXTURE_CUBE_MAP_ARB);
+ }
}
unit->tcubemap = texnum;
qglBindTexture(GL_TEXTURE_CUBE_MAP_ARB, unit->tcubemap);
==============================================================================
*/
-qboolean SCR_ScreenShot(char *filename, qbyte *buffer1, qbyte *buffer2, qbyte *buffer3, int x, int y, int width, int height, qboolean flipx, qboolean flipy, qboolean flipdiagonal, qboolean jpeg, qboolean gammacorrect)
+qboolean SCR_ScreenShot(char *filename, unsigned char *buffer1, unsigned char *buffer2, unsigned char *buffer3, int x, int y, int width, int height, qboolean flipx, qboolean flipy, qboolean flipdiagonal, qboolean jpeg, qboolean gammacorrect)
{
int indices[3] = {0,1,2};
qboolean ret;
// size of data buffer
static int r_mesh_rcachedata_size = RCACHEARRAY_DEFAULTSIZE;
// data buffer
-static qbyte r_mesh_rcachedata[RCACHEARRAY_DEFAULTSIZE];
+static unsigned char r_mesh_rcachedata[RCACHEARRAY_DEFAULTSIZE];
// current state
static int r_mesh_rcachedata_offset;
//R_Mesh_CacheArray_ValidateState(3);
// calculate a hashindex to choose a cache chain
r->data = NULL;
- hashindex = CRC_Block((void *)r, sizeof(*r)) % RCACHEARRAY_HASHSIZE;
+ hashindex = CRC_Block((unsigned char *)r, sizeof(*r)) % RCACHEARRAY_HASHSIZE;
// is it already cached?
for (lhead = &r_mesh_rcachechain[hashindex], l = lhead->next;l != lhead;l = l->next)