[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [49998] trunk/blender/source/gameengine/ GamePlayer/ghost: Fix for [#32361] " Blenderplayer quad-buffer maximum 100Hz Fps" reported by HG1.
Mitchell Stokes
mogurijin at gmail.com
Sun Aug 19 01:46:37 CEST 2012
Revision: 49998
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=49998
Author: moguri
Date: 2012-08-18 23:46:37 +0000 (Sat, 18 Aug 2012)
Log Message:
-----------
Fix for [#32361] "Blenderplayer quad-buffer maximum 100Hz Fps" reported by HG1.
Allowing the Blenderplayer to break 100fps by making it less dependent on Ghost's messages.
Modified Paths:
--------------
trunk/blender/source/gameengine/GamePlayer/ghost/GPG_Application.cpp
trunk/blender/source/gameengine/GamePlayer/ghost/GPG_Application.h
trunk/blender/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp
Modified: trunk/blender/source/gameengine/GamePlayer/ghost/GPG_Application.cpp
===================================================================
--- trunk/blender/source/gameengine/GamePlayer/ghost/GPG_Application.cpp 2012-08-18 21:12:08 UTC (rev 49997)
+++ trunk/blender/source/gameengine/GamePlayer/ghost/GPG_Application.cpp 2012-08-18 23:46:37 UTC (rev 49998)
@@ -464,31 +464,34 @@
handled = false;
break;
- case GHOST_kEventWindowUpdate:
- {
- GHOST_IWindow* window = event->getWindow();
- if (!m_system->validWindow(window)) break;
- // Update the state of the game engine
- if (m_kxsystem && !m_exitRequested)
- {
- // Proceed to next frame
- window->activateDrawingContext();
+ // The player now runs as often as it can (repsecting vsync and fixedtime).
+ // This allows the player to break 100fps, but this code is being left here
+ // as reference. (see EngineNextFrame)
+ //case GHOST_kEventWindowUpdate:
+ // {
+ // GHOST_IWindow* window = event->getWindow();
+ // if (!m_system->validWindow(window)) break;
+ // // Update the state of the game engine
+ // if (m_kxsystem && !m_exitRequested)
+ // {
+ // // Proceed to next frame
+ // window->activateDrawingContext();
- // first check if we want to exit
- m_exitRequested = m_ketsjiengine->GetExitCode();
-
- // kick the engine
- bool renderFrame = m_ketsjiengine->NextFrame();
- if (renderFrame)
- {
- // render the frame
- m_ketsjiengine->Render();
- }
- }
- m_exitString = m_ketsjiengine->GetExitString();
- }
- break;
-
+ // // first check if we want to exit
+ // m_exitRequested = m_ketsjiengine->GetExitCode();
+ //
+ // // kick the engine
+ // bool renderFrame = m_ketsjiengine->NextFrame();
+ // if (renderFrame)
+ // {
+ // // render the frame
+ // m_ketsjiengine->Render();
+ // }
+ // }
+ // m_exitString = m_ketsjiengine->GetExitString();
+ // }
+ // break;
+ //
case GHOST_kEventWindowSize:
{
GHOST_IWindow* window = event->getWindow();
@@ -789,7 +792,29 @@
m_engineRunning = false;
}
+void GPG_Application::EngineNextFrame()
+{
+ // Update the state of the game engine
+ if (m_kxsystem && !m_exitRequested)
+ {
+ // Proceed to next frame
+ if (m_mainWindow)
+ m_mainWindow->activateDrawingContext();
+ // first check if we want to exit
+ m_exitRequested = m_ketsjiengine->GetExitCode();
+
+ // kick the engine
+ bool renderFrame = m_ketsjiengine->NextFrame();
+ if (renderFrame && m_mainWindow)
+ {
+ // render the frame
+ m_ketsjiengine->Render();
+ }
+ }
+ m_exitString = m_ketsjiengine->GetExitString();
+}
+
void GPG_Application::exitEngine()
{
// We only want to kill the engine if it has been initialized
Modified: trunk/blender/source/gameengine/GamePlayer/ghost/GPG_Application.h
===================================================================
--- trunk/blender/source/gameengine/GamePlayer/ghost/GPG_Application.h 2012-08-18 21:12:08 UTC (rev 49997)
+++ trunk/blender/source/gameengine/GamePlayer/ghost/GPG_Application.h 2012-08-18 23:46:37 UTC (rev 49998)
@@ -77,6 +77,7 @@
GlobalSettings* getGlobalSettings(void);
bool StartGameEngine(int stereoMode);
void StopGameEngine();
+ void EngineNextFrame();
protected:
bool handleWheel(GHOST_IEvent* event);
Modified: trunk/blender/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp
===================================================================
--- trunk/blender/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp 2012-08-18 21:12:08 UTC (rev 49997)
+++ trunk/blender/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp 2012-08-18 23:46:37 UTC (rev 49998)
@@ -970,6 +970,8 @@
{
system->processEvents(false);
system->dispatchEvents();
+ app.EngineNextFrame();
+
if ((exitcode = app.getExitRequested()))
{
run = false;
More information about the Bf-blender-cvs
mailing list