Skip to content

Commit 5b143cb

Browse files
committed
feat: complete frontend overhaul - graphics, input, plugins, UI modules and tests
1 parent 41ed774 commit 5b143cb

51 files changed

Lines changed: 7525 additions & 197 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CMakeLists.txt

Lines changed: 33 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,34 +5,34 @@ set(CMAKE_CXX_STANDARD 17)
55
set(CMAKE_CXX_STANDARD_REQUIRED ON)
66
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
77

8-
# Include custom find modules
98
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/src/cmake")
109

11-
# Google Test
1210
include(FetchContent)
1311
FetchContent_Declare(
1412
googletest
1513
URL https://github.com/google/googletest/archive/v1.13.0.zip
1614
)
1715
FetchContent_MakeAvailable(googletest)
1816

19-
# Core library (math, types, no graphics dependencies)
2017
add_library(convoy_core)
2118
target_include_directories(convoy_core PUBLIC
2219
${CMAKE_CURRENT_SOURCE_DIR}/src
2320
)
2421

25-
# Try to find graphics dependencies (optional for core)
2622
find_package(GLFW3 3.4 QUIET)
2723
find_package(OpenGL QUIET)
2824
find_package(GLAD QUIET)
2925
find_package(ImGui QUIET)
3026

31-
# Only add window_manager if graphics deps are found
3227
if(GLFW3_FOUND AND OpenGL_FOUND AND GLAD_FOUND AND ImGui_FOUND)
3328
target_sources(convoy_core PRIVATE
3429
src/core/window_manager.cpp
3530
src/core/event_bus.cpp
31+
src/core/ui/theme_manager.cpp
32+
src/core/ui/dockspace_manager.cpp
33+
src/core/ui/main_menu_bar.cpp
34+
src/core/input/input_handler.cpp
35+
src/core/gfx/render_texture.cpp
3636
)
3737
target_link_libraries(convoy_core PUBLIC
3838
GLFW::GLFW
@@ -41,41 +41,62 @@ if(GLFW3_FOUND AND OpenGL_FOUND AND GLAD_FOUND AND ImGui_FOUND)
4141
ImGui::ImGui
4242
)
4343
else()
44-
# Minimal core without graphics
4544
target_sources(convoy_core PRIVATE
4645
src/core/event_bus.cpp
4746
)
4847
endif()
4948

50-
# CVP format and filesystem I/O
5149
target_sources(convoy_core PRIVATE
5250
src/core/cvp_format.cpp
5351
src/core/filesystem.cpp
5452
src/core/command_manager.cpp
5553
src/core/commands/pixel_command.cpp
54+
src/core/plugins/plugin_registry.cpp
55+
src/core/plugins/hook_system.cpp
5656
)
5757

58-
# Architect Module Library (no graphics deps)
5958
add_library(mod_architect
6059
src/modules/mod_architect/canvas.cpp
6160
src/modules/mod_architect/viewport.cpp
62-
src/modules/mod_architect/architect_ui.cpp
6361
src/modules/mod_architect/tools/pencil_tool.cpp
6462
src/modules/mod_architect/tools/eraser_tool.cpp
6563
src/modules/mod_architect/tools/bucket_tool.cpp
64+
src/modules/mod_architect/tools/pivot_tool.cpp
65+
src/modules/mod_architect/tools/hitbox_tool.cpp
6666
)
6767
target_include_directories(mod_architect PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/src)
6868
target_link_libraries(mod_architect PUBLIC convoy_core)
6969

70-
# Main Executable (only if graphics deps available)
70+
if(GLFW3_FOUND AND OpenGL_FOUND AND GLAD_FOUND AND ImGui_FOUND)
71+
target_sources(mod_architect PRIVATE
72+
src/modules/mod_architect/architect_ui.cpp
73+
src/modules/mod_architect/ui/color_palette.cpp
74+
src/modules/mod_architect/ui/dod_visualizer.cpp
75+
src/modules/mod_architect/ui/live_preview.cpp
76+
)
77+
endif()
78+
79+
if(GLFW3_FOUND AND OpenGL_FOUND AND GLAD_FOUND AND ImGui_FOUND)
80+
add_library(mod_walker src/modules/mod_walker/walker_ui.cpp)
81+
target_include_directories(mod_walker PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/src)
82+
target_link_libraries(mod_walker PUBLIC convoy_core)
83+
84+
add_library(mod_forge src/modules/mod_forge/forge_ui.cpp)
85+
target_include_directories(mod_forge PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/src)
86+
target_link_libraries(mod_forge PUBLIC convoy_core)
87+
88+
add_library(mod_sequencer src/modules/mod_sequencer/sequencer_ui.cpp)
89+
target_include_directories(mod_sequencer PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/src)
90+
target_link_libraries(mod_sequencer PUBLIC convoy_core)
91+
endif()
92+
7193
if(GLFW3_FOUND AND OpenGL_FOUND AND GLAD_FOUND AND ImGui_FOUND)
7294
add_executable(convoy
7395
src/convoy/main.cpp
7496
)
75-
target_link_libraries(convoy PRIVATE convoy_core mod_architect)
97+
target_link_libraries(convoy PRIVATE convoy_core mod_architect mod_walker mod_forge mod_sequencer)
7698
endif()
7799

78-
# Compiler flags
79100
if(MSVC)
80101
target_compile_options(convoy_core PRIVATE /W4 /WX)
81102
if(TARGET convoy)
@@ -88,7 +109,5 @@ else()
88109
endif()
89110
endif()
90111

91-
# Testing
92112
enable_testing()
93113
add_subdirectory(tests)
94-

0 commit comments

Comments
 (0)