diff --git a/CMakeLists.txt b/CMakeLists.txt index 208a5ab255..4b255ca7b5 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 1009a9fe07..8b4e4a6bad 100644 --- a/src/OpenGl/OpenGl_GlFunctions.hxx +++ b/src/OpenGl/OpenGl_GlFunctions.hxx @@ -25,7 +25,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 4ed778fd2f..3535cda0ed 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 @@ -67,7 +77,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) { @@ -159,7 +169,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 @@ -254,7 +264,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) @@ -289,7 +299,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()) @@ -373,7 +383,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()) { @@ -424,7 +434,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);