]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - r_sky.c
GL_SetupView_* functions added, they replace most of R_Mesh_Start's functionality...
[xonotic/darkplaces.git] / r_sky.c
diff --git a/r_sky.c b/r_sky.c
index 367428c4664d3af6330532007c878775407a0550..ca799a9d79db580f02ef29e1c5004b6241a0a02a 100644 (file)
--- a/r_sky.c
+++ b/r_sky.c
@@ -15,7 +15,6 @@ static rtexturepool_t *skytexturepool;
 static char skyname[256];
 static char *suf[6] = {"rt", "bk", "lf", "ft", "up", "dn"};
 static rtexture_t *skyboxside[6];
-int R_SetSkyBox(char *sky);
 
 void R_SkyStartFrame(void)
 {
@@ -40,7 +39,7 @@ void R_SkyStartFrame(void)
 R_SetSkyBox
 ==================
 */
-int R_SetSkyBox(char *sky)
+int R_SetSkyBox(const char *sky)
 {
        int i;
        char name[1024];
@@ -115,8 +114,6 @@ void LoadSky_f (void)
        }
 }
 
-int skyboxindex[6] = {0, 1, 2, 0, 2, 3};
-
 static void R_SkyBox(void)
 {
        rmeshstate_t m;
@@ -136,7 +133,6 @@ static void R_SkyBox(void)
        m.tex[0] = R_GetTexture(skyboxside[3]); // front
        R_Mesh_State(&m);
 
-       memcpy(varray_element, skyboxindex, sizeof(int[6]));
        varray_color[0] = varray_color[4] = varray_color[8] = varray_color[12] = mesh_colorscale;
        varray_color[1] = varray_color[5] = varray_color[9] = varray_color[13] = mesh_colorscale;
        varray_color[2] = varray_color[6] = varray_color[10] = varray_color[14] = mesh_colorscale;
@@ -145,10 +141,9 @@ static void R_SkyBox(void)
        R_SkyBoxPolyVec(1, 1, 1,  1, -1, -1);
        R_SkyBoxPolyVec(2, 0, 1,  1,  1, -1);
        R_SkyBoxPolyVec(3, 0, 0,  1,  1,  1);
-       R_Mesh_Draw(4, 2);
+       R_Mesh_Draw(4, 2, polygonelements);
        m.tex[0] = R_GetTexture(skyboxside[1]); // back
        R_Mesh_State(&m);
-       memcpy(varray_element, skyboxindex, sizeof(int[6]));
        varray_color[0] = varray_color[4] = varray_color[8] = varray_color[12] = mesh_colorscale;
        varray_color[1] = varray_color[5] = varray_color[9] = varray_color[13] = mesh_colorscale;
        varray_color[2] = varray_color[6] = varray_color[10] = varray_color[14] = mesh_colorscale;
@@ -157,10 +152,9 @@ static void R_SkyBox(void)
        R_SkyBoxPolyVec(1, 1, 1, -1,  1, -1);
        R_SkyBoxPolyVec(2, 0, 1, -1, -1, -1);
        R_SkyBoxPolyVec(3, 0, 0, -1, -1,  1);
-       R_Mesh_Draw(4, 2);
+       R_Mesh_Draw(4, 2, polygonelements);
        m.tex[0] = R_GetTexture(skyboxside[0]); // right
        R_Mesh_State(&m);
-       memcpy(varray_element, skyboxindex, sizeof(int[6]));
        varray_color[0] = varray_color[4] = varray_color[8] = varray_color[12] = mesh_colorscale;
        varray_color[1] = varray_color[5] = varray_color[9] = varray_color[13] = mesh_colorscale;
        varray_color[2] = varray_color[6] = varray_color[10] = varray_color[14] = mesh_colorscale;
@@ -169,10 +163,9 @@ static void R_SkyBox(void)
        R_SkyBoxPolyVec(1, 1, 1,  1,  1, -1);
        R_SkyBoxPolyVec(2, 0, 1, -1,  1, -1);
        R_SkyBoxPolyVec(3, 0, 0, -1,  1,  1);
-       R_Mesh_Draw(4, 2);
+       R_Mesh_Draw(4, 2, polygonelements);
        m.tex[0] = R_GetTexture(skyboxside[2]); // left
        R_Mesh_State(&m);
-       memcpy(varray_element, skyboxindex, sizeof(int[6]));
        varray_color[0] = varray_color[4] = varray_color[8] = varray_color[12] = mesh_colorscale;
        varray_color[1] = varray_color[5] = varray_color[9] = varray_color[13] = mesh_colorscale;
        varray_color[2] = varray_color[6] = varray_color[10] = varray_color[14] = mesh_colorscale;
@@ -181,10 +174,9 @@ static void R_SkyBox(void)
        R_SkyBoxPolyVec(1, 1, 1, -1, -1, -1);
        R_SkyBoxPolyVec(2, 0, 1,  1, -1, -1);
        R_SkyBoxPolyVec(3, 0, 0,  1, -1,  1);
-       R_Mesh_Draw(4, 2);
+       R_Mesh_Draw(4, 2, polygonelements);
        m.tex[0] = R_GetTexture(skyboxside[4]); // up
        R_Mesh_State(&m);
-       memcpy(varray_element, skyboxindex, sizeof(int[6]));
        varray_color[0] = varray_color[4] = varray_color[8] = varray_color[12] = mesh_colorscale;
        varray_color[1] = varray_color[5] = varray_color[9] = varray_color[13] = mesh_colorscale;
        varray_color[2] = varray_color[6] = varray_color[10] = varray_color[14] = mesh_colorscale;
@@ -193,10 +185,9 @@ static void R_SkyBox(void)
        R_SkyBoxPolyVec(1, 1, 1,  1,  1,  1);
        R_SkyBoxPolyVec(2, 0, 1, -1,  1,  1);
        R_SkyBoxPolyVec(3, 0, 0, -1, -1,  1);
-       R_Mesh_Draw(4, 2);
+       R_Mesh_Draw(4, 2, polygonelements);
        m.tex[0] = R_GetTexture(skyboxside[5]); // down
        R_Mesh_State(&m);
-       memcpy(varray_element, skyboxindex, sizeof(int[6]));
        varray_color[0] = varray_color[4] = varray_color[8] = varray_color[12] = mesh_colorscale;
        varray_color[1] = varray_color[5] = varray_color[9] = varray_color[13] = mesh_colorscale;
        varray_color[2] = varray_color[6] = varray_color[10] = varray_color[14] = mesh_colorscale;
@@ -205,7 +196,7 @@ static void R_SkyBox(void)
        R_SkyBoxPolyVec(1, 1, 1,  1, -1, -1);
        R_SkyBoxPolyVec(2, 0, 1, -1, -1, -1);
        R_SkyBoxPolyVec(3, 0, 0, -1,  1, -1);
-       R_Mesh_Draw(4, 2);
+       R_Mesh_Draw(4, 2, polygonelements);
 }
 
 #define skygridx 32
@@ -295,7 +286,7 @@ static void R_SkySphere(void)
        numverts = skygridx1*skygridy1;
        numtriangles = skygridx*skygridy*2;
 
-       R_Mesh_ResizeCheck(numverts, numtriangles);
+       R_Mesh_ResizeCheck(numverts);
 
        memset(&m, 0, sizeof(m));
        m.blendfunc1 = GL_ONE;
@@ -305,18 +296,16 @@ static void R_SkySphere(void)
        m.tex[0] = R_GetTexture(solidskytexture);
        R_Mesh_State(&m);
 
-       memcpy(varray_element, skysphereindices, numtriangles * sizeof(int[3]));
        skyspherearrays(varray_vertex, varray_texcoord[0], varray_color, skysphere, speedscale, mesh_colorscale);
-       R_Mesh_Draw(numverts, numtriangles);
+       R_Mesh_Draw(numverts, numtriangles, skysphereindices);
 
        m.blendfunc1 = GL_SRC_ALPHA;
        m.blendfunc2 = GL_ONE_MINUS_SRC_ALPHA;
        m.tex[0] = R_GetTexture(alphaskytexture);
        R_Mesh_State(&m);
 
-       memcpy(varray_element, skysphereindices, numtriangles * sizeof(int[3]));
        skyspherearrays(varray_vertex, varray_texcoord[0], varray_color, skysphere, speedscale2, mesh_colorscale);
-       R_Mesh_Draw(numverts, numtriangles);
+       R_Mesh_Draw(numverts, numtriangles, skysphereindices);
 }
 
 void R_Sky(void)