Ver Fonte

Speed optimizations

Ivan Safrin há 10 anos atrás
pai
commit
049fcad267

+ 3 - 1
include/polycode/core/PolyCoreServices.h

@@ -56,6 +56,8 @@ namespace Polycode {
 			static void setInstance(CoreServices *_instance);
 			static CoreMutex *getRenderMutex();
 			
+            static void createInstance();
+        
 			void setRenderer(Renderer *renderer);
 
 			/**
@@ -149,7 +151,7 @@ namespace Polycode {
 			*/														
 						
 			Config *getConfig();
-			
+
 					
 			~CoreServices();		
 			

+ 2 - 0
src/core/PolyCore.cpp

@@ -54,6 +54,8 @@ namespace Polycode {
 	}
 	
 	Core::Core(int _xRes, int _yRes, bool fullScreen, bool vSync, int aaLevel, int anisotropyLevel, int frameRate, int monitorIndex) : EventDispatcher() {
+        
+        CoreServices::createInstance();
 	
         int _hz;
 		getScreenInfo(&defaultScreenWidth, &defaultScreenHeight, &_hz);

+ 6 - 21
src/core/PolyCoreServices.cpp

@@ -58,28 +58,13 @@ void CoreServices::setInstance(CoreServices *_instance) {
 	Logger::log("Overriding core instance to %d...\n", _instance);
 }
 
-CoreServices* CoreServices::getInstance() {
-
-	if(overrideInstance) {
-		return overrideInstance;
-	}
+void CoreServices::createInstance() {
+    overrideInstance = new CoreServices;
+    Logger::log("Creating new core services instance...\n");
+}
 
-//#ifdef _WINDOWS
-		overrideInstance = new CoreServices;
-		Logger::log("Creating new core services instance...\n");
-		return overrideInstance;
-//#else
-//	long threadID = getThreadID(); 
-//	CoreServices *instance;
-//	if(instanceMap.find(threadID) == instanceMap.end()) {
-//		Logger::log("Creating new core services instance...\n");
-//		instance = new CoreServices;
-//		instanceMap[threadID] = instance;
-//	} else {
-//		instance = instanceMap[threadID];
-//	}
-//	return instance;
-//#endif
+CoreServices* CoreServices::getInstance() {
+    return overrideInstance;
 }
 
 MaterialManager *CoreServices::getMaterialManager() {

+ 2 - 2
src/core/PolyOpenGLGraphicsInterface.cpp

@@ -227,8 +227,8 @@ void OpenGLGraphicsInterface::beginDrawCall() {
 }
 
 void OpenGLGraphicsInterface::endDrawCall() {
-    glUseProgram(0);
-    currentShaderID = -1;
+//    glUseProgram(0);
+//    currentShaderID = -1;
 }
 
 void OpenGLGraphicsInterface::useShader(Shader *shader) {