feat: major engine overhaul - scene demo with lighting, sphere, ground

- Scene Demo: cube + sphere + ground plane with proper lighting
- Audio: XAudio2 dynamic loading + WAV playback
- Physics: expanded collision system
- Renderer: improved pipeline with materials
- UI: extended widget system
- VisualScript: enhanced serializer + block interactions
- ASM: optimized math/memory/profiling routines
- Window: mouse input + scroll support
This commit is contained in:
shuiyu1123 committed 2026-07-12 08:21:07 +08:00
1 parent 2653926d85
commit 0669d102ce
35 files changed
+1844 -314

No files matched your search

+48 -7
View File
@@ -14,18 +14,22 @@ include_directories(
set(ENGINE_SOURCES
Engine/Math/math_impl.c
Engine/Core/engine.c
Engine/Core/logger.c
Engine/Core/timer.c
Engine/Core/engine.c
Engine/Core/asset_manager.c
Engine/Window/window.c
Engine/Rendering/graphics_device.c
Engine/Rendering/renderer.c
Engine/Rendering/shader.c
Engine/Rendering/mesh.c
Engine/Rendering/texture.c
Engine/Rendering/material.c
Engine/Rendering/camera.c
Engine/Rendering/lighting.c
Engine/Scene/scene_graph.c
Engine/Scene/scene_render.c
Engine/Scene/scene_serialize.c
Engine/ECS/world.c
Engine/Input/input.c
Engine/Physics/physics.c
@@ -50,7 +54,7 @@ set(ENGINE_SOURCES
add_library(Engine STATIC ${ENGINE_SOURCES})
set(LINK_LIBS Engine d3d11 dxgi d3dcompiler ole32 oleaut32 uuid gdi32 user32 kernel32 winmm)
set(LINK_LIBS Engine d3d11 dxgi d3dcompiler ole32 oleaut32 uuid gdi32 user32 kernel32 winmm xinput1_4 windowscodecs)
add_executable(lity3d Demo/main.c)
target_link_libraries(lity3d ${LINK_LIBS})
@@ -65,17 +69,54 @@ target_link_libraries(lity3d_compat ${LINK_LIBS})
set_target_properties(lity3d_compat PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/build ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/build)
add_executable(ly_interpreter Demo/ly_interpreter.c)
target_link_libraries(ly_interpreter Engine d3d11 dxgi d3dcompiler ole32 oleaut32 uuid gdi32 user32 kernel32 winmm)
target_link_libraries(ly_interpreter Engine d3d11 dxgi d3dcompiler ole32 oleaut32 uuid gdi32 user32 kernel32 winmm xinput1_4 windowscodecs)
set_target_properties(ly_interpreter PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/build ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/build)
add_executable(scene_test WIN32 Demo/game_test.c)
target_link_libraries(scene_test d3d11 dxgi d3dcompiler dxguid ole32 oleaut32 uuid gdi32 user32 kernel32 winmm)
# Engine-based demos
add_executable(scene_test WIN32 Demo/scene_test.c)
target_link_libraries(scene_test ${LINK_LIBS})
set_target_properties(scene_test PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/build ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/build)
add_executable(scene_test2 WIN32 Demo/scene_test2.c)
target_link_libraries(scene_test2 ${LINK_LIBS})
set_target_properties(scene_test2 PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/build ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/build)
add_executable(light_test WIN32 Demo/light_test.c)
target_link_libraries(light_test Engine d3d11 dxgi d3dcompiler ole32 oleaut32 uuid gdi32 user32 kernel32 winmm)
target_link_libraries(light_test ${LINK_LIBS})
set_target_properties(light_test PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/build ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/build)
add_executable(input_test WIN32 Demo/input_test.c)
target_link_libraries(input_test Engine d3d11 dxgi d3dcompiler ole32 oleaut32 uuid gdi32 user32 kernel32 winmm)
target_link_libraries(input_test ${LINK_LIBS})
set_target_properties(input_test PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/build ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/build)
add_executable(mesh_debug WIN32 Demo/mesh_debug.c)
target_link_libraries(mesh_debug ${LINK_LIBS})
set_target_properties(mesh_debug PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/build ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/build)
add_executable(raw3d_test WIN32 Demo/raw3d_test.c)
target_link_libraries(raw3d_test ${LINK_LIBS})
set_target_properties(raw3d_test PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/build ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/build)
# Audio demo (console, uses Engine audio system)
add_executable(audio_demo Demo/audio_demo.c)
target_link_libraries(audio_demo ${LINK_LIBS})
set_target_properties(audio_demo PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/build ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/build)
# Standalone D3D11 demos (do not link Engine)
set(STANDALONE_D3D_LIBS d3d11 dxgi d3dcompiler ole32 oleaut32 uuid gdi32 user32 kernel32 winmm)
add_executable(game_test WIN32 Demo/game_test.c)
target_link_libraries(game_test ${STANDALONE_D3D_LIBS})
set_target_properties(game_test PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/build ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/build)
add_executable(cube_dodge WIN32 Demo/cube_dodge.c)
target_link_libraries(cube_dodge ${STANDALONE_D3D_LIBS})
set_target_properties(cube_dodge PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/build ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/build)
add_executable(obj_viewer WIN32 Demo/obj_viewer.c)
target_link_libraries(obj_viewer ${STANDALONE_D3D_LIBS})
set_target_properties(obj_viewer PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/build ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/build)
add_executable(d3d11_test WIN32 Demo/d3d11_test.c)
target_link_libraries(d3d11_test ${STANDALONE_D3D_LIBS})
set_target_properties(d3d11_test PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/build ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/build)