]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - cl_screen.c
changed sbar stats (Monsters/Secrets/Time/map title) around a bit, inspired by a...
[xonotic/darkplaces.git] / cl_screen.c
index e806e45a1ab3f01ebb25284ba061279408009f4c..2da15b322b93597437df166f6babc8661d55826b 100644 (file)
@@ -316,8 +316,22 @@ static int SCR_DrawQWDownload(int offset)
        float size = 8;
        char temp[256];
        if (!cls.qw_downloadname[0])
+       {
+               cls.qw_downloadspeedrate = 0;
+               cls.qw_downloadspeedtime = realtime;
+               cls.qw_downloadspeedcount = 0;
                return 0;
-       dpsnprintf(temp, sizeof(temp), "Downloading %s ...  %3i%%\n", cls.qw_downloadname, cls.qw_downloadpercent);
+       }
+       if (realtime >= cls.qw_downloadspeedtime + 1)
+       {
+               cls.qw_downloadspeedrate = cls.qw_downloadspeedcount;
+               cls.qw_downloadspeedtime = realtime;
+               cls.qw_downloadspeedcount = 0;
+       }
+       if (cls.protocol == PROTOCOL_QUAKEWORLD)
+               dpsnprintf(temp, sizeof(temp), "Downloading %s %3i%% (%i) at %i bytes/s\n", cls.qw_downloadname, cls.qw_downloadpercent, cls.qw_downloadmemorycursize, cls.qw_downloadspeedrate);
+       else
+               dpsnprintf(temp, sizeof(temp), "Downloading %s %3i%% (%i/%i) at %i bytes/s\n", cls.qw_downloadname, cls.qw_downloadpercent, cls.qw_downloadmemorycursize, cls.qw_downloadmemorymaxsize, cls.qw_downloadspeedrate);
        len = (int)strlen(temp);
        x = (vid_conwidth.integer - len*size) / 2;
        y = vid_conheight.integer - size - offset;
@@ -461,7 +475,7 @@ void SCR_BeginLoadingPlaque (void)
 
        Host_StartVideo();
        S_StopAllSounds();
-       SCR_UpdateLoadingScreen();
+       SCR_UpdateLoadingScreen(false);
 }
 
 //=============================================================================
@@ -1600,7 +1614,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 +1628,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 +1663,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)