52 lines
1.7 KiB
Markdown
52 lines
1.7 KiB
Markdown
# 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`.
|