From e1a92d9ef029b7f36f32b4c9006d187490b7a179 Mon Sep 17 00:00:00 2001 From: kgv Date: Tue, 14 Dec 2021 00:25:36 +0300 Subject: [PATCH] 0032484: Configuration, CMake fails to find EGL and GLES2 include directory on iOS platform Fixed configuration errors and compilation errors on iOS target due to unexpected EGL usage (non-existing on iOS). --- CMakeLists.txt | 6 ++++-- src/OpenGl/OpenGl_GlFunctions.hxx | 4 +++- src/OpenGl/OpenGl_GraphicDriver.cxx | 24 +++++++++++++++++------- 3 files changed, 24 insertions(+), 10 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d98acc0ff9..f4ec871f56 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -661,8 +661,10 @@ endif() if (CAN_USE_GLES2) if (USE_GLES2) add_definitions (-DHAVE_GLES2_EXT) - OCCT_INCLUDE_CMAKE_FILE ("adm/cmake/egl") - OCCT_INCLUDE_CMAKE_FILE ("adm/cmake/gles2") + if (NOT IOS) + OCCT_INCLUDE_CMAKE_FILE ("adm/cmake/egl") + OCCT_INCLUDE_CMAKE_FILE ("adm/cmake/gles2") + endif() else() OCCT_CHECK_AND_UNSET_GROUP ("3RDPARTY_EGL") OCCT_CHECK_AND_UNSET_GROUP ("3RDPARTY_GLES2") diff --git a/src/OpenGl/OpenGl_GlFunctions.hxx b/src/OpenGl/OpenGl_GlFunctions.hxx index 3e2f6b64d2..fd361983d4 100644 --- a/src/OpenGl/OpenGl_GlFunctions.hxx +++ b/src/OpenGl/OpenGl_GlFunctions.hxx @@ -67,7 +67,9 @@ #if !defined(HAVE_EGL) #if defined(__ANDROID__) || defined(__QNX__) || defined(__EMSCRIPTEN__) || defined(HAVE_GLES2) || defined(OCCT_UWP) - #define HAVE_EGL + #if !defined(__APPLE__) + #define HAVE_EGL // EAGL is used instead of EGL + #endif #elif !defined(_WIN32) && !defined(__APPLE__) && !defined(HAVE_XLIB) #define HAVE_EGL #endif diff --git a/src/OpenGl/OpenGl_GraphicDriver.cxx b/src/OpenGl/OpenGl_GraphicDriver.cxx index b98795d318..bba02640f9 100644 --- a/src/OpenGl/OpenGl_GraphicDriver.cxx +++ b/src/OpenGl/OpenGl_GraphicDriver.cxx @@ -52,7 +52,17 @@ IMPLEMENT_STANDARD_RTTIEXT(OpenGl_GraphicDriver,Graphic3d_GraphicDriver) #include #endif -#if defined(HAVE_EGL) || defined(HAVE_GLES2) || defined(OCCT_UWP) || defined(__ANDROID__) || defined(__QNX__) || defined(__EMSCRIPTEN__) +#if !defined(HAVE_EGL) +#if defined(__ANDROID__) || defined(__QNX__) || defined(__EMSCRIPTEN__) || defined(HAVE_GLES2) || defined(OCCT_UWP) + #if !defined(__APPLE__) + #define HAVE_EGL // EAGL is used instead of EGL + #endif +#elif !defined(_WIN32) && !defined(__APPLE__) && !defined(HAVE_XLIB) + #define HAVE_EGL +#endif +#endif + +#if defined(HAVE_EGL) #include #ifndef EGL_OPENGL_ES3_BIT #define EGL_OPENGL_ES3_BIT 0x00000040 @@ -63,7 +73,7 @@ namespace { static const Handle(OpenGl_Context) TheNullGlCtx; -#if defined(HAVE_EGL) || defined(HAVE_GLES2) || defined(OCCT_UWP) || defined(__ANDROID__) || defined(__QNX__) || defined(__EMSCRIPTEN__) +#if defined(HAVE_EGL) //! Wrapper over eglChooseConfig() called with preferred defaults. static EGLConfig chooseEglSurfConfig (EGLDisplay theDisplay) { @@ -155,7 +165,7 @@ OpenGl_GraphicDriver::OpenGl_GraphicDriver (const Handle(Aspect_DisplayConnectio myMapOfView (1, NCollection_BaseAllocator::CommonBaseAllocator()), myMapOfStructure (1, NCollection_BaseAllocator::CommonBaseAllocator()) { -#if defined(HAVE_EGL) || defined(HAVE_GLES2) || defined(OCCT_UWP) || defined(__ANDROID__) || defined(__QNX__) || defined(__EMSCRIPTEN__) +#if defined(HAVE_EGL) myEglDisplay = (Aspect_Display )EGL_NO_DISPLAY; myEglContext = (Aspect_RenderingContext )EGL_NO_CONTEXT; #endif @@ -250,7 +260,7 @@ void OpenGl_GraphicDriver::ReleaseContext() aWindow->GetGlContext()->forcedRelease(); } -#if defined(HAVE_EGL) || defined(HAVE_GLES2) || defined(OCCT_UWP) || defined(__ANDROID__) || defined(__QNX__) || defined(__EMSCRIPTEN__) +#if defined(HAVE_EGL) if (myIsOwnContext) { if (myEglContext != (Aspect_RenderingContext )EGL_NO_CONTEXT) @@ -285,7 +295,7 @@ void OpenGl_GraphicDriver::ReleaseContext() Standard_Boolean OpenGl_GraphicDriver::InitContext() { ReleaseContext(); -#if defined(HAVE_EGL) || defined(HAVE_GLES2) || defined(OCCT_UWP) || defined(__ANDROID__) || defined(__QNX__) || defined(__EMSCRIPTEN__) +#if defined(HAVE_EGL) #if defined(HAVE_XLIB) if (myDisplayConnection.IsNull()) @@ -369,7 +379,7 @@ Standard_Boolean OpenGl_GraphicDriver::InitEglContext (Aspect_Display t void* theEglConfig) { ReleaseContext(); -#if defined(HAVE_EGL) || defined(HAVE_GLES2) || defined(OCCT_UWP) || defined(__ANDROID__) || defined(__QNX__) || defined(__EMSCRIPTEN__) +#if defined(HAVE_EGL) #if defined(HAVE_XLIB) if (myDisplayConnection.IsNull()) { @@ -420,7 +430,7 @@ void OpenGl_GraphicDriver::chooseVisualInfo() XVisualInfo* aVisInfo = NULL; Aspect_FBConfig anFBConfig = NULL; -#if defined(HAVE_EGL) || defined(HAVE_GLES2) +#if defined(HAVE_EGL) XVisualInfo aVisInfoTmp; memset (&aVisInfoTmp, 0, sizeof(aVisInfoTmp)); aVisInfoTmp.screen = DefaultScreen (aDisp);