Skip to content
This repository was archived by the owner on May 13, 2024. It is now read-only.

Commit 0a77ef5

Browse files
committed
Enable unified driver with all devices
1 parent 19f0f70 commit 0a77ef5

File tree

3 files changed

+46
-45
lines changed

3 files changed

+46
-45
lines changed

source/Irrlicht/CMakeLists.txt

+30-41
Original file line numberDiff line numberDiff line change
@@ -199,8 +199,6 @@ if(ENABLE_OPENGL3)
199199
if (NOT USE_SDL2)
200200
message(FATAL_ERROR "OpenGL 3 driver requires SDL2")
201201
endif()
202-
set(USE_SDLGL ON)
203-
set(USE_SDLGL3 ON)
204202
endif()
205203

206204
if(ENABLE_GLES1)
@@ -216,12 +214,8 @@ endif()
216214

217215
if(ENABLE_GLES2)
218216
add_definitions(-D_IRR_COMPILE_WITH_OGLES2_)
219-
set(OPENGLES2_DIRECT_LINK TRUE) # not yet possible to remove this
220217
if(DEVICE MATCHES "^(WINDOWS|X11|ANDROID)$" OR EMSCRIPTEN)
221218
add_definitions(-D_IRR_COMPILE_WITH_EGL_MANAGER_)
222-
elseif(DEVICE STREQUAL "SDL")
223-
set(USE_SDLGL ON)
224-
set(USE_SDLGLES2 ON)
225219
endif()
226220
endif()
227221

@@ -243,10 +237,8 @@ message(STATUS "Device: ${DEVICE}")
243237
message(STATUS "OpenGL: ${ENABLE_OPENGL}")
244238
message(STATUS "OpenGL 3: ${ENABLE_OPENGL3}")
245239
message(STATUS "OpenGL ES: ${ENABLE_GLES1}")
246-
if (USE_SDLGLES2)
240+
if (ENABLE_GLES2)
247241
message(STATUS "OpenGL ES 2: ON (unified)")
248-
elseif (ENABLE_GLES2)
249-
message(STATUS "OpenGL ES 2: ON (legacy)")
250242
else()
251243
message(STATUS "OpenGL ES 2: OFF")
252244
endif()
@@ -347,6 +339,8 @@ set(IRRDRVROBJ
347339
mt_opengl_loader.cpp
348340
)
349341

342+
# the two legacy drivers
343+
350344
if(ENABLE_OPENGL)
351345
set(IRRDRVROBJ
352346
${IRRDRVROBJ}
@@ -365,25 +359,11 @@ if(ENABLE_GLES1)
365359
)
366360
endif()
367361

368-
set(IRRIMAGEOBJ
369-
CColorConverter.cpp
370-
CImage.cpp
371-
CImageLoaderBMP.cpp
372-
CImageLoaderJPG.cpp
373-
CImageLoaderPNG.cpp
374-
CImageLoaderTGA.cpp
375-
CImageWriterJPG.cpp
376-
CImageWriterPNG.cpp
377-
)
378-
379-
add_library(IRRVIDEOOBJ OBJECT
380-
CFPSCounter.cpp
381-
${IRRDRVROBJ}
382-
${IRRIMAGEOBJ}
383-
)
362+
# the unified drivers
384363

385-
if(USE_SDLGL)
386-
target_sources(IRRVIDEOOBJ PRIVATE
364+
if(ENABLE_OPENGL3 OR ENABLE_GLES2)
365+
set(IRRDRVROBJ
366+
${IRRDRVROBJ}
387367
OpenGL/Driver.cpp
388368
OpenGL/ExtensionHandler.cpp
389369
OpenGL/FixedPipelineRenderer.cpp
@@ -392,27 +372,37 @@ if(USE_SDLGL)
392372
)
393373
endif()
394374

395-
if(USE_SDLGL3)
396-
target_sources(IRRVIDEOOBJ PRIVATE
375+
if(ENABLE_OPENGL3)
376+
set(IRRDRVROBJ
377+
${IRRDRVROBJ}
397378
OpenGL3/Driver.cpp
398379
)
399380
endif()
400381

401-
if(USE_SDLGLES2)
402-
target_sources(IRRVIDEOOBJ PRIVATE
382+
if(ENABLE_GLES2)
383+
set(IRRDRVROBJ
384+
${IRRDRVROBJ}
403385
OpenGLES2/Driver.cpp
404386
)
405-
elseif(ENABLE_GLES2)
406-
target_sources(IRRVIDEOOBJ PRIVATE
407-
COGLES2Driver.cpp
408-
COGLES2ExtensionHandler.cpp
409-
COGLES2FixedPipelineRenderer.cpp
410-
COGLES2MaterialRenderer.cpp
411-
COGLES2Renderer2D.cpp
412-
CWebGL1Driver.cpp
413-
)
414387
endif()
415388

389+
set(IRRIMAGEOBJ
390+
CColorConverter.cpp
391+
CImage.cpp
392+
CImageLoaderBMP.cpp
393+
CImageLoaderJPG.cpp
394+
CImageLoaderPNG.cpp
395+
CImageLoaderTGA.cpp
396+
CImageWriterJPG.cpp
397+
CImageWriterPNG.cpp
398+
)
399+
400+
add_library(IRRVIDEOOBJ OBJECT
401+
CFPSCounter.cpp
402+
${IRRDRVROBJ}
403+
${IRRIMAGEOBJ}
404+
)
405+
416406
add_library(IRRIOOBJ OBJECT
417407
CFileList.cpp
418408
CFileSystem.cpp
@@ -519,7 +509,6 @@ target_link_libraries(IrrlichtMt PRIVATE
519509

520510
"$<$<BOOL:${OPENGL_DIRECT_LINK}>:${OPENGL_LIBRARIES}>"
521511
"$<$<BOOL:${OPENGLES_DIRECT_LINK}>:${OPENGLES_LIBRARY}>"
522-
"$<$<BOOL:${OPENGLES2_DIRECT_LINK}>:${OPENGLES2_LIBRARIES}>"
523512
${EGL_LIBRARY}
524513

525514
"$<$<PLATFORM_ID:Android>:-landroid -llog>"

source/Irrlicht/COpenGLCommon.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
#ifdef _IRR_COMPILE_WITH_OPENGL_
88

9-
#if defined(_IRR_WINDOWS_API_)
9+
#if defined(_IRR_COMPILE_WITH_WINDOWS_DEVICE_)
1010
#define WIN32_LEAN_AND_MEAN
1111
#include <windows.h>
1212
#define GL_GLEXT_LEGACY 1

source/Irrlicht/OpenGL/Common.h

+15-3
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,21 @@
55

66
#pragma once
77

8-
#define GL_GLEXT_PROTOTYPES
9-
#include <SDL_video.h>
10-
#include <SDL_opengl.h>
8+
#include "irrTypes.h"
9+
// even though we have mt_opengl.h our driver code still uses GL_* constants
10+
#if defined(_IRR_COMPILE_WITH_WINDOWS_DEVICE_)
11+
#include <GL/gl.h>
12+
#include <GL/glext.h>
13+
#elif defined(_IRR_COMPILE_WITH_OSX_DEVICE_)
14+
#include <OpenGL/gl.h>
15+
// not sure if this works without glext.h?
16+
#elif defined(_IRR_COMPILE_WITH_SDL_DEVICE_) && !defined(_IRR_COMPILE_WITH_X11_DEVICE_)
17+
#include <SDL_video.h>
18+
#include <SDL_opengl.h>
19+
#else
20+
#include <GL/gl.h>
21+
#include <GL/glext.h>
22+
#endif
1123

1224
namespace irr
1325
{

0 commit comments

Comments
 (0)