Skip to content

Commit d12f009

Browse files
committed
compile imgui with opengl es 3 on linux
1 parent a3fccd5 commit d12f009

File tree

4 files changed

+18
-4
lines changed

4 files changed

+18
-4
lines changed

CMakeLists.txt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,9 +146,13 @@ endif()
146146

147147
if(FSO_BUILD_WITH_OPENGL_ES)
148148
add_definitions(-DUSE_OPENGL_ES)
149+
IF(FSO_BUILD_WITH_OPENXR)
150+
MESSAGE(WARNING "FSO_BUILD_WITH_OPENXR is ON. But not supported on OpenGL ES for now - setting to OFF.")
151+
SET(FSO_BUILD_WITH_OPENXR OFF CACHE BOOL "" FORCE)
152+
endif()
149153
endif()
150154

151-
IF(NOT APPLE)
155+
IF(NOT APPLE AND NOT ANDROID AND NOT FSO_BUILD_WITH_OPENGL_ES)
152156
SET(OPENXR_BUILD_DEFAULT ON)
153157
ELSE()
154158
SET(OPENXR_BUILD_DEFAULT OFF)

freespace2/SDLGraphicsOperations.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -283,7 +283,11 @@ std::unique_ptr<os::OpenGLContext> SDLGraphicsOperations::createOpenGLContext(os
283283

284284

285285
ImGui_ImplSDL2_InitForOpenGL(viewport->toSDLWindow(), ctx);
286+
#ifndef USE_OPENGL_ES
286287
ImGui_ImplOpenGL3_Init();
288+
#else
289+
ImGui_ImplOpenGL3_Init("#version 300 es");
290+
#endif
287291

288292
return std::unique_ptr<os::OpenGLContext>(new SDLOpenGLContext(ctx));
289293
}

lib/imgui/CMakeLists.txt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,10 @@ TARGET_LINK_LIBRARIES(imgui PUBLIC sdl2)
3939
target_link_libraries(imgui PUBLIC compiler)
4040

4141
if(FSO_BUILD_WITH_OPENGL_ES)
42-
# IMGUI needs to link against OpenGL ES 3
43-
if(ANDROID)
42+
# IMGUI needs to link against OpenGL ES 3, the NDK already has it
43+
# For Linux this adds a dependency: libgles2-mesa-dev
44+
if(ANDROID OR MAKE_SYSTEM_NAME MATCHES "Linux")
45+
add_definitions(-DIMGUI_IMPL_OPENGL_ES3)
4446
find_library(GLESv3_LIB GLESv3)
4547
target_link_libraries(imgui PRIVATE ${GLESv3_LIB})
4648
endif()

lib/opengl/gl/CMakeLists.txt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,11 @@ elseif(CMAKE_SYSTEM_NAME MATCHES "Linux")
5555
"glad_glx/src/glad_glx.c")
5656
target_include_directories(glad_glx SYSTEM PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/glad_glx/include")
5757
set_target_properties(glad_glx PROPERTIES FOLDER "3rdparty")
58-
target_link_libraries(glad_glx PUBLIC glad)
58+
if(NOT FSO_BUILD_WITH_OPENGL_ES)
59+
target_link_libraries(glad_glx PUBLIC glad)
60+
else()
61+
target_link_libraries(glad_glx PUBLIC glad_gles)
62+
endif()
5963
suppress_warnings(glad_glx)
6064

6165
# On Linux we need GLX in addition to OpenGL, so attach GLX to OGL if we're here

0 commit comments

Comments
 (0)