Split vulkan_window.cpp by responsibility and render() into phases
VulkanWindow's 3000-line TU becomes sdl_window.cpp (window, events, cursor, screenshot BMP), vk_device.cpp (device, swapchain, MSAA, framebuffers), vk_pipelines.cpp (render passes, pipelines), vk_resources.cpp (buffers, render targets, geometry), vk_textures.cpp (textures, samplers, descriptors), vk_frame.cpp (render) and ui_batches.cpp; vulkan_window.cpp keeps construction and timing stats. Function bodies move verbatim. render() now reads fence/acquire -> prepare_draws -> prepare_ui -> write_draw_states -> record_passes -> record_readbacks -> submit -> finish_readbacks -> present, with FrameDraws / Readback carrying the locals that used to live across 500 lines. Verified: login-screen screenshot byte-identical to HEAD; game-world draw/vertex/index/UI counts identical; ctest, port_gate macos+android, Android build pass. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
eab5938072
commit
22d534c5eb
+5
-1
@@ -64,7 +64,11 @@ src/platform/ScriptLib/PythonBoot.cpp # 解释器启动、RunMainScript
|
||||
third_party/cpython-2.7.18/ # 静态库
|
||||
src/host/main.cpp # SDL3 宿主入口:命令行、合成基准
|
||||
src/host/live_client.cpp # run_live_client:40250 客户端主循环
|
||||
src/host/vulkan_window.cpp # SDL 窗口/事件 + Vulkan 渲染器(回放 Render3DDraw / UIRenderCommand)
|
||||
src/host/vulkan_window.{h,cpp} # VulkanWindow:构造/析构 + 帧计时统计(回放 Render3DDraw / UIRenderCommand)
|
||||
src/host/sdl_window.cpp # SDL 窗口/事件/光标/屏幕键盘/截图 BMP
|
||||
src/host/vk_{device,pipelines,resources,textures}.cpp # 交换链 / 渲染通道+管线 / 缓冲+RT+几何 / 纹理+采样器+描述符
|
||||
src/host/vk_frame.cpp # render():prepare_draws → prepare_ui → write_draw_states → record_passes → readback
|
||||
src/host/ui_batches.cpp # UIRenderCommand → UiBatch 合批
|
||||
src/host/frame_policy.cpp # 帧率策略(FrameRatePolicy)
|
||||
src/host/native_audio.cpp # MilesLib AudioCommand → SDL 音频流
|
||||
src/host/audio_decode.cpp # .wav(手写 PCM 解析)/.mp3(dr_mp3)→ 44.1 kHz 立体声 float,全平台同一路径
|
||||
|
||||
Reference in New Issue
Block a user