- CHECKGLERROR
- switch(vid.renderpath)
- {
- case RENDERPATH_GL20:
- case RENDERPATH_CGGL:
- for (unitnum = 0;unitnum < vid.teximageunits;unitnum++)
- {
- gltextureunit_t *unit = gl_state.units + unitnum;
- if (unit->t2d)
- {
- unit->t2d = 0;
- GL_ActiveTexture(unitnum);
- qglBindTexture(GL_TEXTURE_2D, unit->t2d);CHECKGLERROR
- }
- if (unit->t3d)
- {
- unit->t3d = 0;
- GL_ActiveTexture(unitnum);
- qglBindTexture(GL_TEXTURE_3D, unit->t3d);CHECKGLERROR
- }
- if (unit->tcubemap)
- {
- unit->tcubemap = 0;
- GL_ActiveTexture(unitnum);
- qglBindTexture(GL_TEXTURE_CUBE_MAP_ARB, unit->tcubemap);CHECKGLERROR
- }
- if (unit->trectangle)
- {
- unit->trectangle = 0;
- GL_ActiveTexture(unitnum);
- qglBindTexture(GL_TEXTURE_RECTANGLE_ARB, unit->trectangle);CHECKGLERROR
- }
- }
- for (unitnum = 0;unitnum < vid.texarrayunits;unitnum++)
- {
- gltextureunit_t *unit = gl_state.units + unitnum;
- if (unit->arrayenabled)
- {
- unit->arrayenabled = false;
- GL_ClientActiveTexture(unitnum);
- qglDisableClientState(GL_TEXTURE_COORD_ARRAY);CHECKGLERROR
- }
- }
- for (unitnum = 0;unitnum < vid.texunits;unitnum++)
- {
- gltextureunit_t *unit = gl_state.units + unitnum;
- if (unit->texmatrixenabled)
- {
- unit->texmatrixenabled = false;
- unit->matrix = identitymatrix;
- CHECKGLERROR
- GL_ActiveTexture(unitnum);
- qglMatrixMode(GL_TEXTURE);CHECKGLERROR
- qglLoadIdentity();CHECKGLERROR
- qglMatrixMode(GL_MODELVIEW);CHECKGLERROR
- }
- }
- break;
- case RENDERPATH_GL13:
- case RENDERPATH_GL11:
- for (unitnum = 0;unitnum < vid.texunits;unitnum++)
- {
- gltextureunit_t *unit = gl_state.units + unitnum;
- if (unit->t2d)
- {
- unit->t2d = 0;
- GL_ActiveTexture(unitnum);
- qglDisable(GL_TEXTURE_2D);CHECKGLERROR
- qglBindTexture(GL_TEXTURE_2D, unit->t2d);CHECKGLERROR
- }
- if (unit->t3d)
- {
- unit->t3d = 0;
- GL_ActiveTexture(unitnum);
- qglDisable(GL_TEXTURE_3D);CHECKGLERROR
- qglBindTexture(GL_TEXTURE_3D, unit->t3d);CHECKGLERROR
- }
- if (unit->tcubemap)
- {
- unit->tcubemap = 0;
- GL_ActiveTexture(unitnum);
- qglDisable(GL_TEXTURE_CUBE_MAP_ARB);CHECKGLERROR
- qglBindTexture(GL_TEXTURE_CUBE_MAP_ARB, unit->tcubemap);CHECKGLERROR
- }
- if (unit->trectangle)
- {
- unit->trectangle = 0;
- GL_ActiveTexture(unitnum);
- qglDisable(GL_TEXTURE_RECTANGLE_ARB);CHECKGLERROR
- qglBindTexture(GL_TEXTURE_RECTANGLE_ARB, unit->trectangle);CHECKGLERROR
- }
- if (unit->arrayenabled)
- {
- unit->arrayenabled = false;
- GL_ClientActiveTexture(unitnum);
- qglDisableClientState(GL_TEXTURE_COORD_ARRAY);CHECKGLERROR
- }
- if (unit->texmatrixenabled)
- {
- unit->texmatrixenabled = false;
- unit->matrix = identitymatrix;
- CHECKGLERROR
- GL_ActiveTexture(unitnum);
- qglMatrixMode(GL_TEXTURE);CHECKGLERROR
- qglLoadIdentity();CHECKGLERROR
- qglMatrixMode(GL_MODELVIEW);CHECKGLERROR
- }
- if (unit->combine != GL_MODULATE)
- {
- unit->combine = GL_MODULATE;
- GL_ActiveTexture(unitnum);
- qglTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, unit->combine);CHECKGLERROR
- }
- }
- break;
- }
-}
-
-
-
-r_vertexposition_t *R_Mesh_PrepareVertices_Position_Lock(int numvertices)
-{
- size_t size;
- switch(vid.renderpath)
- {
- case RENDERPATH_GL20:
- case RENDERPATH_CGGL:
- case RENDERPATH_GL13:
- case RENDERPATH_GL11:
- size = sizeof(r_vertexposition_t) * numvertices;
- if (gl_state.preparevertices_tempdatamaxsize < size)
- {
- gl_state.preparevertices_tempdatamaxsize = size;
- gl_state.preparevertices_tempdata = Mem_Realloc(r_main_mempool, gl_state.preparevertices_tempdata, gl_state.preparevertices_tempdatamaxsize);
- }
- gl_state.preparevertices_vertexposition = (r_vertexposition_t *)gl_state.preparevertices_tempdata;
- gl_state.preparevertices_numvertices = numvertices;
- return gl_state.preparevertices_vertexposition;
- default:
- Sys_Error("R_Mesh_PrepareVertices_Position_Lock: unrecognized vid.renderpath\n");
- return NULL;
- }
-}
-
-qboolean R_Mesh_PrepareVertices_Position_Unlock(void)
-{
- switch(vid.renderpath)
- {
- case RENDERPATH_GL20:
- case RENDERPATH_CGGL:
- case RENDERPATH_GL13:
- case RENDERPATH_GL11:
- R_Mesh_PrepareVertices_Position(gl_state.preparevertices_numvertices, gl_state.preparevertices_vertexposition, NULL);
- gl_state.preparevertices_vertexposition = NULL;
- gl_state.preparevertices_numvertices = 0;
- return true;
- default:
- Sys_Error("R_Mesh_PrepareVertices_Position_Lock: unrecognized vid.renderpath\n");
- return false;
- }
-}
-
-void R_Mesh_PrepareVertices_Position_Arrays(int numvertices, const float *vertex3f)
-{
- switch(vid.renderpath)
- {
- case RENDERPATH_GL20:
- case RENDERPATH_CGGL:
- R_Mesh_VertexPointer(3, GL_FLOAT, sizeof(float[3]), vertex3f, NULL, 0);
- R_Mesh_ColorPointer(4, GL_FLOAT, sizeof(float[4]), NULL, NULL, 0);
- R_Mesh_TexCoordPointer(0, 2, GL_FLOAT, sizeof(float[2]), NULL, NULL, 0);
- R_Mesh_TexCoordPointer(1, 2, GL_FLOAT, sizeof(float[2]), NULL, NULL, 0);
- R_Mesh_TexCoordPointer(2, 2, GL_FLOAT, sizeof(float[2]), NULL, NULL, 0);
- R_Mesh_TexCoordPointer(3, 2, GL_FLOAT, sizeof(float[2]), NULL, NULL, 0);
- R_Mesh_TexCoordPointer(4, 2, GL_FLOAT, sizeof(float[2]), NULL, NULL, 0);
- break;
- case RENDERPATH_GL13:
- case RENDERPATH_GL11:
- R_Mesh_VertexPointer(3, GL_FLOAT, sizeof(float[3]), vertex3f, NULL, 0);
- R_Mesh_ColorPointer(4, GL_FLOAT, sizeof(float[4]), NULL, NULL, 0);
- R_Mesh_TexCoordPointer(0, 2, GL_FLOAT, sizeof(float[2]), NULL, NULL, 0);
- if (vid.texunits >= 2)
- R_Mesh_TexCoordPointer(1, 2, GL_FLOAT, sizeof(float[2]), NULL, NULL, 0);
- if (vid.texunits >= 3)
- R_Mesh_TexCoordPointer(2, 2, GL_FLOAT, sizeof(float[2]), NULL, NULL, 0);
- break;
- default:
- Sys_Error("R_Mesh_PrepareVertices_Position_Lock: unrecognized vid.renderpath\n");
- return;
- }