sync: user's Lity3D_source.zip changes

- Engine core: improved initialization and lifecycle
- Renderer: camera and rendering pipeline updates
- Editor: updated editor code
- Window: improved window handling
- Demo/main.c: scene demo with AssetManager + scene loading
- build.bat: updated build script
- 11 files modified from user's manual edits
This commit is contained in:
shuiyu1123 committed 2026-07-12 12:13:50 +08:00
1 parent 0669d102ce
commit 7a0533d21a
11 files changed
+707 -378

No files matched your search

+32 -14
View File
@@ -9,12 +9,12 @@ set GXX=%MINGW%\g++.exe
set ENGINE_DIR=Engine
set DEMO_DIR=Demo
set OUTPUT=MiMoEngine_ASM.exe
set OUTPUT=Lity3D.exe
set CFLAGS=-O2 -Wall -Wextra -DWIN32_LEAN_AND_MEAN -D_CRT_SECURE_NO_WARNINGS -DMATH_ASM_AVAILABLE=0 -I%ENGINE_DIR% -I%ENGINE_DIR%\include
set LDFLAGS=-ld3d11 -ldxgi -ld3dcompiler -lole32 -loleaut32 -luuid -lgdi32 -luser32 -lkernel32 -lwinmm -lxinput1_4 -lwindowscodecs -static
echo === MiMoEngine ASM Build ===
echo === Lity3DEngine ASM Build ===
echo Compiler: %GCC%
REM 创建输出目录并清理旧对象
@@ -30,11 +30,15 @@ echo [1/3] Compiling Engine sources...
%GCC% %CFLAGS% -c %ENGINE_DIR%\Window\window.c -o build\window.o
%GCC% %CFLAGS% -c %ENGINE_DIR%\Rendering\graphics_device.c -o build\graphics_device.o
%GCC% %CFLAGS% -c %ENGINE_DIR%\Rendering\renderer.c -o build\renderer.o
%GCC% %CFLAGS% -c %ENGINE_DIR%\Rendering\frustum.c -o build\frustum.o
%GCC% %CFLAGS% -c %ENGINE_DIR%\Rendering\shader.c -o build\shader.o
%GCC% %CFLAGS% -c %ENGINE_DIR%\Rendering\mesh.c -o build\mesh.o
%GCC% %CFLAGS% -c %ENGINE_DIR%\Rendering\texture.c -o build\texture.o
%GCC% %CFLAGS% -c %ENGINE_DIR%\Rendering\material.c -o build\material.o
%GCC% %CFLAGS% -c %ENGINE_DIR%\Rendering\camera.c -o build\camera.o
%GCC% %CFLAGS% -c %ENGINE_DIR%\Rendering\camera_controller.c -o build\camera_controller.o
%GCC% %CFLAGS% -c %ENGINE_DIR%\Terrain\terrain.c -o build\terrain.o
%GCC% %CFLAGS% -c %ENGINE_DIR%\Terrain\terrain_manager.c -o build\terrain_manager.o
%GCC% %CFLAGS% -c %ENGINE_DIR%\ECS\world.c -o build\world.o
%GCC% %CFLAGS% -c %ENGINE_DIR%\Input\input.c -o build\input.o
%GCC% %CFLAGS% -c %ENGINE_DIR%\Physics\physics.c -o build\physics.o
@@ -57,35 +61,49 @@ echo [2/4] Compiling VisualScript...
%GCC% %CFLAGS% -c %ENGINE_DIR%\VisualScript\block_serializer.c -o build\block_serializer.o
%GCC% %CFLAGS% -c %ENGINE_DIR%\VisualScript\block_editor.c -o build\block_editor.o
REM 编译 Editor 模块
echo [3/4] Compiling Editor...
%GCC% %CFLAGS% -c %ENGINE_DIR%\Editor\glyph_atlas.c -o build\glyph_atlas.o
REM 编译 Demo
echo [4/4] Compiling Demo...
echo [3/3] Compiling Demo...
%GCC% %CFLAGS% -c %DEMO_DIR%\main.c -o build\main.o
%GCC% %CFLAGS% -c %DEMO_DIR%\audio_demo.c -o build\audio_demo.o
%GCC% %CFLAGS% -c %DEMO_DIR%\editor_main.c -o build\editor_main.o
%GCC% %CFLAGS% -c %DEMO_DIR%\open_world_demo.c -o build\open_world_demo.o
REM 链接主程序
echo Linking main...
%GXX% build\engine.o build\logger.o build\timer.o build\asset_manager.o build\window.o build\graphics_device.o build\renderer.o build\shader.o build\mesh.o build\texture.o build\material.o build\camera.o build\world.o build\input.o build\physics.o build\audio.o build\ui.o build\lua_engine.o build\scene_graph.o build\scene_render.o build\scene_serialize.o build\block_core.o build\block_types.o build\block_workspace.o build\block_interaction.o build\block_renderer.o build\block_palette.o build\block_executor.o build\block_serializer.o build\block_editor.o build\glyph_atlas.o build\main.o -o build\%OUTPUT% %LDFLAGS%
%GXX% build\engine.o build\logger.o build\timer.o build\asset_manager.o build\window.o build\graphics_device.o build\renderer.o build\frustum.o build\shader.o build\mesh.o build\texture.o build\material.o build\camera.o build\camera_controller.o build\terrain.o build\terrain_manager.o build\world.o build\input.o build\physics.o build\audio.o build\ui.o build\lua_engine.o build\scene_graph.o build\scene_render.o build\scene_serialize.o build\block_core.o build\block_types.o build\block_workspace.o build\block_interaction.o build\block_renderer.o build\block_palette.o build\block_executor.o build\block_serializer.o build\block_editor.o build\main.o -o build\%OUTPUT% %LDFLAGS%
REM 链接音频演示
echo Linking audio_demo...
%GXX% build\engine.o build\logger.o build\timer.o build\asset_manager.o build\window.o build\graphics_device.o build\renderer.o build\shader.o build\mesh.o build\texture.o build\material.o build\camera.o build\world.o build\input.o build\physics.o build\audio.o build\ui.o build\lua_engine.o build\scene_graph.o build\scene_render.o build\scene_serialize.o build\block_core.o build\block_types.o build\block_workspace.o build\block_interaction.o build\block_renderer.o build\block_palette.o build\block_executor.o build\block_serializer.o build\block_editor.o build\glyph_atlas.o build\audio_demo.o -o build\audio_demo.exe %LDFLAGS%
%GXX% build\engine.o build\logger.o build\timer.o build\asset_manager.o build\window.o build\graphics_device.o build\renderer.o build\frustum.o build\shader.o build\mesh.o build\texture.o build\material.o build\camera.o build\camera_controller.o build\terrain.o build\terrain_manager.o build\world.o build\input.o build\physics.o build\audio.o build\ui.o build\lua_engine.o build\scene_graph.o build\scene_render.o build\scene_serialize.o build\block_core.o build\block_types.o build\block_workspace.o build\block_interaction.o build\block_renderer.o build\block_palette.o build\block_executor.o build\block_serializer.o build\block_editor.o build\audio_demo.o -o build\audio_demo.exe %LDFLAGS%
REM 链接编辑器
echo Linking editor...
%GXX% build\engine.o build\logger.o build\timer.o build\asset_manager.o build\window.o build\graphics_device.o build\renderer.o build\shader.o build\mesh.o build\texture.o build\material.o build\camera.o build\world.o build\input.o build\physics.o build\audio.o build\ui.o build\lua_engine.o build\scene_graph.o build\scene_render.o build\scene_serialize.o build\block_core.o build\block_types.o build\block_workspace.o build\block_interaction.o build\block_renderer.o build\block_palette.o build\block_executor.o build\block_serializer.o build\block_editor.o build\glyph_atlas.o build\editor_main.o -o build\editor.exe %LDFLAGS% -mwindows
REM 链接开放世界演示
echo Linking open_world_demo...
%GXX% build\engine.o build\logger.o build\timer.o build\asset_manager.o build\window.o build\graphics_device.o build\renderer.o build\frustum.o build\shader.o build\mesh.o build\texture.o build\material.o build\camera.o build\camera_controller.o build\terrain.o build\terrain_manager.o build\world.o build\input.o build\physics.o build\audio.o build\ui.o build\lua_engine.o build\scene_graph.o build\scene_render.o build\scene_serialize.o build\block_core.o build\block_types.o build\block_workspace.o build\block_interaction.o build\block_renderer.o build\block_palette.o build\block_executor.o build\block_serializer.o build\block_editor.o build\open_world_demo.o -o build\open_world_demo.exe %LDFLAGS%
REM 编译 C# 编辑器
echo Building C# editor...
dotnet build EditorCS\Lity3DEditor.csproj -c Release -o build
if %ERRORLEVEL% EQU 0 (
echo.
echo === Build succeeded! ===
echo Output: build\%OUTPUT%
echo Audio Demo: build\audio_demo.exe
echo Open World Demo: build\open_world_demo.exe
echo Editor: build\editor.exe
echo.
echo Run with: build\%OUTPUT% or build\audio_demo.exe
echo Run with: build\%OUTPUT%, build\audio_demo.exe, build\open_world_demo.exe, or build\editor.exe
REM 清理中间文件,保留可分发产物
del /Q build\*.o 2>nul
del /Q build\libEngine.a 2>nul
del /Q build\engine.log 2>nul
del /Q build\screenshot*.bmp 2>nul
rmdir /S /Q build\CMakeFiles 2>nul
del /Q build\CMakeCache.txt 2>nul
del /Q build\Makefile 2>nul
del /Q build\cmake_install.cmake 2>nul
del /Q build\scene.txt 2>nul
del /Q build\scene_log.txt 2>nul
) else (
echo.
echo === Build FAILED! ===