]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - cl_screen.c
use volatile on icolor and fcolor pointers in GL_ConvertColorsFloatToByte to avoid...
[xonotic/darkplaces.git] / cl_screen.c
index 2278dc35901ef868d7f9e8f57f4fd661bf5692f8..212c356ca867691d9c8ee5c0b38b7f2ba742ffb8 100644 (file)
@@ -10,6 +10,7 @@ cvar_t scr_showturtle = {CVAR_SAVE, "showturtle","0"};
 cvar_t scr_showpause = {CVAR_SAVE, "showpause","1"};
 cvar_t scr_printspeed = {0, "scr_printspeed","8"};
 cvar_t scr_2dresolution = {CVAR_SAVE, "scr_2dresolution", "1"};
+cvar_t cl_avidemo = {0, "cl_avidemo", "0"};
 
 qboolean       scr_initialized;                // ready to draw
 
@@ -19,8 +20,8 @@ float         scr_conlines;           // lines of console to display
 int                    clearconsole;
 int                    clearnotify;
 
-qboolean       scr_disabled_for_loading;
-qboolean       scr_drawloading;
+//qboolean     scr_disabled_for_loading;
+qboolean       scr_drawloading = false;
 //float                scr_disabled_time;
 
 static qbyte menuplyr_pixels[4096];
@@ -227,8 +228,8 @@ void SCR_DrawLoading (void)
 {
        cachepic_t      *pic;
 
-       if (!scr_drawloading)
-               return;
+       //if (!scr_drawloading)
+       //      return;
 
        pic = Draw_CachePic ("gfx/loading.lmp");
        DrawQ_Pic ((vid.conwidth - pic->width)/2, (vid.conheight - pic->height)/2, "gfx/loading.lmp", 0, 0, 1, 1, 1, 1, 0);
@@ -320,8 +321,9 @@ void SCR_BeginLoadingPlaque (void)
 
        scr_drawloading = true;
        CL_UpdateScreen ();
+       scr_drawloading = true;
        CL_UpdateScreen ();
-       scr_drawloading = false;
+       //scr_drawloading = false;
 
 //     scr_disabled_for_loading = true;
 //     scr_disabled_time = realtime;
@@ -335,12 +337,14 @@ SCR_EndLoadingPlaque
 */
 void SCR_EndLoadingPlaque (void)
 {
+       /*
        if (!scr_drawloading)
                return;
 
 //     scr_disabled_for_loading = false;
        scr_drawloading = false;
        Con_ClearNotify ();
+       */
 }
 
 //=============================================================================
@@ -522,7 +526,8 @@ void CL_Screen_Init(void)
        Cvar_RegisterVariable (&scr_showpause);
        Cvar_RegisterVariable (&scr_centertime);
        Cvar_RegisterVariable (&scr_printspeed);
-       Cvar_RegisterVariable(&scr_2dresolution);
+       Cvar_RegisterVariable (&scr_2dresolution);
+       Cvar_RegisterVariable (&cl_avidemo);
 
        Cmd_AddCommand ("sizeup",SCR_SizeUp_f);
        Cmd_AddCommand ("sizedown",SCR_SizeDown_f);
@@ -793,8 +798,26 @@ void SCR_ScreenShot_f (void)
                return;
        }
 
-       SCR_ScreenShot(filename, vid.realx, vid.realy, vid.realwidth, vid.realheight);
-       Con_Printf ("Wrote %s\n", filename);
+       if (SCR_ScreenShot(filename, vid.realx, vid.realy, vid.realwidth, vid.realheight))
+               Con_Printf ("Wrote %s\n", filename);
+       else
+               Con_Printf ("unable to write %s\n", filename);
+}
+
+static int cl_avidemo_frame = 0;
+
+void SCR_CaptureAVIDemo(void)
+{
+       char filename[32];
+       sprintf(filename, "dpavi%06d.tga", cl_avidemo_frame);
+       if (SCR_ScreenShot(filename, vid.realx, vid.realy, vid.realwidth, vid.realheight))
+               cl_avidemo_frame++;
+       else
+       {
+               Cvar_SetValueQuick(&cl_avidemo, 0);
+               Con_Printf("avi saving failed on frame %i, out of disk space?  stopping avi demo catpure.\n", cl_avidemo_frame);
+               cl_avidemo_frame = 0;
+       }
 }
 
 /*
@@ -990,6 +1013,10 @@ void CL_UpdateScreen(void)
        if (!scr_initialized || !con_initialized)
                return;                         // not initialized yet
 
+       if (cl_avidemo.integer)
+               SCR_CaptureAVIDemo();
+       else
+               cl_avidemo_frame = 0;
 
        R_TimeReport("other");
 
@@ -1002,15 +1029,6 @@ void CL_UpdateScreen(void)
 
        R_TimeReport("setup");
 
-       if (scr_drawloading)
-       {
-               scr_con_current = vid.conheight;
-               DrawQ_Clear();
-               SCR_DrawLoading();
-               SCR_UpdateScreen();
-               return;
-       }
-
        SCR_DrawRam();
        SCR_DrawNet();
        SCR_DrawTurtle();
@@ -1023,13 +1041,11 @@ void CL_UpdateScreen(void)
 
        ui_draw();
 
-       /*
        if (scr_drawloading)
        {
+               scr_drawloading = false;
                SCR_DrawLoading();
-               if (
        }
-       */
 
        R_TimeReport("2d");