Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
a6b3e21
feat(gameclient) Introduce imgui console
jurassicLizard Jan 15, 2026
fbb5b41
Fix failing Release build with imgui enabled
jurassicLizard Jan 15, 2026
723a818
Move ImGui Render before DRAW call for consistency
jurassicLizard Jan 16, 2026
bb5b0b8
Remove redundant Frame creation in dx8wrapper
jurassicLizard Jan 16, 2026
fdd99b0
Fix configuration to also accept RTS_BUILD_OPTION_DEBUG
jurassicLizard Jan 16, 2026
8b7d906
Add feature info for ImGui build option
jurassicLizard Jan 16, 2026
0baa0b7
Backport ImGui integration to generals
jurassicLizard Jan 16, 2026
1fc3ef5
Cleanup redundant deadcode
jurassicLizard Jan 16, 2026
9d7e571
Add TheSuperHackers comments according to guidlines
jurassicLizard Jan 16, 2026
3d91be9
Remove redundant Render
jurassicLizard Jan 16, 2026
f8b1e74
Fix type in ImGui CMakeLists
jurassicLizard Jan 16, 2026
5edeb4f
Fix NullPointer dereference in imgui_impl_dx8
jurassicLizard Jan 16, 2026
2ddf162
fix missing result status check
jurassicLizard Jan 16, 2026
8b4dede
fix second potential nullptr dereference in dx8 backend
jurassicLizard Jan 16, 2026
a62f923
Fix crash in worldbuilder and guiedit
jurassicLizard Jan 19, 2026
ccc8397
Fix further nullptr deref issues in ImGui dx8backend
jurassicLizard Jan 19, 2026
969eaee
Fix indentation in ImGui CMakeLists.txt
jurassicLizard Jan 20, 2026
93e0ac7
Fix cmake option description for imgui
jurassicLizard Jan 20, 2026
85f8c8a
Change RTS_IMGUI_ENABLED to RTS_HAS_IMGUI
jurassicLizard Jan 20, 2026
4e83737
Remove excess lines
jurassicLizard Jan 20, 2026
2b26d77
Update Error messsages in CMakeLists
jurassicLizard Jan 20, 2026
8c87126
Change NULL to nullptr in dx8 backend
jurassicLizard Jan 20, 2026
1dea931
Remove and centralize description comments
jurassicLizard Jan 20, 2026
8f2dd3b
Revert "Change NULL to nullptr in dx8 backend"
jurassicLizard Jan 20, 2026
6cb1cce
Move lib_imgui linking away from corei_always
jurassicLizard Jan 20, 2026
2f400bc
Restore nullptr fixes
jurassicLizard Jan 20, 2026
86450c2
Fix copyright header and space issues
jurassicLizard Jan 20, 2026
359a704
Fix style issues
jurassicLizard Jan 20, 2026
c7237bc
Fix ImGui dx8 style and copyright header
jurassicLizard Jan 20, 2026
cb5d1fd
unify cmake win dx8 imgui impl variables
jurassicLizard Jan 20, 2026
5ead1e5
remove redundant C-Style casting for ImGui Io
jurassicLizard Jan 20, 2026
3e3fac8
Fix SuperHackers comment alignment and redundancy
jurassicLizard Jan 20, 2026
38ce933
add dx9 imgui impl header to our own dx8 impl files
jurassicLizard Jan 20, 2026
e473a09
Create wrapper for ImGui Frame mgmt and integrate in WorldbuilderV
jurassicLizard Jan 20, 2026
3e61510
Finalize ImGui integration in Gen and ZH worldbuilders
jurassicLizard Jan 21, 2026
ea6264a
Add copyright headers and fix indentation in frame mgr
jurassicLizard Jan 21, 2026
c406ff7
Remove imgui integration naming
jurassicLizard Jan 22, 2026
9680c78
link lib_imgui to g_gameengine and z_gameengine instead of _always
jurassicLizard Jan 26, 2026
0dde400
fix copyright header order
jurassicLizard Jan 26, 2026
d3fee46
fix more style issues in imgui dx8 backend
jurassicLizard Jan 26, 2026
d89458e
remove excess spaces from ImGuiFrameManager
jurassicLizard Jan 26, 2026
72ae8e7
align class and namespace for ImGuiFrameManager
jurassicLizard Jan 26, 2026
88d0ea5
remove unwanted comments
jurassicLizard Jan 26, 2026
ba687b7
move comments inside conditional compilation block in wbview3d
jurassicLizard Jan 26, 2026
30c0b2a
remove superfluous superhackers comment
jurassicLizard Jan 26, 2026
0cc678b
partially fix regression that stopped imgui from rendering
jurassicLizard Jan 26, 2026
fb220b9
fix worldbuilder regression with imgui not showing
jurassicLizard Jan 27, 2026
7c00995
Apply Microsoft Codestyle and Allman Bracestyle to imgui codebase
jurassicLizard Jan 27, 2026
54af2b1
Fix minor style and functional issues
jurassicLizard Jan 27, 2026
eb5f3f1
remove conditional build on Debug only modes
jurassicLizard Jan 27, 2026
992acc7
fix various style issues
jurassicLizard Jan 29, 2026
4c4cd79
modify handling of frame management in ZH
jurassicLizard Jan 29, 2026
823901b
simplify frame management and apply changes to GeneralsV
jurassicLizard Jan 29, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions Core/Libraries/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,8 @@ add_subdirectory(Source/debug)
add_subdirectory(Source/EABrowserDispatch)
add_subdirectory(Source/EABrowserEngine)
add_subdirectory(Source/Compression)

# Imgui library
if (RTS_BUILD_OPTION_IMGUI)
add_subdirectory(Source/ImGui)
endif ()
57 changes: 57 additions & 0 deletions Core/Libraries/Source/ImGui/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
FetchContent_Declare(
imgui
GIT_REPOSITORY https://github.com/ocornut/imgui.git
GIT_TAG 791ad9b82db44ada9fedb3e26b2d900974ac0959
SYSTEM
)

FetchContent_MakeAvailable(imgui)

# Main IMGUI sources we are going to need
set(IMGUI_BASE_SRCS
"${imgui_SOURCE_DIR}/imgui.cpp"
"${imgui_SOURCE_DIR}/imgui_draw.cpp"
"${imgui_SOURCE_DIR}/imgui_tables.cpp"
"${imgui_SOURCE_DIR}/imgui_widgets.cpp"
"${imgui_SOURCE_DIR}/imgui_demo.cpp"
)

# Main Win32 DX8 specific sources we are going to need we can specify more if we need extra platforms
set(IMGUI_WIN32_DX8_ALL_SRCS
"${IMGUI_BASE_SRCS}"
"${imgui_SOURCE_DIR}/backends/imgui_impl_win32.cpp"
"${CMAKE_SOURCE_DIR}/Core/Libraries/Source/ImGui/dx8_backend/imgui_impl_dx8.cpp"
)

# All Include directories
set(IMGUI_INCLUDE_DIRS
"${imgui_SOURCE_DIR}"
"${imgui_SOURCE_DIR}/backends"
# DX8 override. Remove the following once we are using a standard backend
"${CMAKE_SOURCE_DIR}/Core/Libraries/Source/ImGui/dx8_backend"
)

# start target build section
# we currently have a hard dependency on dx8 and win32 api
if (WIN32)
MESSAGE(STATUS "Enabling ImGui")

add_library(lib_imgui STATIC ${IMGUI_WIN32_DX8_ALL_SRCS}
"${CMAKE_CURRENT_LIST_DIR}/wrapper/ImGuiFrameManager.cpp"
)

target_include_directories(lib_imgui
PUBLIC ${IMGUI_INCLUDE_DIRS}
PUBLIC "${CMAKE_CURRENT_LIST_DIR}/wrapper")
target_link_libraries(lib_imgui PRIVATE d3d8lib)

# use our own imconfig.h
target_compile_definitions(lib_imgui
PRIVATE IMGUI_DISABLE_DEFAULT_IMCONFIG
PRIVATE IMGUI_USER_CONFIG="${CMAKE_CURRENT_LIST_DIR}/imconfig.h"
INTERFACE RTS_HAS_IMGUI
)
else ()
# currently only WIN32 DX is supported
MESSAGE(FATAL_ERROR "Non-Windows platforms currently not supported for ImGui")
endif ()
Loading
Loading