]> de.git.xonotic.org Git - xonotic/darkplaces.git/commitdiff
added support for dpsoftrast synchronization for fpsscaling
authorhavoc <havoc@d7cf8633-e32d-0410-b094-e92efae38249>
Fri, 1 Apr 2011 08:11:16 +0000 (08:11 +0000)
committerhavoc <havoc@d7cf8633-e32d-0410-b094-e92efae38249>
Fri, 1 Apr 2011 08:11:16 +0000 (08:11 +0000)
git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@10999 d7cf8633-e32d-0410-b094-e92efae38249

cl_screen.c

index bedbc92f8805294de05e79fe4dcc6e976a39156a..476f6d577c1bff53cbbb23194f7172510e79d07b 100644 (file)
@@ -9,6 +9,7 @@
 #include "csprogs.h"
 #include "cap_avi.h"
 #include "cap_ogg.h"
+#include "dpsoftrast.h"
 
 // we have to include snd_main.h here only to get access to snd_renderbuffer->format.speed when writing the AVI headers
 #include "snd_main.h"
@@ -2335,8 +2336,30 @@ void CL_UpdateScreen(void)
                }
        }
 
-       if (r_viewscale_fpsscaling.integer && qglFinish)
-               qglFinish();
+       if (r_viewscale_fpsscaling.integer)
+       {
+               switch(vid.renderpath)
+               {
+               case RENDERPATH_GL11:
+               case RENDERPATH_GL13:
+               case RENDERPATH_GL20:
+               case RENDERPATH_GLES2:
+                       qglFinish();
+                       break;
+               case RENDERPATH_D3D9:
+                       //Con_DPrintf("FIXME D3D9 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+                       break;
+               case RENDERPATH_D3D10:
+                       Con_DPrintf("FIXME D3D10 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+                       break;
+               case RENDERPATH_D3D11:
+                       Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+                       break;
+               case RENDERPATH_SOFT:
+                       DPSOFTRAST_Flush();
+                       break;
+               }
+       }
        drawscreenstart = Sys_DoubleTime();
        if (R_Stereo_Active())
        {
@@ -2370,8 +2393,30 @@ void CL_UpdateScreen(void)
        }
        else
                SCR_DrawScreen();
-       if (r_viewscale_fpsscaling.integer && qglFinish)
-               qglFinish();
+       if (r_viewscale_fpsscaling.integer)
+       {
+               switch(vid.renderpath)
+               {
+               case RENDERPATH_GL11:
+               case RENDERPATH_GL13:
+               case RENDERPATH_GL20:
+               case RENDERPATH_GLES2:
+                       qglFinish();
+                       break;
+               case RENDERPATH_D3D9:
+                       //Con_DPrintf("FIXME D3D9 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+                       break;
+               case RENDERPATH_D3D10:
+                       Con_DPrintf("FIXME D3D10 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+                       break;
+               case RENDERPATH_D3D11:
+                       Con_DPrintf("FIXME D3D11 %s:%i %s\n", __FILE__, __LINE__, __FUNCTION__);
+                       break;
+               case RENDERPATH_SOFT:
+                       DPSOFTRAST_Flush();
+                       break;
+               }
+       }
        r_refdef.lastdrawscreentime = Sys_DoubleTime() - drawscreenstart;
 
        SCR_CaptureVideo();