]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - gl_warp.c
Fix for image replacement in sprites, now the sprite extension is stripped before...
[xonotic/darkplaces.git] / gl_warp.c
index 791001830d4c5417e150f5cb2150a50e112a993f..9a1f70e7f335ee7de235e70cb82ac67fa1a5b916 100644 (file)
--- a/gl_warp.c
+++ b/gl_warp.c
@@ -176,17 +176,12 @@ void GL_SubdivideSurface (msurface_t *fa)
 
 
 
-extern qboolean lighthalf;
-
-#define        SKY_TEX         4000
+int skyboxside[6];
 
 char skyname[256];
 
 // LordHavoc: moved LoadTGA and LoadPCX to gl_draw.c
 
-extern int image_width, image_height;
-
-byte* loadimagepixels (char* filename, qboolean complain, int matchwidth, int matchheight);
 /*
 ==================
 R_LoadSkyBox
@@ -201,7 +196,6 @@ void R_LoadSkyBox (void)
 
        for (i=0 ; i<6 ; i++)
        {
-               glBindTexture(GL_TEXTURE_2D, SKY_TEX + i);
                sprintf (name, "env/%s%s", skyname, suf[i]);
                if (!(image_rgba = loadimagepixels(name, FALSE, 0, 0)))
                {
@@ -212,10 +206,8 @@ void R_LoadSkyBox (void)
                                continue;
                        }
                }
-               glTexImage2D (GL_TEXTURE_2D, 0, gl_solid_format, image_width, image_height, 0, GL_RGBA, GL_UNSIGNED_BYTE, image_rgba);
+               skyboxside[i] = GL_LoadTexture(va("skyboxside%d", i), image_width, image_height, image_rgba, false, false, 4);
                free (image_rgba);
-               glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
-               glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
        }
 }
 
@@ -246,7 +238,7 @@ void LoadSky_f (void)
        }
 }
 
-extern cvar_t r_skyboxsize;
+extern cvar_t r_farclip;
 
 #define R_SkyBoxPolyVec(s,t,x,y,z) \
        glTexCoord2f((s) * (254.0f/256.0f) + (1.0f/256.0f), (t) * (254.0f/256.0f) + (1.0f/256.0f));\
@@ -260,42 +252,42 @@ void R_SkyBox()
                glColor3f(0.5,0.5,0.5);
        else
                glColor3f(1,1,1);
-       glBindTexture(GL_TEXTURE_2D, SKY_TEX + 3); // front
+       glBindTexture(GL_TEXTURE_2D, skyboxside[3]); // front
        glBegin(GL_QUADS);
        R_SkyBoxPolyVec(1, 0,  1, -1,  1);
        R_SkyBoxPolyVec(1, 1,  1, -1, -1);
        R_SkyBoxPolyVec(0, 1,  1,  1, -1);
        R_SkyBoxPolyVec(0, 0,  1,  1,  1);
        glEnd();
-       glBindTexture(GL_TEXTURE_2D, SKY_TEX + 1); // back
+       glBindTexture(GL_TEXTURE_2D, skyboxside[1]); // back
        glBegin(GL_QUADS);
        R_SkyBoxPolyVec(1, 0, -1,  1,  1);
        R_SkyBoxPolyVec(1, 1, -1,  1, -1);
        R_SkyBoxPolyVec(0, 1, -1, -1, -1);
        R_SkyBoxPolyVec(0, 0, -1, -1,  1);
        glEnd();
-       glBindTexture(GL_TEXTURE_2D, SKY_TEX + 0); // right
+       glBindTexture(GL_TEXTURE_2D, skyboxside[0]); // right
        glBegin(GL_QUADS);
        R_SkyBoxPolyVec(1, 0,  1,  1,  1);
        R_SkyBoxPolyVec(1, 1,  1,  1, -1);
        R_SkyBoxPolyVec(0, 1, -1,  1, -1);
        R_SkyBoxPolyVec(0, 0, -1,  1,  1);
        glEnd();
-       glBindTexture(GL_TEXTURE_2D, SKY_TEX + 2); // left
+       glBindTexture(GL_TEXTURE_2D, skyboxside[2]); // left
        glBegin(GL_QUADS);
        R_SkyBoxPolyVec(1, 0, -1, -1,  1);
        R_SkyBoxPolyVec(1, 1, -1, -1, -1);
        R_SkyBoxPolyVec(0, 1,  1, -1, -1);
        R_SkyBoxPolyVec(0, 0,  1, -1,  1);
        glEnd();
-       glBindTexture(GL_TEXTURE_2D, SKY_TEX + 4); // up
+       glBindTexture(GL_TEXTURE_2D, skyboxside[4]); // up
        glBegin(GL_QUADS);
        R_SkyBoxPolyVec(1, 0,  1, -1,  1);
        R_SkyBoxPolyVec(1, 1,  1,  1,  1);
        R_SkyBoxPolyVec(0, 1, -1,  1,  1);
        R_SkyBoxPolyVec(0, 0, -1, -1,  1);
        glEnd();
-       glBindTexture(GL_TEXTURE_2D, SKY_TEX + 5); // down
+       glBindTexture(GL_TEXTURE_2D, skyboxside[5]); // down
        glBegin(GL_QUADS);
        R_SkyBoxPolyVec(1, 0,  1,  1, -1);
        R_SkyBoxPolyVec(1, 1,  1, -1, -1);
@@ -408,6 +400,8 @@ void R_SkyDome()
 
 void R_Sky()
 {
+       if (!r_render.value)
+               return;
        if (!skyname[0])
                return;
        glDisable(GL_DEPTH_TEST);
@@ -430,18 +424,13 @@ R_InitSky
 A sky texture is 256*128, with the right side being a masked overlay
 ==============
 */
-// LordHavoc: changed this for GLQuake
-void R_InitSky (byte *src, int bytesperpixel) //texture_t *mt)
+void R_InitSky (byte *src, int bytesperpixel)
 {
        int                     i, j, p;
-//     byte            *src;
        unsigned        trans[128*128];
        unsigned        transpix;
        int                     r, g, b;
        unsigned        *rgba;
-       extern  int                     skytexturenum;
-
-//     src = (byte *)mt + mt->offsets[0];
 
        if (bytesperpixel == 4)
        {
@@ -471,16 +460,7 @@ void R_InitSky (byte *src, int bytesperpixel) //texture_t *mt)
                ((byte *)&transpix)[3] = 0;
        }
 
-       if (!solidskytexture)
-               solidskytexture = texture_extension_number++;
-       if (!isDedicated)
-       {
-               glBindTexture(GL_TEXTURE_2D, solidskytexture );
-               glTexImage2D (GL_TEXTURE_2D, 0, gl_solid_format, 128, 128, 0, GL_RGBA, GL_UNSIGNED_BYTE, trans);
-               glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
-               glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
-       }
-
+       solidskytexture = GL_LoadTexture ("sky_solidtexture", 128, 128, (byte *) trans, false, false, 4);
 
        if (bytesperpixel == 4)
        {
@@ -501,14 +481,6 @@ void R_InitSky (byte *src, int bytesperpixel) //texture_t *mt)
                        }
        }
 
-       if (!alphaskytexture)
-               alphaskytexture = texture_extension_number++;
-       if (!isDedicated)
-       {
-               glBindTexture(GL_TEXTURE_2D, alphaskytexture);
-               glTexImage2D (GL_TEXTURE_2D, 0, gl_alpha_format, 128, 128, 0, GL_RGBA, GL_UNSIGNED_BYTE, trans);
-               glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
-               glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
-       }
+       alphaskytexture = GL_LoadTexture ("sky_alphatexture", 128, 128, (byte *) trans, false, true, 4);
 }