浏览代码

fixed android exit/restart

[email protected] 7 年之前
父节点
当前提交
34f576a24e
共有 3 个文件被更改,包括 12 次插入5 次删除
  1. 8 3
      oxygine/src/oxygine/STDRenderer.cpp
  2. 2 2
      oxygine/src/oxygine/STDRenderer.h
  3. 2 0
      oxygine/src/oxygine/core/oxygine.cpp

+ 8 - 3
oxygine/src/oxygine/STDRenderer.cpp

@@ -33,16 +33,21 @@ namespace oxygine
 
     RenderStateCache& rsCache()
     {
-        static RenderStateCache r(IVideoDriver::instance);
+        static RenderStateCache r;
         return r;
     }
 
-    RenderStateCache::RenderStateCache(IVideoDriver* d) : _driver(d), _blend(blend_disabled), _program(0)
+    RenderStateCache::RenderStateCache(): _blend(blend_disabled), _program(0)
     {
         reset();
     }
 
-    void RenderStateCache::reset()
+	void RenderStateCache::setDriver(IVideoDriver *d)
+	{
+		_driver = d;
+	}
+
+	void RenderStateCache::reset()
     {
         resetTextures();
 

+ 2 - 2
oxygine/src/oxygine/STDRenderer.h

@@ -8,9 +8,9 @@ namespace oxygine
     class RenderStateCache
     {
     public:
-        RenderStateCache(IVideoDriver* d);
-
+        RenderStateCache();
 
+		void setDriver(IVideoDriver *d);
 
         const spNativeTexture& getTexture(int sampler) { return _textures[sampler]; }
 

+ 2 - 0
oxygine/src/oxygine/core/oxygine.cpp

@@ -417,6 +417,7 @@ namespace oxygine
 
             CHECKGL();
 
+			rsCache().setDriver(IVideoDriver::instance);
 
 
             STDRenderer::initialize();
@@ -780,6 +781,7 @@ namespace oxygine
 #endif
 
             rsCache().reset();
+			rsCache().setDriver(0);
             _threadMessages.clear();
             _uiMessages.clear();