v0.1.0: software map renderer + SDL3 window viewer

This commit is contained in:
EnderTheCoder
2026-09-12 01:02:49 +08:00
parent 3ad380c81e
commit b35372da52
13 changed files with 659 additions and 31 deletions
+33 -1
View File
@@ -83,13 +83,45 @@ target_sources(ra3_skirmish
target_link_libraries(ra3_skirmish PUBLIC ra3_core ra3_logic ra3_game ra3_map)
openra3_target_defaults(ra3_skirmish)
# --- software renderer: framebuffer, TGA decode, BMP encode, map compositing ---
add_library(ra3_render STATIC)
target_sources(ra3_render
PUBLIC FILE_SET CXX_MODULES FILES
src/render/ra3.render.cppm
)
target_link_libraries(ra3_render PUBLIC ra3_core)
openra3_target_defaults(ra3_render)
# --- windowed viewer: SDL3 when available, otherwise a null backend ---
find_package(PkgConfig QUIET)
if(PkgConfig_FOUND)
pkg_check_modules(SDL3 QUIET IMPORTED_TARGET sdl3)
endif()
add_library(ra3_ui STATIC)
if(SDL3_FOUND)
target_sources(ra3_ui
PUBLIC FILE_SET CXX_MODULES FILES
src/ui/ra3.ui.sdl.cppm
)
target_link_libraries(ra3_ui PUBLIC ra3_core ra3_render PkgConfig::SDL3)
message(STATUS "OpenRA3: SDL3 ${SDL3_VERSION} found - windowed viewer enabled")
else()
target_sources(ra3_ui
PUBLIC FILE_SET CXX_MODULES FILES
src/ui/ra3.ui.null.cppm
)
target_link_libraries(ra3_ui PUBLIC ra3_core ra3_render)
message(STATUS "OpenRA3: SDL3 not found - offscreen BMP output only")
endif()
openra3_target_defaults(ra3_ui)
# --- umbrella module re-exporting the whole SDK ---
add_library(ra3 STATIC)
target_sources(ra3
PUBLIC FILE_SET CXX_MODULES FILES
src/ra3.cppm
)
target_link_libraries(ra3 PUBLIC ra3_core ra3_logic ra3_client ra3_game ra3_fs ra3_map ra3_skirmish)
target_link_libraries(ra3 PUBLIC ra3_core ra3_logic ra3_client ra3_game ra3_fs ra3_map ra3_skirmish ra3_render ra3_ui)
openra3_target_defaults(ra3)
# --- the headless game executable ---