1
0
Fork 0
mirror of https://github.com/ocornut/imgui.git synced 2026-01-11 00:04:24 +00:00
imgui/examples/example_sdl3_opengl3
2025-12-28 11:46:15 +03:00
..
build_win32.bat Examples: added more build_win64.bat helpers. 2024-10-24 18:09:25 +02:00
build_win64.bat Examples: added more build_win64.bat helpers. 2024-10-24 18:09:25 +02:00
example_sdl3_opengl3.vcxproj Revert "Examples: Updated all .vcxproj from VS2015 to VS2019 (toolset v140 to v142), Windows SDK 8.1 to 10." 2025-03-11 18:42:12 +01:00
example_sdl3_opengl3.vcxproj.filters Examples: Windows: Added 'misc/debuggers/imgui.natstepfilter' file to all Visual Studio projects. (#3038) 2023-03-15 17:09:09 +01:00
main.cpp Merge a1363038ae into 922a11f084 2025-12-28 11:46:15 +03:00
Makefile Examples: added SDL2+Vulkan, SDL3+Vulkan, GLFW+Vulkan makefiles. Amend ignore list. (#2480) 2025-04-16 15:04:14 +02:00
Makefile.android Add android-related example to existing SDL3 examples 2024-11-10 08:20:01 -07:00
Makefile.emscripten Examples: SDL3+OpenGL3: fixed Emscripten makefile + ignore list. 2025-10-29 14:21:43 +01:00
README.md Add android-related example to existing SDL3 examples 2024-11-10 08:20:01 -07:00

How to Build

Windows with Visual Studio's IDE

Use the provided project file (.vcxproj). Add to solution (imgui_examples.sln) if necessary.

Windows with Visual Studio's CLI

Use build_win32.bat or directly:

set SDL3_DIR=path_to_your_sdl3_folder
cl /Zi /MD /utf-8 /I.. /I..\.. /I%SDL3_DIR%\include main.cpp ..\..\backends\imgui_impl_sdl3.cpp ..\..\backends\imgui_impl_opengl3.cpp ..\..\imgui*.cpp /FeDebug/example_sdl3_opengl3.exe /FoDebug/ /link /libpath:%SDL3_DIR%\lib\x86 SDL3.lib opengl32.lib /subsystem:console
#                 ^^ include paths     ^^ source files                                                                                    ^^ output exe                    ^^ output dir   ^^ libraries
# or for 64-bit:
cl /Zi /MD /utf-8 /I.. /I..\.. /I%SDL3_DIR%\include main.cpp ..\..\backends\imgui_impl_sdl3.cpp ..\..\backends\imgui_impl_opengl3.cpp ..\..\imgui*.cpp /FeDebug/example_sdl3_opengl3.exe /FoDebug/ /link /libpath:%SDL3_DIR%\lib\x64 SDL3.lib SDL2mainopengl32.lib /subsystem:console

Linux and similar Unixes

Use our Makefile or directly:

c++ `sdl3-config --cflags` -I .. -I ../.. -I ../../backends
  main.cpp ../../backends/imgui_impl_sdl3.cpp ../../backends/imgui_impl_opengl3.cpp ../../imgui*.cpp
  `sdl3-config --libs` -lGL -ldl

macOS

Use our Makefile or directly:

brew install sdl3
c++ `sdl3-config --cflags` -I .. -I ../.. -I ../../backends
  main.cpp ../../backends/imgui_impl_sdl3.cpp ../../backends/imgui_impl_opengl3.cpp ../../imgui*.cpp
  `sdl3-config --libs` -framework OpenGl -framework CoreFoundation

Emscripten

As of 2023-05-30 Emscripten doesn't support SDL3 yet.

Android

  • You will need at least Java 9, preferably Java 17, to handle recent Gradle 8.9.x versions.

  • You need a way to install Android SDK and NDK and add their PATHS, and have access to a virtual device or real Android device to run the app.

    • Android SDK version 21+
    • Android NDK version 19+
  • Android Studio is an option for handling Java, Android SDK and NDK dependencies altogether: https://developer.android.com/studio.

  • The provided Makefile will download SDL from the main Git branch and create an Android project using SDL's provided create-android-project.py script.

  • Run the Makefile using make all. It downloads and unpacks SDL, runs the included Python script, and generate a folder with the Android project in this directory. The project contains the Dear ImGui sources and SDL3 backends.

  • After the project is generated, the Gradle version can be automatically updated in Android Studio, or updated manually via setting the classpath and distributionUrl values.

In com.imgui.example/build.gradle:

dependencies {
    classpath 'com.android.tools.build:gradle:8.7.2'
    ...
}

In com.imgui.example/gradle/wrapper/gradle-wrapper.properties:

distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip

In com.imgui.example/app/build.grade, update the min SDK version:

minSdkVersion 21

For this OpenGL3 example, add the GLESv3 library links in com.imgui.example/app/jni/src/Android.mk

LOCAL_LDLIBS := -lGLESv1_CM -lGLESv2 -lGLESv3 -lOpenSLES -llog -landroid  # SDL

How to Run

To run on a local machine using Windows PowerShell:

  1. Run make all and change into the generated Android project folder, for example: cd com.imgui.example/
  2. Run .\gradlew.bat build to start the Gradle Daemons and build the project. This requires the JAVA_HOME, ANDROID_HOME, and ANDROID_NDK_HOME environment variables if not done in Android Studio.
    • Android Studio handles these environment variables itself
  3. Run .\gradlew.bat installDebug to install the APK package file onto an Android virtual device or a connected real device.

Some other notes

On Windows, this variable may need to get set in the com.imgui.sdlrenderer3/app/jni/SDL/Android.mk file after variables are cleared.

include $(CLEAR_VARS)

# Add this if there's Makefile error 87
LOCAL_SHORT_COMMANDS := true

LOCAL_MODULE := SDL3