]> git.lizzy.rs Git - irrlicht.git/commitdiff
Add missing parameters in CEAGLManager::activateContext.
authorcutealien <cutealien@dfc29bdd-3216-0410-991c-e03cc46cb475>
Sat, 13 Jun 2020 14:49:38 +0000 (14:49 +0000)
committercutealien <cutealien@dfc29bdd-3216-0410-991c-e03cc46cb475>
Sat, 13 Jun 2020 14:49:38 +0000 (14:49 +0000)
Thanks to Maksym Hamarnyk for the patch.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/branches/ogl-es@6118 dfc29bdd-3216-0410-991c-e03cc46cb475

source/Irrlicht/CEAGLManager.h
source/Irrlicht/CEAGLManager.mm

index 7b670e162100c779cf436691cef38870055a5ecf..c1f88455c8320637398a20ea83246239f1fbeb92 100644 (file)
@@ -54,7 +54,7 @@ namespace video
 \r
                const SExposedVideoData& getContext() const;\r
 \r
-               bool activateContext(const SExposedVideoData& videoData);\r
+               bool activateContext(const SExposedVideoData& videoData, bool restorePrimaryOnZero);\r
 \r
                // Swap buffers.\r
                bool swapBuffers();\r
@@ -62,22 +62,22 @@ namespace video
        private:\r
                SIrrlichtCreationParameters Params;\r
                SExposedVideoData Data;\r
-               \r
+\r
                bool Configured;\r
-        \r
+\r
         void* DataStorage;\r
-               \r
+\r
                struct SFrameBuffer\r
                {\r
                        SFrameBuffer() : BufferID(0), ColorBuffer(0), DepthBuffer(0)\r
                        {\r
                        }\r
-                       \r
+\r
                        u32 BufferID;\r
                        u32 ColorBuffer;\r
                        u32 DepthBuffer;\r
                };\r
-               \r
+\r
                SFrameBuffer FrameBuffer;\r
        };\r
 }\r
index f9d53e50dd1848885bd22443cd455504f85c8245..931f92a4c5ffa89e03ef03234f1d0b8b2e75870a 100644 (file)
@@ -24,7 +24,7 @@ namespace irr
 {\r
 namespace video\r
 {\r
-    \r
+\r
 struct SEAGLManagerDataStorage\r
 {\r
     SEAGLManagerDataStorage() : Layer(0), Context(0)\r
@@ -40,7 +40,7 @@ CEAGLManager::CEAGLManager() : IContextManager(), Configured(false), DataStorage
 #ifdef _DEBUG\r
        setDebugName("CEAGLManager");\r
 #endif\r
-       \r
+\r
        DataStorage = new SEAGLManagerDataStorage();\r
 }\r
 \r
@@ -49,7 +49,7 @@ CEAGLManager::~CEAGLManager()
     destroyContext();\r
     destroySurface();\r
     terminate();\r
-       \r
+\r
        delete static_cast<SEAGLManagerDataStorage*>(DataStorage);\r
 }\r
 \r
@@ -62,7 +62,7 @@ bool CEAGLManager::initialize(const SIrrlichtCreationParameters& params, const S
 \r
        Params = params;\r
        Data = data;\r
-       \r
+\r
        UIView* view = (__bridge UIView*)data.OpenGLiOS.View;\r
 \r
        if (view == nil || ![[view layer] isKindOfClass:[CAEAGLLayer class]])\r
@@ -70,7 +70,7 @@ bool CEAGLManager::initialize(const SIrrlichtCreationParameters& params, const S
                os::Printer::log("Could not get EAGL display.");\r
                return false;\r
        }\r
-       \r
+\r
        dataStorage->Layer = (CAEAGLLayer*)[view layer];\r
 \r
     return true;\r
@@ -79,11 +79,11 @@ bool CEAGLManager::initialize(const SIrrlichtCreationParameters& params, const S
 void CEAGLManager::terminate()\r
 {\r
        SEAGLManagerDataStorage* dataStorage = static_cast<SEAGLManagerDataStorage*>(DataStorage);\r
-       \r
+\r
        [EAGLContext setCurrentContext:0];\r
-       \r
+\r
        destroySurface();\r
-       \r
+\r
     if (dataStorage->Layer != nil)\r
         dataStorage->Layer = 0;\r
 }\r
@@ -92,13 +92,13 @@ bool CEAGLManager::generateSurface()
 {\r
        SEAGLManagerDataStorage* dataStorage = static_cast<SEAGLManagerDataStorage*>(DataStorage);\r
        CAEAGLLayer* layer = dataStorage->Layer;\r
-       \r
+\r
     if (layer == nil)\r
         return false;\r
-       \r
+\r
        if (Configured)\r
                return true;\r
-       \r
+\r
        NSDictionary* attribs = [NSDictionary dictionaryWithObjectsAndKeys:\r
                [NSNumber numberWithBool:NO],\r
                kEAGLDrawablePropertyRetainedBacking,\r
@@ -108,7 +108,7 @@ bool CEAGLManager::generateSurface()
 \r
        [layer setOpaque:(Params.WithAlphaChannel) ? YES : NO];\r
        [layer setDrawableProperties:attribs];\r
-       \r
+\r
        Configured = true;\r
 \r
     return true;\r
@@ -118,13 +118,13 @@ void CEAGLManager::destroySurface()
 {\r
        SEAGLManagerDataStorage* dataStorage = static_cast<SEAGLManagerDataStorage*>(DataStorage);\r
        CAEAGLLayer* layer = dataStorage->Layer;\r
-       \r
+\r
        if (layer == nil)\r
                return;\r
-       \r
+\r
        [layer setOpaque:NO];\r
        [layer setDrawableProperties:nil];\r
-       \r
+\r
        Configured = false;\r
 }\r
 \r
@@ -156,7 +156,7 @@ bool CEAGLManager::generateContext()
                os::Printer::log("Could not create EAGL context.", ELL_ERROR);\r
                return false;\r
        }\r
-       \r
+\r
        Data.OpenGLiOS.Context = (__bridge void*)dataStorage->Context;\r
 \r
        os::Printer::log("EAGL context created with OpenGLESVersion: ", core::stringc(static_cast<int>(OpenGLESVersion)), ELL_DEBUG);\r
@@ -167,7 +167,7 @@ bool CEAGLManager::generateContext()
 void CEAGLManager::destroyContext()\r
 {\r
        SEAGLManagerDataStorage* dataStorage = static_cast<SEAGLManagerDataStorage*>(DataStorage);\r
-       \r
+\r
        [dataStorage->Context renderbufferStorage:GL_RENDERBUFFER_OES fromDrawable:nil];\r
 \r
        if (FrameBuffer.BufferID != 0)\r
@@ -175,13 +175,13 @@ void CEAGLManager::destroyContext()
                glDeleteFramebuffersOES(1, &FrameBuffer.BufferID);\r
                FrameBuffer.BufferID = 0;\r
        }\r
-       \r
+\r
        if (FrameBuffer.ColorBuffer != 0)\r
        {\r
                glDeleteRenderbuffersOES(1, &FrameBuffer.ColorBuffer);\r
                FrameBuffer.ColorBuffer = 0;\r
        }\r
-       \r
+\r
        if (FrameBuffer.DepthBuffer != 0)\r
        {\r
                glDeleteRenderbuffersOES(1, &FrameBuffer.DepthBuffer);\r
@@ -189,25 +189,25 @@ void CEAGLManager::destroyContext()
        }\r
 \r
        [EAGLContext setCurrentContext:0];\r
-       \r
+\r
     if (dataStorage->Context != nil)\r
         dataStorage->Context = 0;\r
-       \r
+\r
        Data.OpenGLiOS.Context = 0;\r
 }\r
 \r
-bool CEAGLManager::activateContext(const SExposedVideoData& videoData)\r
+bool CEAGLManager::activateContext(const SExposedVideoData& videoData, bool restorePrimaryOnZero)\r
 {\r
        SEAGLManagerDataStorage* dataStorage = static_cast<SEAGLManagerDataStorage*>(DataStorage);\r
        EAGLContext* context = dataStorage->Context;\r
-       \r
+\r
        bool status = false;\r
-       \r
+\r
        if (context != nil)\r
        {\r
                status = ([EAGLContext currentContext] == context || [EAGLContext setCurrentContext:context]);\r
        }\r
-       \r
+\r
        if (status)\r
        {\r
                if (FrameBuffer.ColorBuffer == 0)\r
@@ -216,7 +216,7 @@ bool CEAGLManager::activateContext(const SExposedVideoData& videoData)
                        glBindRenderbufferOES(GL_RENDERBUFFER_OES, FrameBuffer.ColorBuffer);\r
                        [context renderbufferStorage:GL_RENDERBUFFER_OES fromDrawable:dataStorage->Layer];\r
                }\r
-               \r
+\r
                if (FrameBuffer.DepthBuffer == 0)\r
                {\r
                        GLenum depth = (Params.ZBufferBits >= 24) ? GL_DEPTH_COMPONENT24_OES : GL_DEPTH_COMPONENT16_OES;\r
@@ -225,7 +225,7 @@ bool CEAGLManager::activateContext(const SExposedVideoData& videoData)
                        glBindRenderbufferOES(GL_RENDERBUFFER_OES, FrameBuffer.DepthBuffer);\r
                        glRenderbufferStorageOES(GL_RENDERBUFFER_OES, depth, Params.WindowSize.Width, Params.WindowSize.Height);\r
                }\r
-               \r
+\r
                if (FrameBuffer.BufferID == 0)\r
                {\r
                        glGenFramebuffersOES(1, &FrameBuffer.BufferID);\r
@@ -233,7 +233,7 @@ bool CEAGLManager::activateContext(const SExposedVideoData& videoData)
                        glFramebufferRenderbufferOES(GL_FRAMEBUFFER_OES, GL_COLOR_ATTACHMENT0_OES, GL_RENDERBUFFER_OES, FrameBuffer.ColorBuffer);\r
                        glFramebufferRenderbufferOES(GL_FRAMEBUFFER_OES, GL_DEPTH_ATTACHMENT_OES, GL_RENDERBUFFER_OES, FrameBuffer.DepthBuffer);\r
                }\r
-               \r
+\r
                glBindFramebufferOES(GL_FRAMEBUFFER_OES, FrameBuffer.BufferID);\r
        }\r
        else\r
@@ -253,17 +253,17 @@ bool CEAGLManager::swapBuffers()
 {\r
        SEAGLManagerDataStorage* dataStorage = static_cast<SEAGLManagerDataStorage*>(DataStorage);\r
        EAGLContext* context = dataStorage->Context;\r
-       \r
+\r
        bool status = false;\r
-       \r
+\r
        if (context != nil && context == [EAGLContext currentContext])\r
        {\r
                glBindRenderbufferOES(GL_RENDERBUFFER_OES, FrameBuffer.ColorBuffer);\r
                [context presentRenderbuffer:GL_RENDERBUFFER_OES];\r
-               \r
+\r
                status = true;\r
        }\r
-       \r
+\r
     return status;\r
 }\r
 \r