]> git.xonotic.org Git - xonotic/darkplaces.git/commitdiff
display loading plaque much sooner in startup process, and draw it to GL_FRONT buffer...
authorhavoc <havoc@d7cf8633-e32d-0410-b094-e92efae38249>
Tue, 12 Dec 2006 06:28:54 +0000 (06:28 +0000)
committerhavoc <havoc@d7cf8633-e32d-0410-b094-e92efae38249>
Tue, 12 Dec 2006 06:28:54 +0000 (06:28 +0000)
git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@6647 d7cf8633-e32d-0410-b094-e92efae38249

cl_screen.c
gl_backend.h
gl_draw.c
gl_rmain.c

index e806e45a1ab3f01ebb25284ba061279408009f4c..895f491a93a9befe9c055977b4d40f7cfd03bd52 100644 (file)
@@ -461,7 +461,7 @@ void SCR_BeginLoadingPlaque (void)
 
        Host_StartVideo();
        S_StopAllSounds();
-       SCR_UpdateLoadingScreen();
+       SCR_UpdateLoadingScreen(false);
 }
 
 //=============================================================================
@@ -1600,7 +1600,7 @@ void SCR_DrawScreen (void)
                R_TimeReport("meshfinish");
 }
 
-void SCR_UpdateLoadingScreen (void)
+void SCR_UpdateLoadingScreen (qboolean clear)
 {
        float x, y;
        cachepic_t *pic;
@@ -1614,8 +1614,12 @@ void SCR_UpdateLoadingScreen (void)
        //qglDisable(GL_SCISSOR_TEST);CHECKGLERROR
        //qglDepthMask(1);CHECKGLERROR
        qglColorMask(1,1,1,1);CHECKGLERROR
-       //qglClearColor(0,0,0,0);CHECKGLERROR
-       //qglClear(GL_COLOR_BUFFER_BIT);CHECKGLERROR
+       qglClearColor(0,0,0,0);CHECKGLERROR
+       // when starting up a new video mode, make sure the screen is cleared to black
+       if (clear)
+       {
+               qglClear(GL_COLOR_BUFFER_BIT);CHECKGLERROR
+       }
        //qglDisable(GL_CULL_FACE);CHECKGLERROR
        //R_ClearScreen();
        R_Textures_Frame();
@@ -1645,19 +1649,20 @@ void SCR_UpdateLoadingScreen (void)
        texcoord2f[6] = 0;texcoord2f[7] = 1;
        if (vid.stereobuffer)
        {
-               qglDrawBuffer(GL_BACK_LEFT);
+               qglDrawBuffer(GL_FRONT_LEFT);
                R_Mesh_Draw(0, 4, 2, polygonelements);
-               qglDrawBuffer(GL_BACK_RIGHT);
+               qglDrawBuffer(GL_FRONT_RIGHT);
                R_Mesh_Draw(0, 4, 2, polygonelements);
        }
        else
        {
-               qglDrawBuffer(GL_BACK);
+               qglDrawBuffer(GL_FRONT);
                R_Mesh_Draw(0, 4, 2, polygonelements);
        }
        R_Mesh_Finish();
        // refresh
-       VID_Finish(false);
+       // not necessary when rendering to GL_FRONT buffers
+       //VID_Finish(false);
 }
 
 void CL_UpdateScreen(void)
index 248c4efd9b809568ffc2f24f23f602118942e98c..0c66d2f1b3ba11216e55517ddaa7b2626ef65f94 100644 (file)
@@ -105,7 +105,7 @@ void R_ClearScreen(void);
 // invoke refresh of frame
 void SCR_UpdateScreen(void);
 // invoke refresh of loading plaque (nothing else seen)
-void SCR_UpdateLoadingScreen(void);
+void SCR_UpdateLoadingScreen(qboolean clear);
 
 #endif
 
index a1374cd3d0c0d3dbd2709059bd1a2aac275872c9..9184ace7fdb464c086a1b210b381f5fc7e3a2c80 100644 (file)
--- a/gl_draw.c
+++ b/gl_draw.c
@@ -511,6 +511,9 @@ static void gl_draw_start(void)
        char_texture = Draw_CachePic("gfx/conchars", true)->tex;
        for (i = 1;i <= NUMCROSSHAIRS;i++)
                r_crosshairs[i] = Draw_CachePic(va("gfx/crosshair%i", i), true);
+
+       // draw the loading screen so people have something to see in the newly opened window
+       SCR_UpdateLoadingScreen(true);
 }
 
 static void gl_draw_shutdown(void)
index c0a2f4466877411ed60d3e387e27b2d309fb60f7..ac4fbd087a9a366ccd7a16b7d75eb4b545e21e71 100644 (file)
@@ -1050,8 +1050,8 @@ void Render_Init(void)
 {
        gl_backend_init();
        R_Textures_Init();
-       GL_Main_Init();
        GL_Draw_Init();
+       GL_Main_Init();
        R_Shadow_Init();
        R_Sky_Init();
        GL_Surf_Init();