diff options
author | Mitchell Stokes <mogurijin@gmail.com> | 2013-07-30 02:31:32 +0400 |
---|---|---|
committer | Mitchell Stokes <mogurijin@gmail.com> | 2013-07-30 02:31:32 +0400 |
commit | 29f8dfd37a2fbf4190e551bef0b04ff1ae1fd7b6 (patch) | |
tree | af50623534adee419cecbbf6e0d8dd789409d266 /source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp | |
parent | 2840edba840382f0957c4963c3613c7836ac5979 (diff) |
BGE: Adding vsync control. Users can enable vsync, disable vsync, or use adaptive vsync via UI options in the render properties, or by using the new Python method bge.render.setVsync(). Win32 and X11 support are done via EXT_swap_control. Support for using EXT_swap_control on OS X still needs to be added to Ghost.
Diffstat (limited to 'source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp')
-rw-r--r-- | source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp b/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp index bb4c3fd2cbc..5703527eae0 100644 --- a/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp +++ b/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp @@ -284,6 +284,14 @@ extern "C" void StartKetsjiShell(struct bContext *C, struct ARegion *ar, rcti *c canvas->SetMouseState(RAS_ICanvas::MOUSE_NORMAL); else canvas->SetMouseState(RAS_ICanvas::MOUSE_INVISIBLE); + + // Setup vsync + int previous_vsync = canvas->GetSwapInterval(); + if (startscene->gm.vsync == VSYNC_ADAPTIVE) + canvas->SetSwapInterval(-1); + else + canvas->SetSwapInterval(startscene->gm.vsync); // VSYNC_OFF == 0, VSYNC_ON == 1, so this works + RAS_IRenderTools* rendertools = new KX_BlenderRenderTools(); RAS_IRasterizer* rasterizer = NULL; //Don't use displaylists with VBOs @@ -663,6 +671,7 @@ extern "C" void StartKetsjiShell(struct bContext *C, struct ARegion *ar, rcti *c } if (canvas) { + canvas->SetSwapInterval(previous_vsync); // Set the swap interval back delete canvas; canvas = NULL; } |