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)
{
R_SetSkyBox
==================
*/
-int R_SetSkyBox(char *sky)
+int R_SetSkyBox(const char *sky)
{
int i;
char name[1024];
}
}
-int skyboxindex[6] = {0, 1, 2, 0, 2, 3};
-
static void R_SkyBox(void)
{
rmeshstate_t m;
memset(&m, 0, sizeof(m));
m.blendfunc1 = GL_ONE;
m.blendfunc2 = GL_ZERO;
- m.wantoverbright = false;
m.depthdisable = true; // don't modify or read zbuffer
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;
- varray_color[3] = varray_color[7] = varray_color[11] = varray_color[15] = 1;
+ GL_Color(r_colorscale, r_colorscale, r_colorscale, 1);
+
R_SkyBoxPolyVec(0, 1, 0, 1, -1, 1);
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;
- varray_color[3] = varray_color[7] = varray_color[11] = varray_color[15] = 1;
R_SkyBoxPolyVec(0, 1, 0, -1, 1, 1);
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;
- varray_color[3] = varray_color[7] = varray_color[11] = varray_color[15] = 1;
R_SkyBoxPolyVec(0, 1, 0, 1, 1, 1);
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;
- varray_color[3] = varray_color[7] = varray_color[11] = varray_color[15] = 1;
R_SkyBoxPolyVec(0, 1, 0, -1, -1, 1);
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;
- varray_color[3] = varray_color[7] = varray_color[11] = varray_color[15] = 1;
R_SkyBoxPolyVec(0, 1, 0, 1, -1, 1);
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;
- varray_color[3] = varray_color[7] = varray_color[11] = varray_color[15] = 1;
R_SkyBoxPolyVec(0, 1, 0, 1, 1, -1);
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
}
}
-static void skyspherearrays(float *v, float *t, float *c, float *source, float s, float colorscale)
+static void skyspherearrays(float *v, float *t, float *source, float s)
{
int i;
- for (i = 0;i < (skygridx1*skygridy1);i++, c += 4, t += 2, v += 4, source += 5)
+ for (i = 0;i < (skygridx1*skygridy1);i++, t += 2, v += 4, source += 5)
{
- c[0] = colorscale;
- c[1] = colorscale;
- c[2] = colorscale;
- c[3] = 1;
t[0] = source[0] + s;
t[1] = source[1] + s;
v[0] = source[2];
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;
m.blendfunc2 = GL_ZERO;
- m.wantoverbright = false;
m.depthdisable = true; // don't modify or read zbuffer
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);
+ GL_Color(r_colorscale, r_colorscale, r_colorscale, 1);
+
+ skyspherearrays(varray_vertex, varray_texcoord[0], skysphere, speedscale);
+ 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);
+ skyspherearrays(varray_vertex, varray_texcoord[0], skysphere, speedscale2);
+ R_Mesh_Draw(numverts, numtriangles, skysphereindices);
}
void R_Sky(void)
// this modifies the depth buffer so we have to clear it afterward
//R_SkyRoom();
// clear the depthbuffer that was used while rendering the skyroom
- //R_Mesh_ClearDepth();
+ //qglClear(GL_DEPTH_BUFFER_BIT);
}
*/
}