elseif(IOS)
add_definitions(-D_IRR_IOS_PLATFORM_ -D_IRR_COMPILE_WITH_IOS_BUILTIN_MAIN_)
if(USE_SDL2)
- message(WARNING "SDL2 backend is not supported on iOS")
- set(USE_SDL2 FALSE)
+ message(SEND_ERROR "SDL2 backend is not supported on iOS")
endif()
set(DEVICE "IOS")
elseif(OSX)
elseif(ANDROID)
add_definitions(-D_IRR_ANDROID_PLATFORM_ -D_IRR_COMPILE_ANDROID_ASSET_READER_)
if(USE_SDL2)
- message(WARNING "SDL2 backend is not supported on Android")
- set(USE_SDL2 FALSE)
+ message(SEND_ERROR "SDL2 backend is not supported on Android")
endif()
set(DEVICE "Android")
elseif(EMSCRIPTEN)
# OpenGL
+option(ENABLE_OPENGL3 "Enable OpenGL 3+" FALSE)
+
if(IOS OR ANDROID OR EMSCRIPTEN)
set(ENABLE_OPENGL FALSE)
else()
endif()
endif()
+if(ENABLE_OPENGL3)
+ if (NOT USE_SDL2)
+ message(SEND_ERROR "OpenGL3 support requires SDL2")
+ endif()
+ set(USE_SDLGL ON)
+ set(USE_SDLGL3 ON)
+endif()
+
if(ENABLE_GLES1)
add_definitions(-D_IRR_COMPILE_WITH_OGLES1_)
if(DEVICE MATCHES "^(WINDOWS|X11|ANDROID)$")
add_definitions(-D_IRR_COMPILE_WITH_EGL_MANAGER_ -D_IRR_OGLES2_USE_EXTPOINTER_)
elseif(DEVICE STREQUAL "IOS")
add_definitions(-D_IRR_COMPILE_WITH_EAGL_MANAGER_)
+ elseif(DEVICE STREQUAL "SDL")
+ set(USE_SDLGL ON)
+ set(USE_SDLGLES2 ON)
endif()
endif()
message(STATUS "Device: ${DEVICE}")
message(STATUS "OpenGL: ${ENABLE_OPENGL}")
+message(STATUS "OpenGL 3: ${ENABLE_OPENGL3}")
message(STATUS "OpenGL ES: ${ENABLE_GLES1}")
message(STATUS "OpenGL ES 2: ${ENABLE_GLES2}")
message(STATUS "WebGL: ${ENABLE_WEBGL1}")
COpenGLExtensionHandler.cpp
COGLESDriver.cpp
COGLESExtensionHandler.cpp
- COGLES2Driver.cpp
- COGLES2ExtensionHandler.cpp
- COGLES2FixedPipelineRenderer.cpp
- COGLES2MaterialRenderer.cpp
- COGLES2Renderer2D.cpp
- CWebGL1Driver.cpp
CGLXManager.cpp
CWGLManager.cpp
CEGLManager.cpp
${IRRIMAGEOBJ}
)
+if(USE_SDLGL)
+ target_sources(IRRVIDEOOBJ PUBLIC
+ OpenGL/Driver.cpp
+ OpenGL/ExtensionHandler.cpp
+ OpenGL/FixedPipelineRenderer.cpp
+ OpenGL/MaterialRenderer.cpp
+ OpenGL/Renderer2D.cpp
+ )
+endif()
+
+if(USE_SDLGL3)
+ target_sources(IRRVIDEOOBJ PUBLIC
+ OpenGL3/Driver.cpp
+ )
+endif()
+
+if(USE_SDLGLES2)
+ target_sources(IRRVIDEOOBJ PUBLIC
+ OpenGLES2/Driver.cpp
+ )
+else()
+ target_sources(IRRVIDEOOBJ PUBLIC
+ COGLES2Driver.cpp
+ COGLES2ExtensionHandler.cpp
+ COGLES2FixedPipelineRenderer.cpp
+ COGLES2MaterialRenderer.cpp
+ COGLES2Renderer2D.cpp
+ CWebGL1Driver.cpp
+ )
+endif()
+
add_library(IRRIOOBJ OBJECT
CFileList.cpp
CFileSystem.cpp
os.cpp
)
+if(ENABLE_OPENGL3)
+ target_compile_definitions(IRROTHEROBJ PRIVATE ENABLE_OPENGL3)
+endif()
+
if(ANDROID)
target_sources(IRROTHEROBJ PRIVATE
Android/CIrrDeviceAndroid.cpp