Răsfoiți Sursa

Added new Render/Update separation to SDL Core

Ivan Safrin 12 ani în urmă
părinte
comite
e62e6a5a7e

+ 1 - 0
Core/Contents/Include/PolySDLCore.h

@@ -49,6 +49,7 @@ namespace Polycode {
 		void enableMouse(bool newval);
 		unsigned int getTicks();
 		bool Update();
+		void Render();
 		void setVideoMode(int xRes, int yRes, bool fullScreen, bool vSync, int aaLevel, int anisotropyLevel);
 		void createThread(Threaded *target);
 		std::vector<Rectangle> getVideoModes();

+ 8 - 4
Core/Contents/Source/PolySDLCore.cpp

@@ -245,14 +245,19 @@ bool SDLCore::checkSpecialKeyEvents(PolyKEY key) {
 	return false;
 }
 
+void SDLCore::Render() {
+	renderer->BeginRender();
+	services->Render();
+	renderer->EndRender();
+	SDL_GL_SwapBuffers();
+}
+
 bool SDLCore::Update() {
 	if(!running)
 		return false;
+	doSleep();	
 	
-	renderer->BeginRender();
 	updateCore();
-	renderer->EndRender();
-	SDL_GL_SwapBuffers();
 	
 	SDL_Event event;
 	while ( SDL_PollEvent(&event) ) {
@@ -335,7 +340,6 @@ bool SDLCore::Update() {
 					break;
 			}
 		}
-	doSleep();	
 	return running;
 }