From d98dc90b3808335a54b3ab7fe10f177148423942 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Blot?= Date: Tue, 1 Aug 2023 20:53:25 +0200 Subject: [PATCH] cleanup: only build some files on WIN32 and compile EGL only if needed --- source/Irrlicht/CEGLManager.cpp | 7 ++-- source/Irrlicht/CEGLManager.h | 3 -- source/Irrlicht/CIrrDeviceWin32.cpp | 2 -- source/Irrlicht/CIrrDeviceWin32.h | 4 --- source/Irrlicht/CMakeLists.txt | 42 ++++++++++++++++++---- source/Irrlicht/COGLESExtensionHandler.cpp | 2 +- source/Irrlicht/COpenGLDriver.cpp | 2 +- source/Irrlicht/COpenGLExtensionHandler.h | 2 +- source/Irrlicht/CWGLManager.cpp | 4 --- source/Irrlicht/CWGLManager.h | 4 --- source/Irrlicht/Irrlicht.cpp | 4 +-- 11 files changed, 42 insertions(+), 34 deletions(-) diff --git a/source/Irrlicht/CEGLManager.cpp b/source/Irrlicht/CEGLManager.cpp index abf2a1dc..bca25f85 100755 --- a/source/Irrlicht/CEGLManager.cpp +++ b/source/Irrlicht/CEGLManager.cpp @@ -4,8 +4,6 @@ #include "CEGLManager.h" -#ifdef _IRR_COMPILE_WITH_EGL_MANAGER_ - #include "irrString.h" #include "irrArray.h" #include "os.h" @@ -44,7 +42,7 @@ bool CEGLManager::initialize(const SIrrlichtCreationParameters& params, const SE return true; // Window is depend on platform. -#if defined(_IRR_COMPILE_WITH_WINDOWS_DEVICE_) +#if defined(_IRR_WINDOWS_API_) EglWindow = (NativeWindowType)Data.OpenGLWin32.HWnd; Data.OpenGLWin32.HDc = GetDC((HWND)EglWindow); EglDisplay = eglGetDisplay((NativeDisplayType)Data.OpenGLWin32.HDc); @@ -99,7 +97,7 @@ void CEGLManager::terminate() EglDisplay = EGL_NO_DISPLAY; } -#if defined(_IRR_COMPILE_WITH_WINDOWS_DEVICE_) +#if defined(_IRR_WINDOWS_API_) if (Data.OpenGLWin32.HDc) { ReleaseDC((HWND)EglWindow, (HDC)Data.OpenGLWin32.HDc); @@ -664,4 +662,3 @@ bool CEGLManager::testEGLError() } } -#endif diff --git a/source/Irrlicht/CEGLManager.h b/source/Irrlicht/CEGLManager.h index aa659b79..11ae0451 100755 --- a/source/Irrlicht/CEGLManager.h +++ b/source/Irrlicht/CEGLManager.h @@ -4,8 +4,6 @@ #pragma once -#ifdef _IRR_COMPILE_WITH_EGL_MANAGER_ - #include #include "SIrrCreationParameters.h" @@ -111,4 +109,3 @@ namespace video }; } } -#endif diff --git a/source/Irrlicht/CIrrDeviceWin32.cpp b/source/Irrlicht/CIrrDeviceWin32.cpp index 5eb0680a..9e92a8fa 100644 --- a/source/Irrlicht/CIrrDeviceWin32.cpp +++ b/source/Irrlicht/CIrrDeviceWin32.cpp @@ -3,7 +3,6 @@ // For conditions of distribution and use, see copyright notice in irrlicht.h -#ifdef _IRR_COMPILE_WITH_WINDOWS_DEVICE_ #if defined (__STRICT_ANSI__) #error Compiling with __STRICT_ANSI__ not supported. g++ does set this when compiling with -std=c++11 or -std=c++0x. Use instead -std=gnu++11 or -std=gnu++0x. Or use -U__STRICT_ANSI__ to disable strict ansi. @@ -1615,4 +1614,3 @@ core::dimension2di CIrrDeviceWin32::CCursorControl::getSupportedIconSize() const } // end namespace -#endif // _IRR_COMPILE_WITH_WINDOWS_DEVICE_ diff --git a/source/Irrlicht/CIrrDeviceWin32.h b/source/Irrlicht/CIrrDeviceWin32.h index 7f79c2e6..8a3db071 100644 --- a/source/Irrlicht/CIrrDeviceWin32.h +++ b/source/Irrlicht/CIrrDeviceWin32.h @@ -4,8 +4,6 @@ #pragma once -#ifdef _IRR_COMPILE_WITH_WINDOWS_DEVICE_ - #include "CIrrDeviceStub.h" #include "IrrlichtDevice.h" @@ -425,5 +423,3 @@ namespace irr }; } // end namespace irr - -#endif // _IRR_COMPILE_WITH_WINDOWS_DEVICE_ diff --git a/source/Irrlicht/CMakeLists.txt b/source/Irrlicht/CMakeLists.txt index 62115c63..d404735f 100644 --- a/source/Irrlicht/CMakeLists.txt +++ b/source/Irrlicht/CMakeLists.txt @@ -78,6 +78,10 @@ if(CMAKE_SYSTEM_NAME STREQUAL "SunOS") set(SOLARIS TRUE) endif() +# EGL + +set(ENABLE_EGL OFF) + # Device if(WIN32) @@ -92,8 +96,11 @@ elseif(ANDROID) message(FATAL_ERROR "SDL2 device is not (yet) supported on Android") endif() set(DEVICE "ANDROID") + # EGL is required for Android + set(ENABLE_EGL ON) elseif(EMSCRIPTEN) - add_definitions(-D_IRR_EMSCRIPTEN_PLATFORM_ -D_IRR_COMPILE_WITH_EGL_MANAGER_) + add_definitions(-D_IRR_EMSCRIPTEN_PLATFORM_) + set(ENABLE_EGL ON) set(LINUX_PLATFORM TRUE) set(DEVICE "SDL") elseif(SOLARIS) @@ -178,7 +185,7 @@ endif() if(ENABLE_OPENGL) add_definitions(-D_IRR_COMPILE_WITH_OPENGL_) if(DEVICE STREQUAL "WINDOWS") - add_definitions(-D_IRR_COMPILE_WITH_WGL_MANAGER_ -D_IRR_OPENGL_USE_EXTPOINTER_) + add_definitions(-D_IRR_OPENGL_USE_EXTPOINTER_) elseif(DEVICE STREQUAL "X11") add_definitions(-D_IRR_COMPILE_WITH_GLX_MANAGER_ -D_IRR_OPENGL_USE_EXTPOINTER_) elseif(DEVICE STREQUAL "OSX") @@ -202,18 +209,22 @@ if(ENABLE_GLES1) endif() add_definitions(-D_IRR_COMPILE_WITH_OGLES1_) if(DEVICE MATCHES "^(WINDOWS|X11|ANDROID)$") - add_definitions(-D_IRR_COMPILE_WITH_EGL_MANAGER_ -D_IRR_OGLES1_USE_EXTPOINTER_) + add_definitions(-D_IRR_OGLES1_USE_EXTPOINTER_) endif() + # We need EGL for GLES1 + set(ENABLE_EGL ON) endif() if(ENABLE_GLES2) add_definitions(-D_IRR_COMPILE_WITH_OGLES2_) if(DEVICE MATCHES "^(WINDOWS|X11|ANDROID)$" OR EMSCRIPTEN) - add_definitions(-D_IRR_COMPILE_WITH_EGL_MANAGER_ -D_IRR_OGLES2_USE_EXTPOINTER_) + add_definitions(-D_IRR_OGLES2_USE_EXTPOINTER_) elseif(DEVICE STREQUAL "SDL") set(USE_SDLGL ON) set(USE_SDLGLES2 ON) endif() + # We need EGL for GLES2 + set(ENABLE_EGL ON) endif() if(ENABLE_WEBGL1) @@ -241,6 +252,7 @@ elseif (ENABLE_GLES2) else() message(STATUS "OpenGL ES 2: OFF") endif() +message(STATUS "EGL: ${ENABLE_EGL}") message(STATUS "WebGL: ${ENABLE_WEBGL1}") # Required libs @@ -352,12 +364,21 @@ add_library(IRROBJ OBJECT set(IRRDRVROBJ CNullDriver.cpp CGLXManager.cpp - CWGLManager.cpp - CEGLManager.cpp CSDLManager.cpp mt_opengl_loader.cpp ) +if(WIN32) + set(IRRDRVROBJ ${IRRDRVROBJ} + CIrrDeviceWin32.cpp + ) + if(ENABLE_OPENGL) + set(IRRDRVROBJ ${IRRDRVROBJ} + CWGLManager.cpp + ) + endif() +endif() + if(ENABLE_OPENGL) set(IRRDRVROBJ ${IRRDRVROBJ} @@ -377,6 +398,14 @@ if(ENABLE_GLES1) ) endif() + +if(ENABLE_EGL) + set(IRRDRVROBJ + ${IRRDRVROBJ} + CEGLManager.cpp + ) +endif() + set(IRRIMAGEOBJ CColorConverter.cpp CImage.cpp @@ -440,7 +469,6 @@ add_library(IRROTHEROBJ OBJECT CIrrDeviceSDL.cpp CIrrDeviceLinux.cpp CIrrDeviceStub.cpp - CIrrDeviceWin32.cpp CLogger.cpp COSOperator.cpp Irrlicht.cpp diff --git a/source/Irrlicht/COGLESExtensionHandler.cpp b/source/Irrlicht/COGLESExtensionHandler.cpp index c9308ee3..82454a13 100644 --- a/source/Irrlicht/COGLESExtensionHandler.cpp +++ b/source/Irrlicht/COGLESExtensionHandler.cpp @@ -13,7 +13,7 @@ #include "fast_atof.h" #if defined(_IRR_OGLES1_USE_EXTPOINTER_) -#if defined(_IRR_COMPILE_WITH_ANDROID_DEVICE_) || defined(_IRR_COMPILE_WITH_WINDOWS_DEVICE_) +#if defined(_IRR_COMPILE_WITH_ANDROID_DEVICE_) || defined(_IRR_WINDOWS_API_) #include #else #include diff --git a/source/Irrlicht/COpenGLDriver.cpp b/source/Irrlicht/COpenGLDriver.cpp index 5b591083..4c31095c 100644 --- a/source/Irrlicht/COpenGLDriver.cpp +++ b/source/Irrlicht/COpenGLDriver.cpp @@ -48,7 +48,7 @@ bool COpenGLDriver::initDriver() genericDriverInit(); -#if defined(_IRR_COMPILE_WITH_WINDOWS_DEVICE_) || defined(_IRR_COMPILE_WITH_X11_DEVICE_) +#if defined(_IRR_WINDOWS_API_) || defined(_IRR_COMPILE_WITH_X11_DEVICE_) extGlSwapInterval(Params.Vsync ? 1 : 0); #endif diff --git a/source/Irrlicht/COpenGLExtensionHandler.h b/source/Irrlicht/COpenGLExtensionHandler.h index ac239f01..380321bb 100644 --- a/source/Irrlicht/COpenGLExtensionHandler.h +++ b/source/Irrlicht/COpenGLExtensionHandler.h @@ -3391,7 +3391,7 @@ inline void COpenGLExtensionHandler::extGlGenerateTextureMipmap(GLuint texture, inline void COpenGLExtensionHandler::extGlSwapInterval(int interval) { // we have wglext, so try to use that -#if defined(_IRR_WINDOWS_API_) && defined(_IRR_COMPILE_WITH_WINDOWS_DEVICE_) +#if defined(_IRR_WINDOWS_API_) #ifdef WGL_EXT_swap_control if (pWglSwapIntervalEXT) pWglSwapIntervalEXT(interval); diff --git a/source/Irrlicht/CWGLManager.cpp b/source/Irrlicht/CWGLManager.cpp index 4cd6ea8b..955677e5 100644 --- a/source/Irrlicht/CWGLManager.cpp +++ b/source/Irrlicht/CWGLManager.cpp @@ -4,8 +4,6 @@ #include "CWGLManager.h" -#ifdef _IRR_COMPILE_WITH_WGL_MANAGER_ - #include "os.h" #include @@ -507,5 +505,3 @@ bool CWGLManager::swapBuffers() } } - -#endif diff --git a/source/Irrlicht/CWGLManager.h b/source/Irrlicht/CWGLManager.h index 2017151d..a7ed1494 100644 --- a/source/Irrlicht/CWGLManager.h +++ b/source/Irrlicht/CWGLManager.h @@ -4,8 +4,6 @@ #pragma once -#ifdef _IRR_COMPILE_WITH_WGL_MANAGER_ - #include "SIrrCreationParameters.h" #include "SExposedVideoData.h" #include "IContextManager.h" @@ -72,5 +70,3 @@ namespace video }; } } - -#endif diff --git a/source/Irrlicht/Irrlicht.cpp b/source/Irrlicht/Irrlicht.cpp index d1d26780..b948fb35 100644 --- a/source/Irrlicht/Irrlicht.cpp +++ b/source/Irrlicht/Irrlicht.cpp @@ -13,7 +13,7 @@ static const char* const copyright = "Irrlicht Engine (c) 2002-2017 Nikolaus Geb #endif #include "irrlicht.h" -#ifdef _IRR_COMPILE_WITH_WINDOWS_DEVICE_ +#ifdef _IRR_WINDOWS_API_ #include "CIrrDeviceWin32.h" #endif @@ -60,7 +60,7 @@ namespace irr IrrlichtDevice* dev = 0; -#ifdef _IRR_COMPILE_WITH_WINDOWS_DEVICE_ +#ifdef _IRR_WINDOWS_API_ if (params.DeviceType == EIDT_WIN32 || (!dev && params.DeviceType == EIDT_BEST)) dev = new CIrrDeviceWin32(params); #endif