float transreciptable[256];
-void glpoly_init()
+void gl_poly_start()
{
int i;
- Cvar_RegisterVariable (&gl_multitexture);
- Cvar_RegisterVariable (&gl_vertexarrays);
transvert = malloc(MAX_TRANSVERTS * sizeof(transvert_t));
transpoly = malloc(MAX_TRANSPOLYS * sizeof(transpoly_t));
transpolyindex = malloc(MAX_TRANSPOLYS * sizeof(unsigned short));
for (i = 1;i < 256;i++)
transreciptable[i] = 1.0f / i;
}
+void gl_poly_shutdown()
+{
+ free(transvert);
+ free(transpoly);
+ free(transpolyindex);
+ free(wallvert);
+ free(wallpoly);
+ free(skyvert);
+ free(skypoly);
+}
+
+void GL_Poly_Init()
+{
+ Cvar_RegisterVariable (&gl_multitexture);
+ Cvar_RegisterVariable (&gl_vertexarrays);
+ R_RegisterModule("GL_Poly", gl_poly_start, gl_poly_shutdown);
+}
void transpolyclear()
{
transviewdist = DotProduct(r_refdef.vieworg, vpn);
}
+// turned into a #define
+/*
void transpolybegin(int texnum, int glowtexnum, int fogtexnum, int transpolytype)
{
if (currenttranspoly >= MAX_TRANSPOLYS || currenttransvert >= MAX_TRANSVERTS)
transpoly[currenttranspoly].verts = 0;
// transpoly[currenttranspoly].ndist = 0; // clear the normal
}
+*/
// turned into a #define
/*
{
int i, j, tpolytype, texnum;
transpoly_t *p;
+ if (!r_render.value)
+ return;
if (currenttranspoly < 1)
return;
// transpolyrenderminmax();
glEnable(GL_ALPHA_TEST);
else
glDisable(GL_ALPHA_TEST);
- // later note: wasn't working on my TNT drivers... strangely... used a cheaper hack in transpolyvert
- //// offset by 16 depth units so decal sprites appear infront of walls
- //glPolygonOffset(1, -16);
- //glEnable(GL_POLYGON_OFFSET_FILL);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
tpolytype = TPOLYTYPE_ALPHA;
texnum = -1;
glEnd();
}
- //glDisable(GL_POLYGON_OFFSET_FILL);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glDepthMask(1); // enable zbuffer updates
glDisable(GL_ALPHA_TEST);
}
-/*
-void lightpolybegin(int texnum)
-{
- if (currentlightpoly >= MAX_LIGHTPOLYS || currentlightvert >= MAX_LIGHTVERTS)
- return;
- lightpoly[currentlightpoly].texnum = (unsigned short) texnum;
- lightpoly[currentlightpoly].firstvert = currentlightvert;
- lightpoly[currentlightpoly].verts = 0;
-}
-
-// lightpolyvert is a #define
-
-void lightpolyend()
-{
- if (currentlightpoly >= MAX_LIGHTPOLYS)
- return;
- if (lightpoly[currentlightpoly].verts < 3) // skip invalid polygons
- {
- currentlightvert = lightpoly[currentlightpoly].firstvert; // reset vert pointer
- return;
- }
- if (currentlightvert >= MAX_LIGHTVERTS)
- return;
- currentlightpoly++;
-}
-*/
-
extern qboolean isG200;
void wallpolyclear()
int i, j, texnum, lighttexnum;
wallpoly_t *p;
wallvert_t *vert;
+ if (!r_render.value)
+ return;
if (currentwallpoly < 1)
return;
c_brush_polys += currentwallpoly;
skyvert_t *vert;
float length, speedscale;
vec3_t dir;
+ if (!r_render.value)
+ return;
if (currentskypoly < 1)
return;
// testing