]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - gl_poly.c
Borland C++ makefile for Darkplaces. Does NOT use asm objs yet, but works otherwise.
[xonotic/darkplaces.git] / gl_poly.c
index 3947bbd80fabb9dfc3e6c48b6fed04b987beddd5..577a8bc1676dd8d8d1a43a7129b88dd6bd9bf31e 100644 (file)
--- a/gl_poly.c
+++ b/gl_poly.c
@@ -34,11 +34,9 @@ float transviewdist; // distance of view origin along the view normal
 
 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));
@@ -50,6 +48,23 @@ void glpoly_init()
        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()
 {
@@ -353,6 +368,8 @@ void transpolyrender()
 {
        int i, j, tpolytype, texnum;
        transpoly_t *p;
+       if (!r_render.value)
+               return;
        if (currenttranspoly < 1)
                return;
 //     transpolyrenderminmax();
@@ -555,6 +572,8 @@ void wallpolyrender()
        int i, j, texnum, lighttexnum;
        wallpoly_t *p;
        wallvert_t *vert;
+       if (!r_render.value)
+               return;
        if (currentwallpoly < 1)
                return;
        c_brush_polys += currentwallpoly;
@@ -778,6 +797,8 @@ void skypolyrender()
        skyvert_t *vert;
        float length, speedscale;
        vec3_t dir;
+       if (!r_render.value)
+               return;
        if (currentskypoly < 1)
                return;
        // testing