Files
hdk-is3r/README.md
T

1.7 KiB

hdk-is3r

This is the glue library required to have an ImGui renderer implementation for SDL's rendering API.

As simple as it sounds but it may get split into three libraries in the future:

  • hdk-is3r: Just the SDL Renderer glue for ImGui
  • hdk-is: General SDL glue for ImGui (input handling, clipboard, etc.)
  • hdk-imgui: Core ImGUI code that has no dependencies on any backend.

This will be so that we can very easily add imgui-sdl-opengl and imgui-sdl-vulkan, etc. in the future without having to duplicate the SDL glue or ImGUI core code.

Dependency Resolution

hdk-is3r resolves SDL3 with the same system-first strategy as other HDK modules:

  1. Try find_package(SDL3 <minimum>).
  2. If unavailable or too old, optionally fall back to FetchContent.

Relevant CMake options:

  • HDK_IS3R_SYSTEM_SDL3
  • HDK_IS3R_FETCH_SDL3_FALLBACK
  • HDK_IS3R_MIN_SDL3_VERSION

Example Assets

hdk-is3r examples follow the shared HDK asset resolution contract and stage assets beside example executables in the build tree.

Resolution order:

  1. Repository checkout assets (monorepo use)
  2. Installed hdk-assets package with minimum version
  3. FetchContent fallback

Relevant CMake options:

  • HDK_IS3R_EXAMPLES_FETCH_ASSETS
  • HDK_IS3R_EXAMPLES_ASSETS_MIN_VERSION
  • HDK_IS3R_EXAMPLES_ASSETS_GIT_REPOSITORY
  • HDK_IS3R_EXAMPLES_ASSETS_GIT_TAG

Installation Layout

When enabled, installed is3r examples and shared assets go under one install prefix.

  • Example binaries: ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}
  • Shared assets: ${CMAKE_INSTALL_PREFIX}/${HDK_IS3R_EXAMPLES_INSTALL_ASSETSDIR}

Default shared assets directory is assets, yielding ${CMAKE_INSTALL_PREFIX}/assets.