docs: sync api and planning docs

This commit is contained in:
2026-04-08 16:07:03 +08:00
parent 08c3278e10
commit 31756847ab
1826 changed files with 44502 additions and 29645 deletions

294
AGENT.md
View File

@@ -4,142 +4,150 @@
如果 README、旧文档和当前文件树 / `CMakeLists.txt` / 测试 target 冲突,以当前 checkout 为准,并在本次工作里顺手修正文档。
## 1. 先建立的事实
## 1. 开工顺序
- 顶层 `CMakeLists.txt` 当前纳入 `engine/``editor/``managed/``mvs/RenderDoc/``tests/`
- `engine/` 构建静态库 `XCEngine``editor/` 构建 `XCEditor`,但输出文件名仍是 `editor/bin/<Config>/XCEngine.exe`
- editor 默认把仓库内的 `project/` 识别为工程根目录,也支持 `--project <path>` 覆盖。
- 当前工程不再只是 `Assets/` 目录:已经真实使用 `Assets/ + .meta + Library/` 的工程布局。
- Mono 运行时与 editor 脚本类发现都从 `<project>/Library/ScriptAssemblies/` 加载程序集。
- `engine/CMakeLists.txt` 当前对 Vulkan 是硬依赖;`editor/``tests/` 首次配置会拉取 `ImGui``googletest`
## 2. 优先阅读顺序
进入仓库后,优先看这些文档和入口文件:
进入仓库后,优先按下面顺序建立上下文:
1. [AGENT.md](AGENT.md)
2. [README.md](README.md)
3. [docs/plan/end/RHI模块设计与实现/RHI模块总览.md](docs/plan/end/RHI模块设计与实现/RHI模块总览.md)
4. [docs/plan/Shader与Material系统下一阶段计划.md](docs/plan/Shader与Material系统下一阶段计划.md)
5. [docs/plan/SceneViewport_Overlay_Gizmo_Rework_Plan.md](docs/plan/SceneViewport_Overlay_Gizmo_Rework_Plan.md)
6. [tests/TEST_SPEC.md](tests/TEST_SPEC.md)
3. 相关模块的 `CMakeLists.txt`
4. 对应模块最近的测试目录与聚合 target
5. 对应设计文档
额外规则
当前最常用的设计入口
- 如果任务落在某个模块里,先读该模块的 `CMakeLists.txt` 和最近的测试目录。
- `tests/TEST_SPEC.md` 仍然适合作为 GT 图规则和 RHI 边界说明,但 target 名称与目录变化时,始终以当前 `tests/CMakeLists.txt` 和子模块 `CMakeLists.txt` 为准。
- [docs/plan/end/RHI模块设计与实现/RHI模块总览.md](docs/plan/end/RHI模块设计与实现/RHI模块总览.md)
- [docs/plan/Library启动预热与运行时异步加载混合重构计划_2026-04-04.md](docs/plan/Library启动预热与运行时异步加载混合重构计划_2026-04-04.md)
- [docs/plan/Library启动预热与运行时异步加载混合重构计划_进度更新_2026-04-04.md](docs/plan/Library启动预热与运行时异步加载混合重构计划_进度更新_2026-04-04.md)
- [docs/plan/Editor架构说明.md](docs/plan/Editor架构说明.md)
- [docs/plan/Renderer下一阶段_Unity风格Shader体系正式化计划_2026-04-06.md](docs/plan/Renderer下一阶段_Unity风格Shader体系正式化计划_2026-04-06.md)
- [docs/plan/XCUI完整架构设计与执行计划.md](docs/plan/XCUI完整架构设计与执行计划.md)
- [docs/plan/XCUI_Phase_Status_2026-04-05.md](docs/plan/XCUI_Phase_Status_2026-04-05.md)
- [docs/plan/C#脚本模块下一阶段计划.md](docs/plan/C%23脚本模块下一阶段计划.md)
- [tests/TEST_SPEC.md](tests/TEST_SPEC.md)
- [tests/UI/TEST_SPEC.md](tests/UI/TEST_SPEC.md)
## 3. 当前工程状态
已归档但当前仍常用的背景文档:
### 3.1 Engine 与工程布局
- [Library资产导入与缓存系统收口计划归档](docs/used/Library资产导入与缓存系统收口计划_完成归档_2026-04-03.md)
- [Shader与Material系统下一阶段计划归档](docs/used/Shader与Material系统下一阶段计划_完成归档_2026-04-04.md)
- [SceneViewport Overlay / Gizmo 重构计划(归档)](docs/used/SceneViewport_Overlay_Gizmo_Rework_Plan_完成归档_2026-04-04.md)
- [Unity式 SceneView Gizmo 正式化方案(归档)](docs/used/Unity式SceneView_Gizmo系统完整审查与正式化重构方案_完成归档_2026-04-06.md)
当前仓库已经不在“先把底层 sample 跑起来”的阶段,而是已经形成
如果任务落在 API 文档
- `RHI`
- `Rendering`
- `Editor viewport`
- `AssetDatabase / Library`
- `Mono scripting`
1. 先检查 `docs/plan/` 下有没有日期更晚的 API 相关计划或归档;当前活跃任务池是 [docs/plan/API文档实时同步任务池_2026-04-03.md](docs/plan/API文档实时同步任务池_2026-04-03.md)。这份任务池目前已经推进到第三轮 `T01-T20` 全部完成,结构审计保持全绿,但开始新一轮前仍要先确认是否又追加了新任务块。
2. 再看 [docs/api-skill.md](docs/api-skill.md)。
3. 再看 `docs/api/_meta/rebuild-status.md`
4. 一次只认领一个任务块,先改状态为 `DOING`,只写自己任务块允许的范围。
这几条主线之间的真实对接。
## 2. 当前工程事实
`Core/Asset/AssetDatabase` 现在是当前工程的重要基线,不是预研代码。它已经负责:
- 顶层 `CMakeLists.txt` 当前纳入 `engine/``editor/``new_editor/``managed/``mvs/RenderDoc/``tests/`
- `engine/` 构建静态库 `XCEngine``editor/` 构建 `XCEditor`,但输出文件名仍是 `editor/bin/<Config>/XCEngine.exe`
- `new_editor/` 当前构建 `XCUIEditorLib``XCUIEditorHost`;启用 `XCENGINE_BUILD_XCUI_EDITOR_APP` 时会输出 `new_editor/bin/<Config>/XCUIEditor.exe`
- editor 默认把仓库内的 `project/` 识别为工程根目录,也支持 `--project <path>` 覆盖。
- 当前工程真实使用 `Assets/ + .meta + Library/` 的项目布局;`project/Library/` 是当前 workflow 的一部分,不是可随手忽略的垃圾目录。
- Mono 运行时与 editor 的脚本类发现都从 `<project>/Library/ScriptAssemblies/` 加载程序集。
- 当前根目录里没有 `native` 占位项;更新目录树或迁移旧文档时,不要继续传播这条过期事实。
- 当前工作机是 Windows 文件系统;文档里统一写 `tests/Editor/``tests/Core/``tests/Scripting/` 等真实目录名,不要制造大小写噪音。
- `engine/CMakeLists.txt` 当前对 Vulkan 是硬依赖;`editor/``tests/` 首次配置会拉取 `ImGui``googletest`
- 扫描 `Assets/`
- 为资源生成 `.meta`
- 维护 `Library/SourceAssetDB/assets.db`
- 维护 `Library/ArtifactDB/artifacts.db`
- 维护哈希化 `Library/Artifacts/`
## 3. 子系统现状
因此:
### 3.1 Core / Asset / Resources
- `project/Library/` 虽然可重建,但在当前 workflow 里不是可以随手忽略的“垃圾目录”
- 涉及资源导入、meta、artifact、脚本程序集发现时不要擅自删除 `project/Library/``.meta` 文件来“清环境”。
- `Core/Asset/AssetDatabase``AssetImportService``ProjectAssetIndex``ResourceManager` 已形成正式导入与运行时加载链路
- 当前真实职责包括:
- 扫描 `Assets/`
- 为资源生成 `.meta`
- 维护 `Library/SourceAssetDB/assets.db`
- 维护 `Library/ArtifactDB/artifacts.db`
- 写入 `Library/Artifacts/`
- 最新活跃设计文档已经把下一阶段目标收口到“启动阶段前置恢复索引 / 缓存状态,运行时按需异步加载 payload”。
- `BootstrapProject()` / `BootstrapProjectAssets()` 已正式接入启动链路接下来重点是指标固化、UI 状态拆分和剩余同步兜底点审计。
- 当前还不要把 `AssetImportService``ProjectAssetIndex``ResourceManager` 的职责重新揉回一团;先看 [docs/plan/Library启动预热与运行时异步加载混合重构计划_2026-04-04.md](docs/plan/Library启动预热与运行时异步加载混合重构计划_2026-04-04.md)。
- 材质 artifact 当前是 schema v2
- `kMaterialArtifactSchemaVersion = 2`
- magic `XCMAT02`
- texture binding 序列化三元组是 `binding name + encoded AssetRef + optional path`
- `Material` 当前同时维护 loaded handle、稳定 `AssetRef` 与 path 元数据;`GetTexture()` 首次访问时可触发懒加载,`GetTextureBindingLoadedTexture()` 不触发加载。
### 3.2 Rendering
当前 `engine/include/XCEngine/Rendering/``engine/src/Rendering/` 已经形成正式主链:
- `SceneRenderer`
- `CameraRenderer`
- `RenderPipeline`
- `RenderSceneExtractor`
- `RenderResourceCache`
- `SceneRenderRequestPlanner`
- `RenderSurface`
当前已经落地并应被视为正式能力的内容包括:
- 内建 forward 主几何渲染
- `ObjectId` 渲染与 editor picking
- `BuiltinInfiniteGridPass`
- `BuiltinObjectIdOutlinePass`
- `CameraRenderRequest::overlayPasses`
当前 Renderer 的下一阶段主线不是 render graph而是
- shader asset contract
- material GPU binding
- builtin pass contract
- renderer-owned feature contract
对应设计文档是 [docs/plan/Shader与Material系统下一阶段计划.md](docs/plan/Shader与Material系统下一阶段计划.md)。
- 当前正式主链是 `SceneRenderer -> CameraRenderer -> RenderPipeline`
- 现有正式能力包括:
- forward 主几何渲染
- `ObjectId` 渲染与 editor picking
- `BuiltinInfiniteGridPass`
- `BuiltinObjectIdOutlinePass`
- `CameraRenderRequest::postScenePasses`
- `CameraRenderRequest::overlayPasses`
- 当前主线不是 render graph而是 shader / material contract、builtin pass contract 和 renderer-owned feature contract。
### 3.3 Editor
当前 editor 的事实:
- editor 仍然是 `D3D12` 宿主应用。
- Scene/Game viewport 已通过引擎 `Rendering + RHI` 输出离屏纹理,再由 editor 宿主接入 ImGui。
- 当前 Scene View 主链已经显式拆成:
- `SceneViewportChrome`
- `SceneViewportInteractionFrame`
- `SceneViewportNavigation`
- `SceneViewportTransformGizmoCoordinator`
- `ViewportHostService`
- `editor/src/Viewport/` 当前稳定存在的关键入口包括:
- `SceneViewportCameraController`
- `SceneViewportChrome`
- `SceneViewportEditorModes`
- `SceneViewportHudOverlay`
- `SceneViewportInteractionActions`
- `SceneViewportInteractionFrame`
- `SceneViewportInteractionResolver`
- `SceneViewportMoveGizmo`
- `SceneViewportNavigation`
- `SceneViewportOverlayBuilder`
- `SceneViewportOverlayFrameCache`
- `SceneViewportOverlayProviders`
- `SceneViewportOverlaySpriteResources`
- `SceneViewportPassSpecs`
- `SceneViewportPicker`
- `SceneViewportResourcePaths`
- `SceneViewportRotateGizmo`
- `SceneViewportScaleGizmo`
- `SceneViewportShaderPaths`
- `SceneViewportTransformGizmoCoordinator`
- `SceneViewportTransformGizmoFrameBuilder`
- `ViewportHostRenderFlowUtils`
- `ViewportHostRenderTargets`
- `ViewportHostSurfaceUtils`
- `ViewportObjectIdPicker`
- `SceneViewportShaderPaths.h` 当前主要是兼容 include路径真实 owner 已转到 `SceneViewportResourcePaths.h`
- `tests/Editor/` 已有 `test_scene_viewport_chrome.cpp``test_scene_viewport_interaction_frame.cpp``test_scene_viewport_navigation.cpp``test_scene_viewport_transform_gizmo_coordinator.cpp`,不要再按“这些 helper 还没落地”理解当前 editor。
- 它仍然是 `D3D12` 宿主应用。
- Scene/Game viewport 已经通过引擎 `Rendering + RHI` 输出离屏纹理。
- `ViewportHostService` 是 editor 与 renderer 的关键接线层。
- object-id picking、selection outline、scene icon / gizmo overlay 已经进入正规化收口阶段。
### 3.4 XCUI / New Editor
当前 `editor/src/Viewport/` 已经存在:
- `new_editor/` 是当前 `XCUI` editor sandbox 主线;旧 `editor/` 的整体替换仍处于延后状态,不要把 `XCUI` 计划误读成“已经整体替换现有 editor”。
- 当前宿主分层是:
- `XCUIEditorLib`
- `XCUIEditorHost`
- `XCUIEditorApp`(可选应用壳)
- 共享 UI core、runtime screen host 与 widget 基础能力主要沉淀在 `engine/include/XCEngine/UI/``engine/src/UI/``new_editor/` 负责 XCUI editor 壳、宿主与 widget sandbox。
- XCUI / new_editor 的测试规范以 [tests/UI/TEST_SPEC.md](tests/UI/TEST_SPEC.md) 为准;根目录虽然有 `tests/NewEditor/`,但当前具体测试实现主要放在 `tests/UI/` 下。
- `SceneViewportOverlayBuilder`
- `SceneViewportEditorOverlayPass`
- `SceneViewportPicker`
- `SceneViewportMoveGizmo`
- `SceneViewportRotateGizmo`
- `SceneViewportScaleGizmo`
### 3.5 Scripting
这意味着
- 当前脚本链路由三部分组成
- `managed/XCEngine.ScriptCore/`
- `managed/GameScripts/`
- `project/Assets/**/*.cs`
- 构建结果分两类:
- `xcengine_managed_assemblies` 生成引擎示例程序集
- `xcengine_project_managed_assemblies` 生成项目脚本程序集,并复制到 `project/Library/ScriptAssemblies/`
- `project/Library/ScriptAssemblies/` 里的当前快照可能落后于目标态;判断“成功构建后应有哪些程序集”时,以 `managed/CMakeLists.txt``editor/src/Scripting/EditorScriptAssemblyBuilder.cpp` 与对应测试为准,而不是只看工作树里此刻存着什么。
- `ScriptEngine` 当前已具备脚本类发现、字段元数据读取、默认值读取、stored override 管理和运行时 managed field 同步。
- Inspector 侧已经存在 `ScriptComponentEditor`;脚本相关改动通常同时影响 `engine/src/Scripting/``managed/``project/Assets/Scripts/``editor/src/ComponentEditors/``tests/Scripting/` / `tests/Editor/`
- editor 是宿主,不是第二套 renderer。
- 新的世界空间 overlay不应继续堆回 `SceneViewPanel.cpp` 的 ImGui world overlay 路径。
- 优先沿 `overlayPasses -> overlay builder -> canonical frame data -> overlay pass` 方向扩展。
### 3.4 Scripting
当前脚本链路由三部分组成:
- `managed/XCEngine.ScriptCore/`
- `managed/GameScripts/`
- `project/Assets/**/*.cs`
构建结果分两类:
- `xcengine_managed_assemblies` 生成引擎示例程序集
- `xcengine_project_managed_assemblies` 生成项目脚本程序集,并复制到 `project/Library/ScriptAssemblies/`
`ScriptEngine` 当前已经具备:
- 脚本类发现
- 字段元数据读取
- 默认值读取
- stored override 管理
- 运行时 managed field 同步
Inspector 侧已经存在 `ScriptComponentEditor`,因此脚本相关改动通常同时影响:
- `engine/src/Scripting/`
- `managed/`
- `project/Assets/Scripts/`
- `editor/src/ComponentEditors/`
- `tests/Scripting/`
- `tests/Editor/test_script_component_editor_utils.cpp`
### 3.5 Tests
### 3.6 Tests
当前测试主目录包括:
@@ -147,14 +155,17 @@ Inspector 侧已经存在 `ScriptComponentEditor`,因此脚本相关改动通
- `tests/Core/`
- `tests/Debug/`
- `tests/Editor/`
- `tests/Fixtures/`
- `tests/Input/`
- `tests/Memory/`
- `tests/NewEditor/`
- `tests/Rendering/`
- `tests/Resources/`
- `tests/RHI/`
- `tests/Scene/`
- `tests/Scripting/`
- `tests/Threading/`
- `tests/UI/`
需要特别记住的聚合 target
@@ -162,6 +173,9 @@ Inspector 侧已经存在 `ScriptComponentEditor`,因此脚本相关改动通
- `rendering_all_tests`
- `rendering_phase_regression`
- `editor_tests`
- `core_ui_tests`
- `editor_ui_tests`
- `runtime_ui_tests`
- `scripting_tests`
## 4. 不可忽视的硬约束
@@ -175,7 +189,18 @@ Inspector 侧已经存在 `ScriptComponentEditor`,因此脚本相关改动通
不要沿用“计划中但未落地”的旧说法。
### 4.2 RHI 抽象层与后端层必须分层
### 4.2 不要随手清空 `project/Library/` 或删 `.meta`
`project/Library/` 虽然可重建,但它在当前 workflow 里承载:
- `SourceAssetDB`
- `ArtifactDB`
- `Artifacts`
- `ScriptAssemblies`
涉及资源导入、artifact、脚本程序集发现时不要把删库重建当作默认修复手段。
### 4.3 RHI 抽象层与后端层必须分层
`tests/RHI/unit/``tests/RHI/integration/` 只能依赖公共 RHI 抽象。
@@ -187,7 +212,7 @@ Inspector 侧已经存在 `ScriptComponentEditor`,因此脚本相关改动通
如果必须这么做,优先修 RHI而不是污染测试边界。
### 4.3 Editor 是宿主,不是第二套渲染器
### 4.4 Editor 是宿主,不是第二套渲染器
如果 viewport、outline、picking 或 gizmo 有问题,优先判断:
@@ -195,28 +220,25 @@ Inspector 侧已经存在 `ScriptComponentEditor`,因此脚本相关改动通
-`RenderSurface` / RHI 输出问题
- 还是 editor 宿主接线问题
不要因为 editor 当前是 D3D12 host就把问题草率塞回 editor 私有渲染逻辑。
不要因为 editor 当前是 D3D12 host就把问题草率塞回 editor 私有渲染逻辑。
### 4.4 不要再扩写 ImGui world overlay
### 4.5 不要再把新逻辑堆回旧的 ImGui world overlay
当前 viewport overlay / gizmo 已有明确收口方向。新功能若仍然继续堆在:
新的世界空间 overlay / gizmo 逻辑如果仍然直接堆在:
- `SceneViewPanel.cpp`
- `SceneViewportOverlayRenderer.cpp` 的 ImGui world draw 路径
- panel 层临时拼的 immediate draw / ad-hoc overlay 路径
通常就是逆着当前架构方向在走。
优先入口是:
通常就是逆着当前架构方向在走。优先入口是:
- `CameraRenderRequest::overlayPasses`
- `SceneViewportOverlayBuilder`
- `SceneViewportEditorOverlayPass`
- `SceneViewportTransformGizmoCoordinator`
### 4.5 backpack 导入行为必须统一
### 4.6 `backpack` 导入行为必须统一
这是仓库里已经踩过的真实坑。
`backpack` 相关资源在以下路径中的导入行为必须保持一致:
这是仓库里已经踩过的真实坑。`backpack` 相关资源在以下路径中的导入行为必须保持一致:
- editor
- runtime
@@ -225,7 +247,7 @@ Inspector 侧已经存在 `ScriptComponentEditor`,因此脚本相关改动通
不要只在局部路径里额外加 `MeshImportFlags::FlipUVs` 之类的补丁。
### 4.6 `mvs/` 不是长期主线模块
### 4.7 `mvs/` 不是长期主线模块
`mvs/` 里有样例、研究和工具,但当前正式引擎逻辑的长期落点应优先是:
@@ -236,6 +258,20 @@ Inspector 侧已经存在 `ScriptComponentEditor`,因此脚本相关改动通
不要把正式渲染逻辑重新堆回 sample 子树长期存活。
### 4.8 API 文档任务必须看最新计划并复跑审计
只要任务涉及 `docs/api/`
1. 先检查 `docs/plan/` 下有没有更新日期更晚的 API 计划或归档。
2. 以最新任务池和 [docs/api-skill.md](docs/api-skill.md) 为执行规范。
3. 改完必须重新执行:
```powershell
python -B docs/api/_tools/audit_api_docs.py
```
如果审计没回绿,不算完成。
## 5. 推荐构建与验证入口
### 5.1 配置
@@ -268,7 +304,7 @@ cmake --build build --config Debug --target scripting_tests
-`engine/RHI`:先跑 `rhi_abstraction_tests``rhi_backend_tests`,再决定是否扩展到 `rhi_all_tests`
-`engine/Rendering`:先跑 `rendering_unit_tests` 和最相关的 `rendering_integration_*`,必要时再跑 `rendering_phase_regression`
-`editor/Viewport` 或 Inspector先跑 `editor_tests`
-`editor/Viewport``editor/UI` 或 Inspector先跑 `editor_tests`
-`engine/Scripting``managed/``project/Assets/Scripts/`:先构建 `xcengine_project_managed_assemblies`,再跑 `scripting_tests`
- 改资源导入、`.meta`、artifact 相关逻辑:优先跑 `tests/Resources/` 里的对应 target
@@ -282,10 +318,12 @@ ctest --test-dir build -C Debug --output-on-failure
- RHI 抽象与后端:`engine/include/XCEngine/RHI/``engine/src/RHI/``tests/RHI/`
- Rendering 主链与 pass`engine/include/XCEngine/Rendering/``engine/src/Rendering/``tests/Rendering/`
- Editor viewport / gizmo / picking`editor/src/Viewport/``editor/src/panels/SceneViewPanel.cpp``tests/Editor/`
- 资源导入与工程布局:`engine/include/XCEngine/Core/Asset/``engine/src/Core/Asset/``editor/src/Managers/ProjectManager.cpp``project/Assets/``project/Library/`
- Material / shader / artifact`engine/include/XCEngine/Resources/Material/``engine/src/Resources/Material/``engine/include/XCEngine/Core/Asset/ArtifactFormats.h``tests/Resources/Material/`
- Editor viewport / gizmo / picking`editor/src/Viewport/``editor/src/panels/SceneViewPanel.cpp``tests/Editor/`
- Editor actions / project routing`editor/src/Actions/``editor/src/Commands/``editor/src/Core/``editor/src/Managers/``tests/Editor/test_action_routing.cpp`
- 脚本运行时与程序集:`engine/include/XCEngine/Scripting/``engine/src/Scripting/``managed/``project/Assets/Scripts/``tests/Scripting/`
- 默认工程与项目描述:`project/Project.xcproject``editor/src/Core/ProjectRootResolver.h``editor/src/Utils/ProjectFileUtils.h`
- API 文档:`docs/api/XCEngine/``docs/api/_guides/``docs/api/_tools/audit_api_docs.py``docs/plan/API文档实时同步任务池_2026-04-03.md`
## 7. 适合当前仓库的工作方式
@@ -295,4 +333,4 @@ ctest --test-dir build -C Debug --output-on-failure
4. 目录、target、入口、文档名改了就同步更新 README / AGENT / 相关说明。
5. 如果任务会有意重建 `project/Library/`、脚本程序集或 `.meta`,在结果里明确说明哪些文件是有意生成的。
这份文档的作用是给 agent 一“当前真实工程长什么样”的基线。它本身也必须随着工程演进一起维护,不能再落回旧状态说明。
这份文档的作用是给 agent 一“当前真实工程长什么样”的基线。它本身也必须随着工程演进一起维护,不能再落回旧状态说明。

697
README.md
View File

@@ -1,16 +1,27 @@
# XCEngine
XCEngine 是一个 Windows 优先、编辑器优先的模块化 C++ 游戏引擎工作区。当前主线已经形成 `RHI -> Rendering -> Editor Viewport -> AssetDatabase/Library -> Mono Scripting` 的可运行闭环,不再只是示例代码集合。
XCEngine 是一个 Windows 优先、编辑器优先的模块化 C++ 游戏引擎工作区。当前主线已经形成 `RHI -> Rendering -> Editor Viewport -> AssetDatabase/Library -> Mono Scripting` 的可运行闭环,不再只是若干独立 sample 的集合。
这份 README 面向引擎用户:关注怎么进入项目、怎么构建、当前仓库各目录分别负责什么。面向构建本引擎的 coding agent请看 [AGENT.md](AGENT.md)。
这份 README 面向引擎用户:重点回答项目是什么、当前能做什么、怎么构建、怎么启动,以及当前仓库各目录分别承担什么职责。面向参与引擎实现和文档维护的 coding agent请看 [AGENT.md](AGENT.md)。
## 项目定位
- `engine/` 提供静态库 `XCEngine`,包含 `RHI``Rendering``Resources``Scene``Scripting` 等核心模块。
- `editor/` 提供桌面编辑器 `XCEditor`,输出文件名为 `XCEngine.exe`,默认打开仓库内的 `project/`
- `project/` 是当前随仓库维护的示例工程,已经采用 `Assets/ + .meta + Library/` 的工程布局
- `engine/` 构建静态库 `XCEngine`,包含 `RHI``Rendering``Resources``Scene``Scripting` 等核心模块。
- `editor/` 构建桌面编辑器 `XCEditor`,输出文件名`XCEngine.exe`,默认打开仓库内的 `project/`
- `new_editor/` 维护基于 `XCUI` 的新宿主与 UI sandbox当前与旧 `editor/` 并行演进,应用输出名为 `XCUIEditor.exe`
- `project/` 是随仓库维护的示例工程,已经采用 `Assets/ + .meta + Library/` 的工程布局。
- `managed/` 负责 `XCEngine.ScriptCore.dll`、示例 `GameScripts.dll` 以及项目脚本程序集构建。
- `tests/` 覆盖 Engine、RHI、Rendering、Editor、Scripting 等主模块。
- `tests/` 覆盖 Engine、RHI、Rendering、Editor、Scripting、XCUI 等主线模块。
## 当前能力概览
- `RHI` 当前维护 `D3D12 / OpenGL / Vulkan` 三后端。
- `Rendering` 已形成 `SceneRenderer -> CameraRenderer -> RenderPipeline` 主链,支持 `ObjectId``InfiniteGrid``Outline``overlayPasses` 等能力。
- `Core/Asset` 已经不是简单加载器,当前真实维护 `Assets/.meta/Library` 风格的 `AssetDatabase`、artifact 缓存和项目资源索引。
- `Library` 当前已经采用“启动阶段恢复索引与缓存状态 + 运行时按需异步恢复 payload”的混合工作流`BootstrapProject()` 已接入正式启动链路。
- `Material` 与材质 artifact 已经进入稳定格式阶段,当前 `.xcmat` 使用 schema v2。
- 编辑器 Scene/Game viewport 已通过引擎 `Rendering + RHI` 链路渲染到离屏纹理,再接入 ImGui。
- `ScriptComponent` 已打通脚本类发现、字段元数据读取、字段编辑和运行时字段同步。
## 环境要求
@@ -60,7 +71,7 @@ cmake --build build --config Debug --target xcengine_project_managed_assemblies
- `XCEngine` 是引擎静态库。
- `XCEditor` 是编辑器 target输出文件名仍为 `editor/bin/<Config>/XCEngine.exe`
- `xcengine_managed_assemblies` 生成 `managed/` 示例托管程序集。
- `xcengine_managed_assemblies` 生成 `managed/` 下的示例托管程序集。
- `xcengine_project_managed_assemblies` 会扫描 `project/Assets/**/*.cs`,并把结果输出到 `project/Library/ScriptAssemblies/`
### 3. 启动编辑器
@@ -75,7 +86,7 @@ cmake --build build --config Debug --target xcengine_project_managed_assemblies
.\editor\bin\Debug\XCEngine.exe --project D:\Path\To\MyProject
```
如果 Inspector 里看不到 C# 脚本类,先确认 `project/Library/ScriptAssemblies/` 中已经生成:
如果 Inspector 里看不到 C# 脚本类,先确认 `project/Library/ScriptAssemblies/` 中已经生成下面这 3 个程序集。当前工作树如果暂时缺少 `XCEngine.ScriptCore.dll`,通常说明项目脚本程序集还没有按最新状态完成重建
- `XCEngine.ScriptCore.dll`
- `GameScripts.dll`
@@ -102,311 +113,413 @@ cmake --build build --config Debug --target scripting_tests
### Engine
- `RHI` 正式维护 `D3D12 / OpenGL / Vulkan` 三后端。
- `Rendering` 已形成 `SceneRenderer -> CameraRenderer -> RenderPipeline` 主链,包含 `ObjectId``InfiniteGrid``Outline``overlayPasses` 等能力
- `Resources``Core/Asset`不只是简单加载器,当前已经具备 `Assets/.meta/Library` 风格的 `AssetDatabase` 与 artifact 缓存
- `RHI` 已经不是单后端实验代码,而是 `D3D12 / OpenGL / Vulkan` 三后端并行维护
- `Rendering` 当前正式主线是 `SceneRenderer -> CameraRenderer -> RenderPipeline`,而不是 sample 私有渲染分支
- `Resources``Core/Asset`形成项目资源导入、artifact 缓存和运行时加载的统一链路
### Editor
- 当前 editor 是 `D3D12` 宿主应用,但 Scene/Game viewport 已通过引擎 `Rendering + RHI` 链路渲染到离屏纹理,再接入 ImGui
- `Viewport` 相关代码已经进入 overlay/gizmo 正规化阶段,`SceneViewportOverlayBuilder``SceneViewportEditorOverlayPass``ObjectId` picking 都已落地
- Inspector 已支持 `ScriptComponent` 的脚本类选择、字段元数据读取、字段重置与基础编辑
- 当前 editor 是 `D3D12` 宿主应用,但 Scene/Game viewport 渲染本身走引擎 `Rendering + RHI`
- `Viewport` 子系统当前已经拆成更清晰的链路:`SceneViewportChrome -> SceneViewportInteractionFrame -> SceneViewportNavigation -> SceneViewportTransformGizmoCoordinator -> ViewportHostService`
- `tests/Editor/` 已覆盖 `SceneViewportChrome``SceneViewportInteractionFrame``SceneViewportNavigation``SceneViewportTransformGizmoCoordinator` 等新 helper
### Project & Scripting
- 示例工程位于 `project/`当前工程文件是 `Project.xcproject`,启动场景为 `Assets/Scenes/Main.xc`
- `project/Assets/` 现已包含 `.meta` 文件,`project/Library/` 则维护 `SourceAssetDB``ArtifactDB``Artifacts``ScriptAssemblies`
- `managed/` 会生成引擎脚本 API 与示例脚本程序集,项目资产下的 `.cs` 文件也会单独编译为项目脚本程序集。
- 示例工程位于 `project/`,工程文件是 `Project.xcproject`,启动场景为 `Assets/Scenes/Main.xc`
- `project/Library/` 虽然是生成目录,但在当前 workflow 里承担 `SourceAssetDB``ArtifactDB``Artifacts``ScriptAssemblies` 等关键角色
- `managed/` 会生成引擎脚本 API 与示例脚本程序集,项目资产下的 `.cs` 文件也会单独编译为项目脚本程序集。
### Tests
- `tests/` 已覆盖 `Core``Memory``Threading``Scene``Resources``RHI``Rendering``Editor``Scripting` 等模块。
- `tests/Rendering/` 当前已包含 `backpack_scene``backpack_lit_scene``camera_stack_scene``offscreen_scene`集成场景。
- `tests/RHI/` 同时维护抽象层测试与后端专用测试`D3D12 / OpenGL / Vulkan` 都有独立子树
- `tests/` 已覆盖 `Core``Memory``Threading``Scene``Resources``RHI``Rendering``Editor``Scripting`主线模块。
- `tests/Rendering/` 当前维护一组集成场景测试
- `tests/RHI/` 同时维护抽象层测试与后端专用测试。
## 完整目录结构
以下目录树当前工程入口为准,保留了当前 workflow 已经实使用的生成目录;省略 `.git/``build/_deps/`临时文件
以下目录树当前工作树整理,保留了当前 workflow 已经实使用的生成目录与关键子树;省略 `.git/``build/_deps/`部分重复资源文件。像 `project/.xceditor/thumbs/``project/Library/Artifacts/` 这类会随本地导入状态变化的内容,用结构模式表示
```text
XCEngine/
├── .gitattributes
├── .gitignore
├── AGENT.md
├── CMakeLists.txt
├── README.md
├── build/ # 本地 CMake 构建输出
├── docs/
│ ├── api/
│ ├── XCEngine/
│ ├── _guides/
│ ├── _meta/
│ ├── _tools/
│ └── main.md
│ ├── issues/
├── plan/
│ ├── end/
│ │ │ ├── RHI模块设计与实现/
│ │ │ ├── RHIFence.md
│ └── RHI模块总览.md
└── 编辑器与运行时分层架构设计.md
│ ├── 开题报告和任务书/
│ ├── 旧版题目/
│ │ ├── API文档并行更新任务池_2026-04-02.md
│ ├── C#脚本模块的设计与实现.md
│ ├── Editor架构说明.md
│ ├── SceneViewport_Overlay_Gizmo_Rework_Plan.md
├── Shader与Material系统下一阶段计划.md
│ ├── Unity SRP API参考文档.md
│ ├── Unity式Library资产导入与缓存系统重构方案.md
│ ├── Unity式Tick系统与PlayMode运行时方案.md
│ ├── Unity式Tick系统与PlayMode运行时方案-阶段进展.md
│ │ └── Unity绝区零开发文档还原版.md
├── used/
│ ├── api-skill.md
│ ├── blueprint-skill.md
└── blueprint.md
├── editor/
├── CMakeLists.txt
│ ├── README.md
├── resources/
│ └── Icons/
├── src/
│ │ ├── Actions/
│ ├── Commands/
│ │ ├── ComponentEditors/
│ ├── Core/
│ ├── Layers/
│ │ ├── Layout/
│ │ ├── Managers/
│ │ ├── panels/
├── Platform/
│ ├── UI/
│ ├── Utils/
│ ├── Viewport/
│ │ ├── Passes/
│ │ ├── SceneViewportOverlayBuilder.cpp
│ ├── SceneViewportOverlayBuilder.h
│ │ │ ├── SceneViewportOverlayRenderer.cpp
│ ├── SceneViewportOverlayRenderer.h
│ │ ├── SceneViewportPicker.cpp
│ ├── SceneViewportPicker.h
│ ├── SceneViewportMoveGizmo.cpp
│ ├── SceneViewportMoveGizmo.h
│ ├── SceneViewportRotateGizmo.cpp
│ ├── SceneViewportRotateGizmo.h
│ ├── SceneViewportScaleGizmo.cpp
│ ├── SceneViewportScaleGizmo.h
│ ├── ViewportHostRenderFlowUtils.h
│ └── ViewportHostService.h
├── Application.cpp
├── Application.h
├── EditorApp.rc
├── Theme.cpp
├── Theme.h
└── main.cpp
│ └── bin/ # 编辑器输出目录,输出名为 XCEngine.exe
├── engine/
│ ├── CMakeLists.txt
│ ├── include/
└── XCEngine/
│ │ ├── Audio/
│ │ ├── Components/
│ │ ├── Core/
│ ├── Asset/
│ │ │ ├── Containers/
│ │ │ ├── IO/
│ └── Math/
├── Debug/
├── Input/
├── Memory/
├── Platform/
│ └── Windows/
├── Rendering/
│ ├── Passes/
│ │ │ ├── Pipelines/
│ │ │ ├── CameraRenderer.h
│ │ │ ├── CameraRenderRequest.h
│ │ │ ├── ObjectIdEncoding.h
│ │ │ ├── ObjectIdPass.h
│ ├── RenderCameraData.h
│ │ │ ├── RenderContext.h
│ │ │ ├── RenderMaterialUtility.h
│ ├── RenderPass.h
│ │ │ ├── RenderPipeline.h
│ │ │ ├── RenderPipelineAsset.h
│ │ │ ├── RenderResourceCache.h
│ │ ├── RenderSceneExtractor.h
│ ├── RenderSceneUtility.h
│ ├── RenderSurface.h
│ │ │ ├── SceneRenderRequestPlanner.h
│ │ ├── SceneRenderRequestUtils.h
│ │ │ ├── SceneRenderer.h
│ │ │ └── VisibleRenderObject.h
├── Resources/
│ │ │ ├── AudioClip/
│ ├── Material/
│ │ │ ├── Mesh/
│ │ ├── Shader/
│ │ │ └── Texture/
├── RHI/
│ ├── D3D12/
│ ├── OpenGL/
│ └── Vulkan/
├── Scene/
├── Scripting/
│ └── Mono/
│ │ └── Threading/
├── src/
├── Audio/
├── Components/
├── Core/
│ ├── Asset/
│ ├── Containers/
│ ├── IO/
│ └── Math/
├── Debug/
│ ├── Input/
├── Memory/
├── Platform/
│ │ └── Windows/
├── Rendering/
│ │ ├── Passes/
│ │ └── Pipelines/
├── Resources/
│ ├── AudioClip/
│ ├── Material/
│ │ │ ├── Mesh/
│ │ ├── Shader/
│ │ │ └── Texture/
│ ├── RHI/
│ ├── D3D12/
│ ├── OpenGL/
│ └── Vulkan/
│ │ ├── Scene/
├── Scripting/
│ └── Mono/
└── Threading/
├── third_party/
├── assimp/
├── GLAD/
├── kissfft/
├── renderdoc/
└── stb/
└── tools/
└── renderdoc_parser/
├── managed/
│ ├── CMakeLists.txt
│ ├── GameScripts/
└── XCEngine.ScriptCore/
├── mvs/
│ ├── 3DGS-Unity/
│ ├── D3D12/
├── Music fluctuations/
│ ├── OpenGL/
│ ├── RenderDoc/
│ ├── Res/
│ ├── ui/ # 早期 ImGui + D3D12 UI 原型,非当前正式 editor
└── VolumeRenderer/
├── project/
├── .xceditor/
├── imgui_layout.ini
│ └── thumbs/
│ ├── Assets/
├── Materials/
├── Models/
└── backpack/
│ ├── New Folder/
│ ├── New Folder 1/
│ ├── Scenes/
│ │ │ ├── Backpack.xc
│ │ │ └── Main.xc
│ └── Scripts/
│ │ ├── ProjectScriptProbe.cs
│ │ └── Textures/
│ ├── Library/
│ ├── ArtifactDB/
│ │ ├── Artifacts/
│ ├── ScriptAssemblies/
│ │ │ ├── GameScripts.dll
│ │ ├── mscorlib.dll
│ │ │ └── XCEngine.ScriptCore.dll
│ └── SourceAssetDB/
│ ├── Assets.meta
└── Project.xcproject
├── scripts/
│ └── Run-RendererPhaseRegression.ps1
├── tests/
│ ├── CMakeLists.txt
│ ├── TEST_SPEC.md
├── Components/
├── Core/
│ ├── Asset/
│ │ ├── Containers/
├── IO/
│ └── Math/
├── Debug/
├── Editor/
│ ├── Fixtures/
│ ├── Input/
├── Memory/
├── Rendering/
│ │ ├── integration/
│ │ ├── backpack_lit_scene/
│ │ │ ├── backpack_scene/
│ │ │ ├── camera_stack_scene/
│ │ │ ├── cull_material_scene/
│ │ │ ├── depth_sort_scene/
│ │ ├── material_state_scene/
│ │ │ ├── offscreen_scene/
│ │ ├── textured_quad_scene/
│ │ │ └── transparent_material_scene/
│ └── unit/
├── Resources/
│ ├── AudioClip/
│ ├── Material/
│ ├── Mesh/
├── Shader/
│ │ └── Texture/
├── RHI/
│ ├── D3D12/
│ │ ├── integration/
│ │ └── unit/
│ ├── integration/
│ │ ├── backpack/
│ │ ├── fixtures/
│ │ ├── minimal/
│ │ │ ├── quad/
│ │ ├── sphere/
│ │ │ └── triangle/
│ ├── OpenGL/
│ │ ├── integration/
│ │ └── unit/
│ │ ├── unit/
│ │ └── Vulkan/
│ │ ├── integration/
└── unit/
├── Scene/
│ ├── Scripting/
└── Threading/
├── 参考/
├── Fermion/
├── TransformGizmo/
├── unity editor/
│ ├── unity-editor-icons/
│ ├── unity-icons/
│ └── UnityRuntimeSceneGizmo-master/
└── .vscode/
|- .gitattributes
|- .gitignore
|- AGENT.md
|- CMakeLists.txt
|- README.md
|- build/ # 本地 CMake 构建输出
|- docs/
| |- api/
| | |- XCEngine/
| | |- _guides/
| | |- _meta/
| | |- _tools/
| | `- main.md
| |- issues/
| | `- Editor模块_Console面板错误绑定fallback sink导致运行时日志不显示4.3.md
| |- plan/
| | |- end/
| | | |- RHI模块设计与实现/
| | | | |- RHIFence.md
| | | | `- RHI模块总览.md
| | | `- 编辑器与运行时分层架构设计.md
| | |- 开题报告和任务书/
| | |- 旧版题目/
| | |- API文档实时同步任务池_2026-04-03.md
| | |- C#脚本模块下一阶段计划.md
| | |- Editor架构说明.md
| | |- Library启动预热与运行时异步加载混合重构计划_2026-04-04.md
| | |- Library启动预热与运行时异步加载混合重构计划_进度更新_2026-04-04.md
| | |- Renderer下一阶段_Unity风格Shader体系正式化计划_2026-04-06.md
| | |- Unity SRP API参考文档.md
| | |- XCUI_Phase_Status_2026-04-05.md
| | |- XCUI完整架构设计与执行计划.md
| | `- Unity绝区零开发文档还原版.md
| |- used/ # 历史材料、归档计划与截图
| | |- API文档实时同步任务池_2026-04-03_第一轮归档.md
| | |- API文档实时同步任务池_2026-04-03_第二轮归档.md
| | |- C#脚本模块的设计与实现_阶段一归档_2026-04-03.md
| | |- Library资产导入与缓存系统收口计划_完成归档_2026-04-03.md
| | |- Renderer结构收口与代码正式化计划_完成归档_2026-04-05.md
| | |- SceneViewport_Overlay_Gizmo_Rework_Plan_完成归档_2026-04-04.md
| | |- Shader与Material系统下一阶段计划_完成归档_2026-04-04.md
| | |- Unity式SceneView_Gizmo系统完整审查与正式化重构方案_完成归档_2026-04-06.md
| | |- Unity式Tick系统与PlayMode运行时方案-阶段进展.md
| | `- Unity式Tick系统与PlayMode运行时方案.md
| |- api-skill.md
| |- blueprint-skill.md
| `- blueprint.md
|- editor/
| |- CMakeLists.txt
| |- README.md
| |- bin/ # 编辑器输出目录,产物名为 XCEngine.exe
| |- resources/
| | `- Icons/
| `- src/
| |- Actions/
| |- Commands/
| |- ComponentEditors/
| |- Core/
| |- Layers/
| |- Layout/
| |- Managers/
| |- panels/
| | |- ConsolePanel.cpp
| | |- ConsolePanel.h
| | |- GameViewPanel.cpp
| | |- GameViewPanel.h
| | |- HierarchyPanel.cpp
| | |- HierarchyPanel.h
| | |- InspectorPanel.cpp
| | |- InspectorPanel.h
| | |- MenuBar.cpp
| | |- MenuBar.h
| | |- Panel.cpp
| | |- Panel.h
| | |- PanelCollection.h
| | |- ProjectPanel.cpp
| | |- ProjectPanel.h
| | |- SceneViewPanel.cpp
| | |- SceneViewPanel.h
| | `- ViewportPanelContent.h
| |- Platform/
| |- Scripting/
| |- UI/
| |- Utils/
| |- Viewport/
| | |- Passes/
| | | |- SceneViewportEditorOverlayPass.cpp
| | | |- SceneViewportEditorOverlayPass.h
| | | |- SceneViewportGridPass.cpp
| | | |- SceneViewportGridPass.h
| | | |- SceneViewportSelectionOutlinePass.cpp
| | | `- SceneViewportSelectionOutlinePass.h
| | |- IViewportHostService.h
| | |- SceneViewportCameraController.h
| | |- SceneViewportChrome.cpp
| | |- SceneViewportChrome.h
| | |- SceneViewportEditorModes.h
| | |- SceneViewportEditorOverlayData.h
| | |- SceneViewportHudOverlay.cpp
| | |- SceneViewportHudOverlay.h
| | |- SceneViewportInteractionActions.cpp
| | |- SceneViewportInteractionActions.h
| | |- SceneViewportInteractionFrame.h
| | |- SceneViewportInteractionResolver.cpp
| | |- SceneViewportInteractionResolver.h
| | |- SceneViewportMath.h
| | |- SceneViewportMoveGizmo.cpp
| | |- SceneViewportMoveGizmo.h
| | |- SceneViewportNavigation.h
| | |- SceneViewportOrientationGizmo.cpp
| | |- SceneViewportOrientationGizmo.h
| | |- SceneViewportOverlayBuilder.cpp
| | |- SceneViewportOverlayBuilder.h
| | |- SceneViewportOverlayFrameCache.cpp
| | |- SceneViewportOverlayFrameCache.h
| | |- SceneViewportOverlayHandleBuilder.h
| | |- SceneViewportOverlayHitTester.h
| | |- SceneViewportOverlayProviders.cpp
| | |- SceneViewportOverlayProviders.h
| | |- SceneViewportOverlaySpriteResources.cpp
| | |- SceneViewportOverlaySpriteResources.h
| | |- SceneViewportPassSpecs.h
| | |- SceneViewportPicker.cpp
| | |- SceneViewportPicker.h
| | |- SceneViewportRenderPlan.h
| | |- SceneViewportResourcePaths.h
| | |- SceneViewportRotateGizmo.cpp
| | |- SceneViewportRotateGizmo.h
| | |- SceneViewportScaleGizmo.cpp
| | |- SceneViewportScaleGizmo.h
| | |- SceneViewportShaderPaths.h
| | |- SceneViewportTransformGizmoCoordinator.cpp
| | |- SceneViewportTransformGizmoCoordinator.h
| | |- SceneViewportTransformGizmoFrameBuilder.h
| | |- ViewportHostRenderFlowUtils.h
| | |- ViewportHostRenderTargets.h
| | |- ViewportHostService.h
| | |- ViewportHostSurfaceUtils.h
| | `- ViewportObjectIdPicker.h
| |- Application.cpp
| |- Application.h
| |- EditorApp.rc
| |- EditorResources.h
| |- Theme.cpp
| |- Theme.h
| `- main.cpp
|- engine/
| |- CMakeLists.txt
| |- include/
| | `- XCEngine/
| | |- Audio/
| | |- Components/
| | |- Core/
| | | |- Asset/
| | | |- Containers/
| | | |- IO/
| | | `- Math/
| | |- Debug/
| | |- Input/
| | |- Memory/
| | |- Platform/
| | | `- Windows/
| | |- Rendering/
| | | |- Passes/
| | | |- Pipelines/
| | | |- CameraRenderer.h
| | | |- CameraRenderRequest.h
| | | |- ObjectIdPass.h
| | | |- RenderPipeline.h
| | | |- RenderSurface.h
| | | `- SceneRenderer.h
| | |- Resources/
| | | |- AudioClip/
| | | |- Material/
| | | |- Mesh/
| | | |- Shader/
| | | `- Texture/
| | |- RHI/
| | | |- D3D12/
| | | |- OpenGL/
| | | `- Vulkan/
| | |- Scene/
| | |- Scripting/
| | | `- Mono/
| | `- Threading/
| |- src/ # 与 include/XCEngine 中的主模块一一对应
| |- third_party/
| | |- assimp/
| | |- GLAD/
| | |- kissfft/
| | |- renderdoc/
| | `- stb/
| `- tools/
| `- renderdoc_parser/
|- managed/
| |- CMakeLists.txt
| |- GameScripts/
| `- XCEngine.ScriptCore/
|- mvs/
| |- 3DGS-Unity/
| |- D3D12/
| |- Music fluctuations/
| |- OpenGL/
| |- RenderDoc/
| |- Res/
| |- ui/ # 早期 ImGui + D3D12 UI 原型
| `- VolumeRenderer/
|- new_editor/
| |- app/
| | |- Host/
| | |- Application.cpp
| | |- Application.h
| | `- main.cpp
| |- bin/ # XCUIEditor.exe 输出目录
| |- include/
| | `- XCEditor/
| | |- Core/
| | `- Widgets/
| |- src/
| | |- Core/
| | |- Platform/
| | `- Widgets/
| |- ui/
| `- CMakeLists.txt
|- project/
| |- .xceditor/
| | |- imgui_layout.ini
| | `- thumbs/
| |- Assets/
| | |- Materials/
| | |- Materials.meta
| | |- Models/
| | |- Models.meta
| | |- New Folder.meta
| | |- New Folder 1.meta
| | |- New Material.mat
| | |- New Material.mat.meta
| | |- Scenes/
| | | |- Backpack.xc
| | | |- Backpack.xc.meta
| | | |- Main.xc
| | | |- Main.xc.meta
| | | |- NewFolder.meta
| | | `- NewFolder/
| | |- Scenes.meta
| | |- Scripts/
| | | |- ProjectScriptProbe.cs
| | | |- ProjectScriptProbe.cs.meta
| | | |- Textures/
| | | |- Textures.meta
| | | |- TickLogProbe.cs
| | | `- TickLogProbe.cs.meta
| | `- Scripts.meta
| |- Library/
| | |- ArtifactDB/
| | | `- artifacts.db
| | |- Artifacts/
| | | `- <bucket>/<artifact-id>/
| | |- ScriptAssemblies/
| | | |- GameScripts.dll
| | | `- mscorlib.dll
| | `- SourceAssetDB/
| | `- assets.db
| |- Assets.meta
| `- Project.xcproject
|- scripts/
| `- Run-RendererPhaseRegression.ps1
|- tests/
| |- CMakeLists.txt
| |- TEST_SPEC.md
| |- Components/
| |- Core/
| | |- Asset/
| | |- Containers/
| | |- IO/
| | `- Math/
| |- Debug/
| |- Editor/
| | |- CMakeLists.txt
| | |- test_action_routing.cpp
| | |- test_application_asset_cache_stub.cpp
| | |- test_builtin_icon_layout_utils.cpp
| | |- test_editor_console_sink.cpp
| | |- test_editor_script_assembly_builder.cpp
| | |- test_editor_script_assembly_builder_utils.cpp
| | |- test_play_session_controller.cpp
| | |- test_play_session_controller_scripting.cpp
| | |- test_scene_viewport_camera_controller.cpp
| | |- test_scene_viewport_chrome.cpp
| | |- test_scene_viewport_interaction_actions.cpp
| | |- test_scene_viewport_interaction_frame.cpp
| | |- test_scene_viewport_interaction_resolver.cpp
| | |- test_scene_viewport_move_gizmo.cpp
| | |- test_scene_viewport_navigation.cpp
| | |- test_scene_viewport_overlay_providers.cpp
| | |- test_scene_viewport_overlay_renderer.cpp
| | |- test_scene_viewport_picker.cpp
| | |- test_scene_viewport_rotate_gizmo.cpp
| | |- test_scene_viewport_scale_gizmo.cpp
| | |- test_scene_viewport_shader_paths.cpp
| | |- test_scene_viewport_transform_gizmo_coordinator.cpp
| | |- test_script_component_editor_utils.cpp
| | |- test_viewport_host_surface_utils.cpp
| | |- test_viewport_object_id_picker.cpp
| | |- test_viewport_render_flow_utils.cpp
| | `- test_viewport_render_targets.cpp
| |- Fixtures/
| | `- Resources/
| |- Input/
| |- Memory/
| |- NewEditor/ # 当前为空的预留测试根目录
| |- Rendering/
| | |- integration/
| | | |- backpack_lit_scene/
| | | |- backpack_scene/
| | | |- camera_stack_scene/
| | | |- cull_material_scene/
| | | |- depth_sort_scene/
| | | |- material_state_scene/
| | | |- offscreen_scene/
| | | |- textured_quad_scene/
| | | `- transparent_material_scene/
| | `- unit/
| |- Resources/
| | |- AudioClip/
| | |- Material/
| | |- Mesh/
| | |- Shader/
| | `- Texture/
| |- RHI/
| | |- D3D12/
| | | |- integration/
| | | `- unit/
| | |- integration/
| | | |- backpack/
| | | |- fixtures/
| | | |- minimal/
| | | |- quad/
| | | |- sphere/
| | | `- triangle/
| | |- OpenGL/
| | | |- integration/
| | | `- unit/
| | |- unit/
| | `- Vulkan/
| | |- integration/
| | `- unit/
| |- Scene/
| |- Scripting/
| |- Threading/
| `- UI/
| |- Core/
| |- Editor/
| |- Runtime/
| `- TEST_SPEC.md
|- 参考/
| |- Fermion/
| |- TransformGizmo/
| |- unity editor/
| |- unity-editor-icons/
| |- unity-icons/
| `- UnityRuntimeSceneGizmo-master/
`- .vscode/
```
## 关键文档入口
- 协作基线与 coding agent 入口:[AGENT.md](AGENT.md)
- 编辑器模块说明:[editor/README.md](editor/README.md)
- 面向引擎实现者和 coding agent 的协作基线:[AGENT.md](AGENT.md)
- API 文档入口:[docs/api/main.md](docs/api/main.md)
- 架构蓝图:[docs/blueprint.md](docs/blueprint.md)
- RHI 基线设计:[docs/plan/end/RHI模块设计与实现/RHI模块总览.md](docs/plan/end/RHI模块设计与实现/RHI模块总览.md)
- 当前 Shader / Material 主线:[docs/plan/Shader与Material系统下一阶段计划.md](docs/plan/Shader与Material系统下一阶段计划.md)
- Scene viewport overlay 重构:[docs/plan/SceneViewport_Overlay_Gizmo_Rework_Plan.md](docs/plan/SceneViewport_Overlay_Gizmo_Rework_Plan.md)
- Library 启动与运行时加载主线:[docs/plan/Library启动预热与运行时异步加载混合重构计划_2026-04-04.md](docs/plan/Library启动预热与运行时异步加载混合重构计划_2026-04-04.md)
- Editor 当前架构:[docs/plan/Editor架构说明.md](docs/plan/Editor架构说明.md)
- 当前 Shader / Material 主线:[docs/plan/Renderer下一阶段_Unity风格Shader体系正式化计划_2026-04-06.md](docs/plan/Renderer下一阶段_Unity风格Shader体系正式化计划_2026-04-06.md)
- XCUI 总体蓝图:[docs/plan/XCUI完整架构设计与执行计划.md](docs/plan/XCUI完整架构设计与执行计划.md)
- XCUI 阶段状态:[docs/plan/XCUI_Phase_Status_2026-04-05.md](docs/plan/XCUI_Phase_Status_2026-04-05.md)
- 测试规范:[tests/TEST_SPEC.md](tests/TEST_SPEC.md)
## 许可
## 许可说明
当前仓库根目录未看到独立的顶层许可证文件。涉及第三方库时,请分别遵循其所在目录中的许可证或随附说明。

View File

@@ -2,199 +2,217 @@
## 目标
本规范用于维护 `XCEngine` 的唯一正式 API 文档树,并约束后续所有模块级重构的工作方式
这份规范面向维护 `XCEngine` API 文档的 coding agent。它的目标不是“批量生成一套看起来完整的文档”而是持续把当前源码、测试和真实调用链路同步到唯一的 canonical API 文档树里
硬性要求
当前仓库已经进入“增量同步”阶段。重点不再是补骨架,而是
1. `docs/api/XCEngine/**` 必须与 `engine/include/XCEngine/**` 保持平行。
2. canonical API 文档只保留一套;迁移完成后必须删除旧目录与旧入口。
3. 默认情况下,每个 public header 对应一个独立文档目录,每个类型页都使用 `{TypeName}/{TypeName}.md`
4. 方法页优先使用源码中的原始函数名;不要改成 kebab-case、全小写或其它再命名形式。
5. API 文档必须以源码、实现、测试和真实调用点为依据,禁止只根据名字猜测行为。
6. 对于只承担聚合包含职责的 umbrella header可以并入模块页说明不强制再建一个同名类型目录。
- 跟住最新 public header 和 Editor source header 的真实变化
- 清理过期 API 页面和过期叙述
- 保持 overview / guide / method page 的口径一致
## Canonical 目录结构
## 当前范围
```text
docs/api/
├── main.md
├── XCEngine/
│ ├── XCEngine.md
├── Debug/
│ ├── Debug.md
│ │ ├── Logger/
│ │ │ ├── Logger.md
│ │ │ ├── Get.md
│ │ │ ├── Initialize.md
│ │ └── Log.md
│ │ └── RenderDocCapture/
│ ├── RenderDocCapture.md
│ │ └── BeginCapture.md
└── ...
├── _guides/
└── Debug/
└── _meta/
API 文档的正式范围包含两部分:
1. 引擎 public API
- 对齐 `engine/include/XCEngine/**`
2. Editor source-backed API
- 对齐 `editor/src/**`
- canonical 文档入口仍放在 `docs/api/XCEngine/Editor/**`
辅助目录也属于工作流的一部分:
- `docs/api/_guides/**`
- 教程、架构说明、工作流说明
- `docs/api/_meta/**`
- 审计结果、阶段性状态
- `docs/api/_tools/**`
- 审计、生成、修链脚本
- `docs/plan/API文档实时同步任务池_2026-04-03.md`
- 当前多任务并行同步池
- `README.md` / `editor/README.md` / `AGENT.md`
- 这些不是 canonical API 页,但一旦它们引用 API 模块结构、测试目录或 Editor helper 分层,就属于必须同步的活跃协作文档
## 硬约束
1. `docs/api/XCEngine/**` 是唯一 canonical API 树。
2. 文档必须以“当前 header + 当前实现 + 当前测试 + 当前真实调用点”为依据,不能按旧文档或命名猜行为。
3. 删除的 API 页面要一起删除,相关交叉链接也必须一起清理。
4. 方法页优先使用源码中的原始函数名;不要擅自改成 kebab-case 或小写别名。
5. 不要把“设计意图”写成“当前实现行为”。
6. 不要为已经删除的 API 保留默认兼容入口页,除非任务明确要求。
7. `rebuild-status.md` 以审计脚本输出为准并发场景下stdout 比旧文件内容更可信。
8. 只收口活跃文档;`docs/plan/used/**``docs/used/**` 等归档材料默认保留历史写法,不要为了“顺手统一”去重写归档。
9. Windows 工作树里的路径大小写按真实目录名写,例如 `tests/Editor/``tests/Core/``tests/Scripting/`,不要继续传播 `tests/editor/``tests/core/` 之类的历史噪音。
## 工作流
### 1. 开工前先看两份文件
- 任务池:
- `docs/plan/API文档实时同步任务池_2026-04-03.md`
- 最新审计:
- `docs/api/_meta/rebuild-status.md`
如果任务池和工作树不一致,以当前源码和重新执行审计后的结果为准。
如果 `docs/plan/` 下出现日期更晚的 API 相关计划或归档文件,优先读取更新日期更晚的文件,再判断当前任务池是否已经转入 `docs/plan/used/`
如果工作内容会改到 `README.md``editor/README.md``AGENT.md`
- 先对照真实工作树、`Get-ChildItem` 输出和当前测试目录
- 再改目录树与模块说明
- 不要沿用旧摘要、旧计划里的目录快照
### 2. 认领规则
- 一次只认领一个任务块。
- 先把任务状态改成 `DOING`,再写认领人。
- 只修改该任务块的写入范围。
- 如果发现新的失配,但不属于当前任务块,向任务池追加新任务,不顺手扩写。
### 3. 写文档前的取证
至少完成下面四步:
1. 读对应 header
2. 读对应 `.cpp` 或内联实现
3. 搜测试和真实调用点
4. 确认生命周期、线程语义、失败路径、所有权、平台限制
如果是 Editor source-backed API至少额外确认两类锚点
1. `tests/Editor/` 下是否已有对应单测
2. `SceneViewPanel.cpp``ViewportHostService.*` 或其他真实上层调用链是否已经切到新 helper
落文前至少能回答这些问题:
- 这个类型或函数解决什么问题,边界在哪里?
- 调用前需要什么前置条件?
- 失败时返回什么,或者会不会静默 no-op
- 谁拥有对象,谁负责释放资源?
- 当前实现是完整能力、轻量封装、stub还是占位入口
### 4. 改完后的收口
必须重新执行:
```powershell
python -B docs/api/_tools/audit_api_docs.py
```
说明
至少关注这些指标
- `docs/api/XCEngine/**` 是唯一 canonical API 树。
- `docs/api/_guides/**` 用于概念、教程、设计理念和工作流说明,不是第二套 API 树。
- `README.md` 不用于 canonical 模块索引页;模块索引页统一使用 `{DirName}.md`
- `Invalid header refs`
- `Invalid source refs`
- `Broken .md links`
- `Old template pages`
- `Flat header pages`
- `Stale editor doc tokens`
- `Stale editor canonical pages`
## 强制命名规则
如果审计没回绿,不算完成。
### 1. 目录索引页
## Canonical 目录规则
- 根索引页:`docs/api/XCEngine/XCEngine.md`
- 模块索引页:`docs/api/XCEngine/{ModuleName}/{ModuleName}.md`
- 子模块索引页:`docs/api/XCEngine/{ModuleName}/{SubmoduleName}/{SubmoduleName}.md`
### 1. 模块总览页
- 根入口:
- `docs/api/main.md`
- API 根页:
- `docs/api/XCEngine/XCEngine.md`
- 模块页:
- `docs/api/XCEngine/{ModuleName}/{ModuleName}.md`
- 子模块页:
- `docs/api/XCEngine/{ModuleName}/{SubmoduleName}/{SubmoduleName}.md`
示例:
- `docs/api/XCEngine/Debug/Debug.md`
- `docs/api/XCEngine/Core/Core.md`
- `docs/api/XCEngine/RHI/D3D12/D3D12.md`
- `docs/api/XCEngine/Core/Asset/Asset.md`
- `docs/api/XCEngine/Rendering/Passes/Passes.md`
- `docs/api/XCEngine/Editor/Viewport/Viewport.md`
### 2. 类型目录
### 2. Header / source-backed 目录
- 每个 public header 对应一个独立文件夹。
- 文件夹名必须与 header stem 或主要类型名一致。
- 保留源码中的大小写,不做风格改写。
- 如果 header 只是模块聚合入口,不声明独立类型,可以直接并入模块页,不单独建文件夹。
当前不是“每个类型再套一层目录”,而是:
- 每个 public header 或 Editor source header 对应一个文档目录
- 该目录内放主类型页、辅助类型页和方法页
示例:
- `docs/api/XCEngine/Debug/Logger/`
- `docs/api/XCEngine/Core/Asset/ResourceManager/`
- `docs/api/XCEngine/RHI/D3D12/D3D12Device/`
```text
docs/api/XCEngine/Core/Asset/ResourceManager/
├── ResourceManager.md
├── Load.md
├── LoadAsync.md
├── RefreshProjectAssets.md
├── RebuildProjectAssetCache.md
└── GetProjectLibraryRoot.md
```
### 3. 类型总览页
多类型 / helper 同头文件示例:
- 固定为 `{TypeName}/{TypeName}.md`
- 不允许把类型总览页直接平铺在模块目录中
```text
docs/api/XCEngine/Editor/Viewport/SceneViewportRenderPlan/
├── SceneViewportRenderPlan.md
├── SceneViewportRenderPlanBuildResult.md
├── BuildSceneViewportRenderPlan.md
└── ApplySceneViewportRenderPlan.md
```
### 4. 方法详情页
### 3. umbrella header 例外
- 方法页放在所属类型目录内。
- 文件名优先使用原函数名。
- 重载共享同一页,在页内按签名分节说明。
如果一个 header 只是聚合入口,通常不单独建同名类型页,直接并入模块页:
示例:
- 文件主要由 `#include` 组成
- 不声明独立 class / struct / enum / function family
- 单独建页只会制造重复入口
- `Get.md`
- `Initialize.md`
- `SetCaptureFilePath.md`
- `LoadSceneAsync.md`
## 命名规则
### 5. 特殊命名
### 1. 主页面
- 构造函数:`Constructor.md`
- 析构函数:`Destructor.md`
- 运算符使用可读的 PascalCase 名称
- 主类型页通常用主类型名:
- `ResourceManager.md`
- `BuiltinInfiniteGridPass.md`
- helper 类型页直接用真实类型名:
- `ImportedAsset.md`
- `LookupSnapshot.md`
建议映射:
### 2. 方法页
- `operator=` -> `OperatorAssign.md`
- `operator+=` -> `OperatorPlusAssign.md`
- `operator[]` -> `OperatorSubscript.md`
- `operator()` -> `OperatorCall.md`
- 用真实函数名:
- `Initialize.md`
- `TryResolveAssetPath.md`
- `BuildInfiniteGridParameters.md`
## 写作前的取证流程
重载共享同一页,在页内按签名分节说明。
在编写任何 API 页之前,必须完成下面的最小取证:
### 3. 特殊命名
1. 阅读对应 public header。
2. 阅读对应 `.cpp` 或内联实现。
3. 搜索测试、示例和真实调用点。
4. 确认生命周期、线程语义、所有权、失败路径和平台限制。
至少回答以下问题后才能落文:
- 这个类型解决什么问题,边界在哪里?
- 调用前需要什么前置条件?
- 调用失败时返回什么,或者会静默失败?
- 谁拥有对象,谁负责释放资源?
- 多线程下哪些调用安全,哪些只能在初始化阶段使用?
- 当前实现是不是完整的?有没有空实现、占位实现或只做轻量封装?
禁止行为:
- 只根据 `Get``Create``Set` 之类的前缀写模板句。
- 把“设计意图”当成“当前实现行为”来写。
- 把测试里假设成立的场景,误写成通用保证。
## umbrella header 例外规则
以下情况通常应视为模块聚合头,而不是单独类型页:
- 头文件主要由一组 `#include` 组成。
- 不声明独立类、结构体、枚举或函数族。
- 名称与模块目录同名,单独建页会造成 `Debug/Debug.md` 这类重复入口。
处理方式:
- 在模块页中增加“聚合头文件”或“包含入口”小节。
- 使用 `**头文件**: \`...\`` 保留头文件覆盖记录。
- 不再额外创建 `{HeaderStem}/{HeaderStem}.md`
## 契约分层规则
文档必须明确区分下面三层信息:
### 1. 接口契约
来自 public header属于使用者可以依赖的 API 形状。
例如:
- 函数签名
- 参数和返回值
- 可见的数据结构
- 明确暴露的枚举值和宏
### 2. 当前实现行为
来自 `.cpp`、内联实现、测试和调用点,描述当前版本的真实行为。
例如:
- 是否自动初始化
- 是否加锁
- 是否会写日志、刷新文件、拉起窗口焦点
- 是否只是 no-op 或 stub
这一层必须使用明确表述,例如:
- “当前实现中……”
- “按 `engine/src/...` 的实现……”
- “当前版本会……”
### 3. 合理推断
只在确实有必要时使用,而且必须标明是推断。
例如:
- “从 API 形状看,设计上显然是为后续 Chrome Trace 导出预留扩展点。”
如果不能证明,就不要写。
- 构造函数:
- `Constructor.md`
- 析构函数:
- `Destructor.md`
- 运算符:
- `operator=` -> `OperatorAssign.md`
- `operator[]` -> `OperatorSubscript.md`
- `operator()` -> `OperatorCall.md`
## 页面职责
### 1. 模块页 / 子模块页
### 1. 模块页
负责
必须说明
- 说明模块职责、边界和典型使用场景
- 列出子目录与 public headers
- 给出与相邻模块的关系
- 链接相关 guide
- 模块职责
- 与相邻模块的边界
- 典型使用链路
- 关键入口
负责:
- 展开所有方法细节
- 重复 header 全量声明
要在模块页里平铺所有方法细节。
### 2. 类型页
@@ -202,212 +220,122 @@ docs/api/
- 命名空间
- 类型分类
- 头文件
- `头文件``源文件`
- 角色概述
- 生命周期
- 线程语义
- 所有权 / 资源管理方式
- 当前实现限制
- 相关方法页、guide 页的跳转
- 相关方法与相关 guide
如果类型是枚举或结构体,还应补充:
- 字段或枚举值说明
- 值之间的语义关系
- 典型使用方式
如果`struct` / `enum`,还要写清字段或枚举值的实际语义。
### 3. 方法页
必须包含
必须写清
- 准确签名
- 调用目的
- 前置条件
- 参数说明
- 返回值说明
- 当前实现行为
- 返回值
- 副作用
- 线程语义
- 失败路径或 no-op 条件
- 最小可信示例
- 线程语义
- 真实调用点或测试锚点
方法页不能只写“获取对象”“设置状态”这种空描述。
不能只写“获取对象”“设置状态”这种空描述。
## 内容深度要求
## 写法规则
### 1. 解释“是什么”
### 1. 区分三层信息
说明类型或方法的职责,而不是简单复述名字。
文档里要明确区分:
### 2. 解释“怎么用”
- 接口契约
- 来自 header可被调用方依赖
- 当前实现行为
- 来自 `.cpp`、测试和调用链
- 合理推断
- 只有必要时才写,并明确标注是推断
给出最小可运行或最小可信的使用顺序,让用户知道放在初始化、运行时还是销毁阶段。
推荐措辞:
### 3. 解释“为什么这样设计
- “当前实现中……
- “按 `engine/src/...` 的实现……”
- “测试 `tests/...` 当前验证了……”
结合引擎架构解释:
### 2. 优先写真实链路
- 为什么做成 singleton、service、interface、sink、builder、handle
- 这样做的收益是什么
- 有哪些代价或约束
如果一个 API 真正只是更大链路中的一环,要把链路写出来。
### 4. 解释“当前实现做到哪一步”
示例:
商业级 API 文档不能假装所有接口都同样成熟。
- `ResourceManager`
- 不只写“负责资源加载”
- 要写清 `AssetImportService -> ProjectAssetIndex -> loader` 的真实路径
- `SceneViewportRenderPlan`
- 不只写“构建后处理 plan”
- 要写清它如何给 Scene View 组装 `postScenePasses` / `overlayPasses`
对于未完成能力,必须明确说明:
### 3. 明确不成熟部分
- 当前是占位接口
- 当前只有基础实现
- 当前只覆盖某个平台 / 某条后端路径
对未完成能力要直接写明:
## 教程与概念页规范
- 当前是 stub
- 当前只支持某个平台
- 当前只覆盖某条 backend 路径
- 当前仍要求调用方手动轮询或手动 shutdown
当某个模块仅靠 API 页不足以让用户理解时,应增加 `_guides`
不要把不成熟接口包装成成熟系统
## Guide / Overview 规则
`_guides` 不是第二套 API 参考,而是解释:
- 为什么这样组织模块
- 推荐从哪里开始读
- 典型工作流是什么
- 与 Unity / Unreal 等常见心智模型的关系
适合写 guide 的内容:
- 前置知识
- 架构设计理念
- 推荐工作流
- 和 Unity / Unreal / RenderDoc 等常见工具的概念对照
- 最佳实践与反模式
- 架构图景
- 推荐使用顺序
- 设计权衡
- 常见误区
guide 页不是第二套 API 参考,它们负责回答
不适合
- 为什么要这样组织模块
- 用户第一次接触时该从哪里开始
- 这套 API 与常见引擎的对应关系是什么
- 重复抄一遍类型页和方法页
- 延续已经过期的旧工作流
guide 页应尽量包含:
## 常见失误
- 问题背景
- 设计目标
- 推荐流程
- 优点与代价
- 与现有 API 页的链接
- 按名字猜 API 行为,不看实现和测试
- 保留已经删除的 API 页面或链接
- overview 还在传播旧心智,但类型页已经改新了
- 把 helper / wrapper 当成独立大系统来写
- 把 Editor source-backed API 当成 public header 处理,漏掉 `源文件` 语义
- 审计没跑或没回绿就宣布完成
- README / AGENT / editor README 的目录树还停留在旧快照,和当前工作树脱节
- Windows 上真实已有新测试,但类型页还在写“没有独立单元测试”
## Unity 风格的解释性要求
## 推荐命令
当模块涉及常见引擎概念时,可以增加 Unity 对照,但必须克制且准确。
推荐写法:
- “可以把 `Logger` 理解为比 Unity Console 更底层的日志分发中心。”
- “当前 `Profiler` 只覆盖轻量 CPU 埋点,不等同于 Unity Profiler 的完整时间线分析。”
-`RenderDocCapture` 更接近引擎内置的 RenderDoc 工作流桥接,而不是 Unity Frame Debugger 的替代品。”
禁止写法:
- “和 Unity 完全一样”
- “等价于某商业引擎的完整系统”
## 页面模板
### 1. 模块页模板
```markdown
# {DirName}
**命名空间**: `{Namespace}`
**类型**: `module` / `submodule` / `module-root`
**描述**: {一句话说明当前目录职责}
## 概述
{解释职责边界、典型场景和相邻模块关系}
## 设计要点
- {要点 1}
- {要点 2}
## 头文件
- [TypeA](TypeA/TypeA.md) - `TypeA.h`
- [TypeB](TypeB/TypeB.md) - `TypeB.h`
## 相关指南
- [GuideA](../../_guides/.../GuideA.md)
```powershell
rg --files docs/api/XCEngine
rg --files tests/Editor
rg -n "SymbolName" engine/include engine/src editor/src tests docs/api
python -B docs/api/_tools/audit_api_docs.py
```
### 2. 类型页模板
## 一个最小完成定义
```markdown
# {TypeName}
一次 API 文档任务只有同时满足下面条件才算完成:
**命名空间**: `{Namespace}`
**类型**: `class` / `class (abstract)` / `class (singleton)` / `struct` / `enum class`
**头文件**: `XCEngine/.../{Header}.h`
**描述**: {一句话说明}
## 概述
{说明角色、状态、边界、典型使用方式}
## 生命周期
- {初始化与销毁方式}
## 线程语义
- {线程安全说明}
## 公开成员
| 成员 | 说明 |
|------|------|
| [Initialize](Initialize.md) | {说明} |
| [Shutdown](Shutdown.md) | {说明} |
```
### 3. 方法页模板
```markdown
# {TypeName}::{MethodName}
{一句话说明方法职责}
```cpp
{完整签名}
```
## 行为说明
{说明前置条件、后置状态、副作用和当前实现细节}
## 参数
- `param` - {描述}
## 返回值
- `{Type}` - {描述}
## 线程语义
- {线程安全、只建议初始化阶段调用、或必须同线程配对等}
## 示例
```cpp
{}
```
```
## 验收清单
- `docs/api/XCEngine/**` 与 `engine/include/XCEngine/**` 目录平行
- canonical 树下没有模块级 `README.md`
- 每个 public header 都有对应类型目录
- 每个类型总览页都位于 `{TypeName}/{TypeName}.md`
- 方法页使用原函数名或规范化运算符名
- 所有链接都指向真实存在的 `.md` 页面
- 文档中明确区分接口契约、当前实现和合理推断
- 重要模块拥有必要的 guide 页
- 重要限制、stub、平台条件和线程语义都已写清
- 对应源码、测试、调用链已经核对
- 文档页内容已经改到当前实现
- 过期页面和交叉链接已经清理
- 任务池记录已最小更新
- 审计脚本重新执行且结果全绿

View File

@@ -1,31 +1,26 @@
# AudioMixer::AddEffect
添加元素或建立关联。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/AudioMixer.h`
## 签名
```cpp
void AddEffect(IAudioEffect* effect);
```
该方法声明于 `XCEngine/Audio/AudioMixer.h`,当前页面用于固定 `AudioMixer` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
- `effect` - 参数语义详见头文件声明。
更新 `m_effects`
**返回:** `void` - 无返回值。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/AudioMixer.h>
void Example() {
XCEngine::Audio::AudioMixer object;
// 根据上下文补齐参数后调用 AudioMixer::AddEffect(...)。
(void)object;
}
```
- 会更新 `m_effects`
- 当前实现会调用 `push_back`
## 相关文档
- [返回类总览](AudioMixer.md)
- [返回模块目录](../Audio.md)
- [AudioMixer](AudioMixer.md)

View File

@@ -1,30 +1,26 @@
# AudioMixer::ClearEffects
清空内部数据。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/AudioMixer.h`
## 签名
```cpp
void ClearEffects();
```
该方法声明于 `XCEngine/Audio/AudioMixer.h`,当前页面用于固定 `AudioMixer` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
更新 `m_effects`
**返回:** `void` - 无返回值。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/AudioMixer.h>
void Example() {
XCEngine::Audio::AudioMixer object;
// 根据上下文补齐参数后调用 AudioMixer::ClearEffects(...)。
(void)object;
}
```
- 会更新 `m_effects`
- 当前实现会调用 `clear`
## 相关文档
- [返回类总览](AudioMixer.md)
- [返回模块目录](../Audio.md)
- [AudioMixer](AudioMixer.md)

View File

@@ -1,28 +1,25 @@
# AudioMixer::AudioMixer()
构造对象。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/AudioMixer.h`
## 签名
```cpp
AudioMixer();
```
该方法声明于 `XCEngine/Audio/AudioMixer.h`,当前页面用于固定 `AudioMixer` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
执行该公开方法对应的当前实现
**返回:** `void` - 无返回值。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/AudioMixer.h>
void Example() {
XCEngine::Audio::AudioMixer object;
}
```
- 执行该公开方法对应的当前实现。
## 相关文档
- [返回类总览](AudioMixer.md)
- [返回模块目录](../Audio.md)
- [AudioMixer](AudioMixer.md)

View File

@@ -1,29 +1,25 @@
# AudioMixer::~AudioMixer()
销毁对象并释放相关资源。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/AudioMixer.h`
## 签名
```cpp
~AudioMixer();
```
该方法声明于 `XCEngine/Audio/AudioMixer.h`,当前页面用于固定 `AudioMixer` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
当前实现为空
**返回:** `void` - 无返回值。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/AudioMixer.h>
void Example() {
XCEngine::Audio::AudioMixer object;
// 对象离开作用域时会自动触发析构。
}
```
- 当前函数体为空。
## 相关文档
- [返回类总览](AudioMixer.md)
- [返回模块目录](../Audio.md)
- [AudioMixer](AudioMixer.md)

View File

@@ -1,30 +1,26 @@
# AudioMixer::Get3DParams
获取相关状态或对象。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/AudioMixer.h`
## 签名
```cpp
const Audio3DParams& Get3DParams() const;
```
该方法声明于 `XCEngine/Audio/AudioMixer.h`,当前页面用于固定 `AudioMixer` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
返回 `m_3DParams`
**返回:** `const Audio3DParams&` - 返回值语义详见头文件声明。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/AudioMixer.h>
void Example() {
XCEngine::Audio::AudioMixer object;
// 根据上下文补齐参数后调用 AudioMixer::Get3DParams(...)。
(void)object;
}
```
- 返回 `m_3DParams`
## 相关文档
- [返回类总览](AudioMixer.md)
- [返回模块目录](../Audio.md)
- [AudioMixer](AudioMixer.md)
- [Set3DParams](Set3DParams.md)

View File

@@ -1,31 +1,28 @@
# AudioMixer::GetChannelVolume
获取相关状态或对象。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/AudioMixer.h`
## 签名
```cpp
float GetChannelVolume(AudioChannel channel) const;
```
该方法声明于 `XCEngine/Audio/AudioMixer.h`,当前页面用于固定 `AudioMixer` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
- `channel` - 参数语义详见头文件声明。
更新 `m_channelVolumes`
**返回:** `float` - 返回值语义详见头文件声明。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/AudioMixer.h>
void Example() {
XCEngine::Audio::AudioMixer object;
// 根据上下文补齐参数后调用 AudioMixer::GetChannelVolume(...)。
(void)object;
}
```
- 会更新 `m_channelVolumes`
- 当前实现会调用 `find``end`
- 包含条件分支,并可能提前返回。
## 相关文档
- [返回类总览](AudioMixer.md)
- [返回模块目录](../Audio.md)
- [AudioMixer](AudioMixer.md)
- [SetChannelVolume](SetChannelVolume.md)

View File

@@ -1,30 +1,26 @@
# AudioMixer::GetOutputMixer
获取相关状态或对象。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/AudioMixer.h`
## 签名
```cpp
AudioMixer* GetOutputMixer() const;
```
该方法声明于 `XCEngine/Audio/AudioMixer.h`,当前页面用于固定 `AudioMixer` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
返回 `m_outputMixer` 当前值
**返回:** `AudioMixer*` - 返回值语义详见头文件声明。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/AudioMixer.h>
void Example() {
XCEngine::Audio::AudioMixer object;
// 根据上下文补齐参数后调用 AudioMixer::GetOutputMixer(...)。
(void)object;
}
```
- 返回 `m_outputMixer` 当前值。
## 相关文档
- [返回类总览](AudioMixer.md)
- [返回模块目录](../Audio.md)
- [AudioMixer](AudioMixer.md)
- [SetOutputMixer](SetOutputMixer.md)

View File

@@ -1,30 +1,26 @@
# AudioMixer::GetVolume
获取相关状态或对象。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/AudioMixer.h`
## 签名
```cpp
float GetVolume() const;
```
该方法声明于 `XCEngine/Audio/AudioMixer.h`,当前页面用于固定 `AudioMixer` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
返回 `m_volume` 当前值
**返回:** `float` - 返回值语义详见头文件声明。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/AudioMixer.h>
void Example() {
XCEngine::Audio::AudioMixer object;
// 根据上下文补齐参数后调用 AudioMixer::GetVolume(...)。
(void)object;
}
```
- 返回 `m_volume` 当前值。
## 相关文档
- [返回类总览](AudioMixer.md)
- [返回模块目录](../Audio.md)
- [AudioMixer](AudioMixer.md)
- [SetVolume](SetVolume.md)

View File

@@ -1,30 +1,25 @@
# AudioMixer::IsMute
查询当前状态。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/AudioMixer.h`
## 签名
```cpp
bool IsMute() const;
```
该方法声明于 `XCEngine/Audio/AudioMixer.h`,当前页面用于固定 `AudioMixer` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
返回 `m_mute` 当前值
**返回:** `bool` - 返回值语义详见头文件声明。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/AudioMixer.h>
void Example() {
XCEngine::Audio::AudioMixer object;
// 根据上下文补齐参数后调用 AudioMixer::IsMute(...)。
(void)object;
}
```
- 返回 `m_mute` 当前值。
## 相关文档
- [返回类总览](AudioMixer.md)
- [返回模块目录](../Audio.md)
- [AudioMixer](AudioMixer.md)

View File

@@ -1,33 +1,25 @@
# AudioMixer::ProcessAudio
公开方法,详见头文件声明。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/AudioMixer.h`
## 签名
```cpp
void ProcessAudio(float* buffer, uint32 sampleCount, uint32 channels);
```
该方法声明于 `XCEngine/Audio/AudioMixer.h`,当前页面用于固定 `AudioMixer` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
- `buffer` - 参数语义详见头文件声明。
- `sampleCount` - 参数语义详见头文件声明。
- `channels` - 参数语义详见头文件声明。
执行该公开方法对应的当前实现。
**返回:** `void` - 无返回值。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/AudioMixer.h>
void Example() {
XCEngine::Audio::AudioMixer object;
// 根据上下文补齐参数后调用 AudioMixer::ProcessAudio(...)。
(void)object;
}
```
- 执行该公开方法对应的当前实现。
## 相关文档
- [返回类总览](AudioMixer.md)
- [返回模块目录](../Audio.md)
- [AudioMixer](AudioMixer.md)

View File

@@ -1,31 +1,26 @@
# AudioMixer::RemoveEffect
移除元素或解除关联。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/AudioMixer.h`
## 签名
```cpp
void RemoveEffect(IAudioEffect* effect);
```
该方法声明于 `XCEngine/Audio/AudioMixer.h`,当前页面用于固定 `AudioMixer` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
- `effect` - 参数语义详见头文件声明。
更新 `m_effects`
**返回:** `void` - 无返回值。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/AudioMixer.h>
void Example() {
XCEngine::Audio::AudioMixer object;
// 根据上下文补齐参数后调用 AudioMixer::RemoveEffect(...)。
(void)object;
}
```
- 会更新 `m_effects`
- 当前实现会调用 `find``begin``end``erase`
## 相关文档
- [返回类总览](AudioMixer.md)
- [返回模块目录](../Audio.md)
- [AudioMixer](AudioMixer.md)

View File

@@ -1,31 +1,26 @@
# AudioMixer::Set3DParams
设置相关状态或配置。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/AudioMixer.h`
## 签名
```cpp
void Set3DParams(const Audio3DParams& params);
```
该方法声明于 `XCEngine/Audio/AudioMixer.h`,当前页面用于固定 `AudioMixer` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
- `params` - 参数语义详见头文件声明。
执行该公开方法对应的当前实现。
**返回:** `void` - 无返回值。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/AudioMixer.h>
void Example() {
XCEngine::Audio::AudioMixer object;
// 根据上下文补齐参数后调用 AudioMixer::Set3DParams(...)。
(void)object;
}
```
- 执行该公开方法对应的当前实现。
## 相关文档
- [返回类总览](AudioMixer.md)
- [返回模块目录](../Audio.md)
- [AudioMixer](AudioMixer.md)
- [Get3DParams](Get3DParams.md)

View File

@@ -1,32 +1,27 @@
# AudioMixer::SetChannelVolume
设置相关状态或配置。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/AudioMixer.h`
## 签名
```cpp
void SetChannelVolume(AudioChannel channel, float volume);
```
该方法声明于 `XCEngine/Audio/AudioMixer.h`,当前页面用于固定 `AudioMixer` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
- `channel` - 参数语义详见头文件声明。
- `volume` - 参数语义详见头文件声明。
更新 `m_channelVolumes`
**返回:** `void` - 无返回值。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/AudioMixer.h>
void Example() {
XCEngine::Audio::AudioMixer object;
// 根据上下文补齐参数后调用 AudioMixer::SetChannelVolume(...)。
(void)object;
}
```
- 会更新 `m_channelVolumes`
- 当前实现会调用 `find``end``max``min`
## 相关文档
- [返回类总览](AudioMixer.md)
- [返回模块目录](../Audio.md)
- [AudioMixer](AudioMixer.md)
- [GetChannelVolume](GetChannelVolume.md)

View File

@@ -1,31 +1,25 @@
# AudioMixer::SetMute
设置相关状态或配置。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/AudioMixer.h`
## 签名
```cpp
void SetMute(bool mute);
```
该方法声明于 `XCEngine/Audio/AudioMixer.h`,当前页面用于固定 `AudioMixer` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
- `mute` - 参数语义详见头文件声明。
更新 `m_mute`
**返回:** `void` - 无返回值。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/AudioMixer.h>
void Example() {
XCEngine::Audio::AudioMixer object;
// 根据上下文补齐参数后调用 AudioMixer::SetMute(...)。
(void)object;
}
```
- 会更新 `m_mute`
## 相关文档
- [返回类总览](AudioMixer.md)
- [返回模块目录](../Audio.md)
- [AudioMixer](AudioMixer.md)

View File

@@ -1,31 +1,26 @@
# AudioMixer::SetOutputMixer
设置相关状态或配置。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/AudioMixer.h`
## 签名
```cpp
void SetOutputMixer(AudioMixer* mixer);
```
该方法声明于 `XCEngine/Audio/AudioMixer.h`,当前页面用于固定 `AudioMixer` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
- `mixer` - 参数语义详见头文件声明。
更新 `m_outputMixer`
**返回:** `void` - 无返回值。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/AudioMixer.h>
void Example() {
XCEngine::Audio::AudioMixer object;
// 根据上下文补齐参数后调用 AudioMixer::SetOutputMixer(...)。
(void)object;
}
```
- 会更新 `m_outputMixer`
## 相关文档
- [返回类总览](AudioMixer.md)
- [返回模块目录](../Audio.md)
- [AudioMixer](AudioMixer.md)
- [GetOutputMixer](GetOutputMixer.md)

View File

@@ -1,31 +1,27 @@
# AudioMixer::SetVolume
设置相关状态或配置。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/AudioMixer.h`
## 签名
```cpp
void SetVolume(float volume);
```
该方法声明于 `XCEngine/Audio/AudioMixer.h`,当前页面用于固定 `AudioMixer` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
- `volume` - 参数语义详见头文件声明。
更新 `m_volume`
**返回:** `void` - 无返回值。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/AudioMixer.h>
void Example() {
XCEngine::Audio::AudioMixer object;
// 根据上下文补齐参数后调用 AudioMixer::SetVolume(...)。
(void)object;
}
```
- 会更新 `m_volume`
- 当前实现会调用 `max``min`
## 相关文档
- [返回类总览](AudioMixer.md)
- [返回模块目录](../Audio.md)
- [AudioMixer](AudioMixer.md)
- [GetVolume](GetVolume.md)

View File

@@ -1,29 +1,25 @@
# AudioSystem::Get
获取相关状态或对象。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/AudioSystem.h`
## 签名
```cpp
static AudioSystem& Get();
```
该方法声明于 `XCEngine/Audio/AudioSystem.h`,当前页面用于固定 `AudioSystem` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
返回 `instance`
**返回:** `AudioSystem&` - 返回值语义详见头文件声明。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/AudioSystem.h>
void Example() {
auto& instance = XCEngine::Audio::AudioSystem::Get();
(void)instance;
}
```
- 返回 `instance`
## 相关文档
- [返回类总览](AudioSystem.md)
- [返回模块目录](../Audio.md)
- [AudioSystem](AudioSystem.md)

View File

@@ -1,31 +1,25 @@
# AudioSystem::GetAvailableDevices
获取相关状态或对象。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/AudioSystem.h`
## 签名
```cpp
void GetAvailableDevices(std::vector<std::string>& devices);
```
该方法声明于 `XCEngine/Audio/AudioSystem.h`,当前页面用于固定 `AudioSystem` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
- `devices` - 参数语义详见头文件声明。
执行 `GetAvailableDevices` 协同流程。
**返回:** `void` - 无返回值。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/AudioSystem.h>
void Example() {
XCEngine::Audio::AudioSystem object;
// 根据上下文补齐参数后调用 AudioSystem::GetAvailableDevices(...)。
(void)object;
}
```
- 当前实现会调用 `GetAvailableDevices`
## 相关文档
- [返回类总览](AudioSystem.md)
- [返回模块目录](../Audio.md)
- [AudioSystem](AudioSystem.md)

View File

@@ -1,30 +1,27 @@
# AudioSystem::GetBackend
获取相关状态或对象。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/AudioSystem.h`
## 签名
```cpp
IAudioBackend* GetBackend() const;
```
该方法声明于 `XCEngine/Audio/AudioSystem.h`,当前页面用于固定 `AudioSystem` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
更新 `m_backend`
**返回:** `IAudioBackend*` - 返回值语义详见头文件声明。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/AudioSystem.h>
void Example() {
XCEngine::Audio::AudioSystem object;
// 根据上下文补齐参数后调用 AudioSystem::GetBackend(...)。
(void)object;
}
```
- 会更新 `m_backend`
- 当前实现会调用 `get`
## 相关文档
- [返回类总览](AudioSystem.md)
- [返回模块目录](../Audio.md)
- [AudioSystem](AudioSystem.md)
- [SetBackend](SetBackend.md)

View File

@@ -1,30 +1,26 @@
# AudioSystem::GetCurrentDevice
获取相关状态或对象。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/AudioSystem.h`
## 签名
```cpp
std::string GetCurrentDevice() const;
```
该方法声明于 `XCEngine/Audio/AudioSystem.h`,当前页面用于固定 `AudioSystem` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
执行 `GetDeviceName` 协同流程
**返回:** `std::string` - 返回值语义详见头文件声明。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/AudioSystem.h>
void Example() {
XCEngine::Audio::AudioSystem object;
// 根据上下文补齐参数后调用 AudioSystem::GetCurrentDevice(...)。
(void)object;
}
```
- 当前实现会调用 `GetDeviceName`
- 包含条件分支,并可能提前返回。
## 相关文档
- [返回类总览](AudioSystem.md)
- [返回模块目录](../Audio.md)
- [AudioSystem](AudioSystem.md)

View File

@@ -1,30 +1,25 @@
# AudioSystem::GetListenerPosition
获取相关状态或对象。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/AudioSystem.h`
## 签名
```cpp
const Math::Vector3& GetListenerPosition() const;
```
该方法声明于 `XCEngine/Audio/AudioSystem.h`,当前页面用于固定 `AudioSystem` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
返回 `m_listenerPosition` 当前值
**返回:** `const Math::Vector3&` - 返回值语义详见头文件声明。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/AudioSystem.h>
void Example() {
XCEngine::Audio::AudioSystem object;
// 根据上下文补齐参数后调用 AudioSystem::GetListenerPosition(...)。
(void)object;
}
```
- 返回 `m_listenerPosition` 当前值。
## 相关文档
- [返回类总览](AudioSystem.md)
- [返回模块目录](../Audio.md)
- [AudioSystem](AudioSystem.md)

View File

@@ -1,30 +1,25 @@
# AudioSystem::GetListenerRotation
获取相关状态或对象。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/AudioSystem.h`
## 签名
```cpp
const Math::Quaternion& GetListenerRotation() const;
```
该方法声明于 `XCEngine/Audio/AudioSystem.h`,当前页面用于固定 `AudioSystem` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
返回 `m_listenerRotation` 当前值
**返回:** `const Math::Quaternion&` - 返回值语义详见头文件声明。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/AudioSystem.h>
void Example() {
XCEngine::Audio::AudioSystem object;
// 根据上下文补齐参数后调用 AudioSystem::GetListenerRotation(...)。
(void)object;
}
```
- 返回 `m_listenerRotation` 当前值。
## 相关文档
- [返回类总览](AudioSystem.md)
- [返回模块目录](../Audio.md)
- [AudioSystem](AudioSystem.md)

View File

@@ -1,30 +1,26 @@
# AudioSystem::GetListenerVelocity
获取相关状态或对象。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/AudioSystem.h`
## 签名
```cpp
const Math::Vector3& GetListenerVelocity() const;
```
该方法声明于 `XCEngine/Audio/AudioSystem.h`,当前页面用于固定 `AudioSystem` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
返回 `m_listenerVelocity` 当前值
**返回:** `const Math::Vector3&` - 返回值语义详见头文件声明。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/AudioSystem.h>
void Example() {
XCEngine::Audio::AudioSystem object;
// 根据上下文补齐参数后调用 AudioSystem::GetListenerVelocity(...)。
(void)object;
}
```
- 返回 `m_listenerVelocity` 当前值。
## 相关文档
- [返回类总览](AudioSystem.md)
- [返回模块目录](../Audio.md)
- [AudioSystem](AudioSystem.md)
- [SetListenerVelocity](SetListenerVelocity.md)

View File

@@ -1,30 +1,27 @@
# AudioSystem::GetMasterVolume
获取相关状态或对象。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/AudioSystem.h`
## 签名
```cpp
float GetMasterVolume() const;
```
该方法声明于 `XCEngine/Audio/AudioSystem.h`,当前页面用于固定 `AudioSystem` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
执行 `GetMasterVolume` 协同流程
**返回:** `float` - 返回值语义详见头文件声明。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/AudioSystem.h>
void Example() {
XCEngine::Audio::AudioSystem object;
// 根据上下文补齐参数后调用 AudioSystem::GetMasterVolume(...)。
(void)object;
}
```
- 当前实现会调用 `GetMasterVolume`
- 包含条件分支,并可能提前返回。
## 相关文档
- [返回类总览](AudioSystem.md)
- [返回模块目录](../Audio.md)
- [AudioSystem](AudioSystem.md)
- [SetMasterVolume](SetMasterVolume.md)

View File

@@ -1,30 +1,25 @@
# AudioSystem::GetStats
获取相关状态或对象。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/AudioSystem.h`
## 签名
```cpp
const Stats& GetStats() const;
```
该方法声明于 `XCEngine/Audio/AudioSystem.h`,当前页面用于固定 `AudioSystem` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
返回 `m_stats` 当前值
**返回:** `const Stats&` - 返回值语义详见头文件声明。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/AudioSystem.h>
void Example() {
XCEngine::Audio::AudioSystem object;
// 根据上下文补齐参数后调用 AudioSystem::GetStats(...)。
(void)object;
}
```
- 返回 `m_stats` 当前值。
## 相关文档
- [返回类总览](AudioSystem.md)
- [返回模块目录](../Audio.md)
- [AudioSystem](AudioSystem.md)

View File

@@ -1,31 +1,26 @@
# AudioSystem::Initialize
初始化内部状态。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/AudioSystem.h`
## 签名
```cpp
void Initialize(const AudioConfig& config);
```
该方法声明于 `XCEngine/Audio/AudioSystem.h`,当前页面用于固定 `AudioSystem` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
- `config` - 参数语义详见头文件声明。
更新 `m_backend`
**返回:** `void` - 无返回值。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/AudioSystem.h>
void Example() {
XCEngine::Audio::AudioSystem object;
// 根据上下文补齐参数后调用 AudioSystem::Initialize(...)。
(void)object;
}
```
- 会更新 `m_backend`
- 当前实现会调用 `Shutdown``Initialize``Start``reset`
## 相关文档
- [返回类总览](AudioSystem.md)
- [返回模块目录](../Audio.md)
- [AudioSystem](AudioSystem.md)

View File

@@ -1,30 +1,26 @@
# AudioSystem::IsMuted
查询当前状态。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/AudioSystem.h`
## 签名
```cpp
bool IsMuted() const;
```
该方法声明于 `XCEngine/Audio/AudioSystem.h`,当前页面用于固定 `AudioSystem` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
执行 `IsMuted` 协同流程
**返回:** `bool` - 返回值语义详见头文件声明。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/AudioSystem.h>
void Example() {
XCEngine::Audio::AudioSystem object;
// 根据上下文补齐参数后调用 AudioSystem::IsMuted(...)。
(void)object;
}
```
- 当前实现会调用 `IsMuted`
- 包含条件分支,并可能提前返回。
## 相关文档
- [返回类总览](AudioSystem.md)
- [返回模块目录](../Audio.md)
- [AudioSystem](AudioSystem.md)

View File

@@ -1,33 +1,25 @@
# AudioSystem::ProcessAudio
公开方法,详见头文件声明。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/AudioSystem.h`
## 签名
```cpp
void ProcessAudio(float* buffer, uint32 sampleCount, uint32 channels);
```
该方法声明于 `XCEngine/Audio/AudioSystem.h`,当前页面用于固定 `AudioSystem` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
- `buffer` - 参数语义详见头文件声明。
- `sampleCount` - 参数语义详见头文件声明。
- `channels` - 参数语义详见头文件声明。
执行 `ProcessAudio` 协同流程。
**返回:** `void` - 无返回值。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/AudioSystem.h>
void Example() {
XCEngine::Audio::AudioSystem object;
// 根据上下文补齐参数后调用 AudioSystem::ProcessAudio(...)。
(void)object;
}
```
- 当前实现会调用 `ProcessAudio`
## 相关文档
- [返回类总览](AudioSystem.md)
- [返回模块目录](../Audio.md)
- [AudioSystem](AudioSystem.md)

View File

@@ -1,31 +1,26 @@
# AudioSystem::RegisterSource
注册对象、回调或映射。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/AudioSystem.h`
## 签名
```cpp
void RegisterSource(Components::AudioSourceComponent* source);
```
该方法声明于 `XCEngine/Audio/AudioSystem.h`,当前页面用于固定 `AudioSystem` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
- `source` - 参数语义详见头文件声明。
更新 `m_activeSources`
**返回:** `void` - 无返回值。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/AudioSystem.h>
void Example() {
XCEngine::Audio::AudioSystem object;
// 根据上下文补齐参数后调用 AudioSystem::RegisterSource(...)。
(void)object;
}
```
- 会更新 `m_activeSources`
- 当前实现会调用 `push_back`
## 相关文档
- [返回类总览](AudioSystem.md)
- [返回模块目录](../Audio.md)
- [AudioSystem](AudioSystem.md)

View File

@@ -1,31 +1,27 @@
# AudioSystem::SetBackend
设置相关状态或配置。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/AudioSystem.h`
## 签名
```cpp
void SetBackend(std::unique_ptr<IAudioBackend> backend);
```
该方法声明于 `XCEngine/Audio/AudioSystem.h`,当前页面用于固定 `AudioSystem` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
- `backend` - 参数语义详见头文件声明。
更新 `m_backend`
**返回:** `void` - 无返回值。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/AudioSystem.h>
void Example() {
XCEngine::Audio::AudioSystem object;
// 根据上下文补齐参数后调用 AudioSystem::SetBackend(...)。
(void)object;
}
```
- 会更新 `m_backend`
- 当前实现会调用 `move`
## 相关文档
- [返回类总览](AudioSystem.md)
- [返回模块目录](../Audio.md)
- [AudioSystem](AudioSystem.md)
- [GetBackend](GetBackend.md)

View File

@@ -1,31 +1,25 @@
# AudioSystem::SetDevice
设置相关状态或配置。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/AudioSystem.h`
## 签名
```cpp
void SetDevice(const std::string& deviceName);
```
该方法声明于 `XCEngine/Audio/AudioSystem.h`,当前页面用于固定 `AudioSystem` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
- `deviceName` - 参数语义详见头文件声明。
执行 `SetDevice` 协同流程。
**返回:** `void` - 无返回值。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/AudioSystem.h>
void Example() {
XCEngine::Audio::AudioSystem object;
// 根据上下文补齐参数后调用 AudioSystem::SetDevice(...)。
(void)object;
}
```
- 当前实现会调用 `SetDevice`
## 相关文档
- [返回类总览](AudioSystem.md)
- [返回模块目录](../Audio.md)
- [AudioSystem](AudioSystem.md)

View File

@@ -1,32 +1,25 @@
# AudioSystem::SetListenerTransform
设置相关状态或配置。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/AudioSystem.h`
## 签名
```cpp
void SetListenerTransform(const Math::Vector3& position, const Math::Quaternion& rotation);
```
该方法声明于 `XCEngine/Audio/AudioSystem.h`,当前页面用于固定 `AudioSystem` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
- `position` - 参数语义详见头文件声明。
- `rotation` - 参数语义详见头文件声明。
执行该公开方法对应的当前实现。
**返回:** `void` - 无返回值。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/AudioSystem.h>
void Example() {
XCEngine::Audio::AudioSystem object;
// 根据上下文补齐参数后调用 AudioSystem::SetListenerTransform(...)。
(void)object;
}
```
- 会更新 `m_listenerPosition``m_listenerRotation`
## 相关文档
- [返回类总览](AudioSystem.md)
- [返回模块目录](../Audio.md)
- [AudioSystem](AudioSystem.md)

View File

@@ -1,31 +1,26 @@
# AudioSystem::SetListenerVelocity
设置相关状态或配置。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/AudioSystem.h`
## 签名
```cpp
void SetListenerVelocity(const Math::Vector3& velocity);
```
该方法声明于 `XCEngine/Audio/AudioSystem.h`,当前页面用于固定 `AudioSystem` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
- `velocity` - 参数语义详见头文件声明。
更新 `m_listenerVelocity`
**返回:** `void` - 无返回值。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/AudioSystem.h>
void Example() {
XCEngine::Audio::AudioSystem object;
// 根据上下文补齐参数后调用 AudioSystem::SetListenerVelocity(...)。
(void)object;
}
```
- 会更新 `m_listenerVelocity`
## 相关文档
- [返回类总览](AudioSystem.md)
- [返回模块目录](../Audio.md)
- [AudioSystem](AudioSystem.md)
- [GetListenerVelocity](GetListenerVelocity.md)

View File

@@ -1,31 +1,26 @@
# AudioSystem::SetMasterVolume
设置相关状态或配置。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/AudioSystem.h`
## 签名
```cpp
void SetMasterVolume(float volume);
```
该方法声明于 `XCEngine/Audio/AudioSystem.h`,当前页面用于固定 `AudioSystem` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
- `volume` - 参数语义详见头文件声明。
执行 `SetMasterVolume` 协同流程。
**返回:** `void` - 无返回值。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/AudioSystem.h>
void Example() {
XCEngine::Audio::AudioSystem object;
// 根据上下文补齐参数后调用 AudioSystem::SetMasterVolume(...)。
(void)object;
}
```
- 当前实现会调用 `SetMasterVolume`
## 相关文档
- [返回类总览](AudioSystem.md)
- [返回模块目录](../Audio.md)
- [AudioSystem](AudioSystem.md)
- [GetMasterVolume](GetMasterVolume.md)

View File

@@ -1,31 +1,25 @@
# AudioSystem::SetMuted
设置相关状态或配置。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/AudioSystem.h`
## 签名
```cpp
void SetMuted(bool muted);
```
该方法声明于 `XCEngine/Audio/AudioSystem.h`,当前页面用于固定 `AudioSystem` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
- `muted` - 参数语义详见头文件声明。
执行 `SetMuted` 协同流程。
**返回:** `void` - 无返回值。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/AudioSystem.h>
void Example() {
XCEngine::Audio::AudioSystem object;
// 根据上下文补齐参数后调用 AudioSystem::SetMuted(...)。
(void)object;
}
```
- 当前实现会调用 `SetMuted`
## 相关文档
- [返回类总览](AudioSystem.md)
- [返回模块目录](../Audio.md)
- [AudioSystem](AudioSystem.md)

View File

@@ -1,30 +1,25 @@
# AudioSystem::Shutdown
关闭并清理内部状态。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/AudioSystem.h`
## 签名
```cpp
void Shutdown();
```
该方法声明于 `XCEngine/Audio/AudioSystem.h`,当前页面用于固定 `AudioSystem` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
执行 `Stop``Shutdown``reset` 协同流程
**返回:** `void` - 无返回值。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/AudioSystem.h>
void Example() {
XCEngine::Audio::AudioSystem object;
// 根据上下文补齐参数后调用 AudioSystem::Shutdown(...)。
(void)object;
}
```
- 当前实现会调用 `Stop``Shutdown``reset``clear`
## 相关文档
- [返回类总览](AudioSystem.md)
- [返回模块目录](../Audio.md)
- [AudioSystem](AudioSystem.md)

View File

@@ -1,31 +1,26 @@
# AudioSystem::UnregisterSource
取消注册对象、回调或映射。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/AudioSystem.h`
## 签名
```cpp
void UnregisterSource(Components::AudioSourceComponent* source);
```
该方法声明于 `XCEngine/Audio/AudioSystem.h`,当前页面用于固定 `AudioSystem` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
- `source` - 参数语义详见头文件声明。
更新 `m_activeSources`
**返回:** `void` - 无返回值。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/AudioSystem.h>
void Example() {
XCEngine::Audio::AudioSystem object;
// 根据上下文补齐参数后调用 AudioSystem::UnregisterSource(...)。
(void)object;
}
```
- 会更新 `m_activeSources`
- 当前实现会调用 `find``begin``end``erase`
## 相关文档
- [返回类总览](AudioSystem.md)
- [返回模块目录](../Audio.md)
- [AudioSystem](AudioSystem.md)

View File

@@ -1,31 +1,26 @@
# AudioSystem::Update
更新运行时状态。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/AudioSystem.h`
## 签名
```cpp
void Update(float deltaTime);
```
该方法声明于 `XCEngine/Audio/AudioSystem.h`,当前页面用于固定 `AudioSystem` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
- `deltaTime` - 参数语义详见头文件声明。
更新 `m_deltaTime`
**返回:** `void` - 无返回值。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/AudioSystem.h>
void Example() {
XCEngine::Audio::AudioSystem object;
// 根据上下文补齐参数后调用 AudioSystem::Update(...)。
(void)object;
}
```
- 会更新 `m_deltaTime`
- 当前实现会调用 `IsRunning``GetConfig``mixBuffer``IsEnabled``IsPlaying`
## 相关文档
- [返回类总览](AudioSystem.md)
- [返回模块目录](../Audio.md)
- [AudioSystem](AudioSystem.md)

View File

@@ -1,28 +1,25 @@
# Equalizer::Equalizer()
构造对象。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/Equalizer.h`
## 签名
```cpp
Equalizer();
```
该方法声明于 `XCEngine/Audio/Equalizer.h`,当前页面用于固定 `Equalizer` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
构造 `Equalizer` 实例
**返回:** `void` - 无返回值。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/Equalizer.h>
void Example() {
XCEngine::Audio::Equalizer object;
}
```
- 具体定义位于 `engine/src/Audio/Equalizer.cpp`
## 相关文档
- [返回类总览](Equalizer.md)
- [返回模块目录](../Audio.md)
- [Equalizer](Equalizer.md)

View File

@@ -1,29 +1,25 @@
# Equalizer::~Equalizer()
销毁对象并释放相关资源。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/Equalizer.h`
## 签名
```cpp
~Equalizer() override;
```
该方法声明于 `XCEngine/Audio/Equalizer.h`,当前页面用于固定 `Equalizer` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
当前实现为空
**返回:** `void` - 无返回值。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/Equalizer.h>
void Example() {
XCEngine::Audio::Equalizer object;
// 对象离开作用域时会自动触发析构。
}
```
- 当前函数体为空。
## 相关文档
- [返回类总览](Equalizer.md)
- [返回模块目录](../Audio.md)
- [Equalizer](Equalizer.md)

View File

@@ -1,30 +1,26 @@
# Equalizer::GetBandCount
获取相关状态或对象。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/Equalizer.h`
## 签名
```cpp
uint32 GetBandCount() const;
```
该方法声明于 `XCEngine/Audio/Equalizer.h`,当前页面用于固定 `Equalizer` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
返回 `m_bandCount` 当前值
**返回:** `uint32` - 返回值语义详见头文件声明。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/Equalizer.h>
void Example() {
XCEngine::Audio::Equalizer object;
// 根据上下文补齐参数后调用 Equalizer::GetBandCount(...)。
(void)object;
}
```
- 返回 `m_bandCount` 当前值。
## 相关文档
- [返回类总览](Equalizer.md)
- [返回模块目录](../Audio.md)
- [Equalizer](Equalizer.md)
- [SetBandCount](SetBandCount.md)

View File

@@ -1,31 +1,26 @@
# Equalizer::GetBandFrequency
获取相关状态或对象。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/Equalizer.h`
## 签名
```cpp
float GetBandFrequency(uint32 band) const;
```
该方法声明于 `XCEngine/Audio/Equalizer.h`,当前页面用于固定 `Equalizer` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
- `band` - 参数语义详见头文件声明。
执行该公开方法对应的当前实现。
**返回:** `float` - 返回值语义详见头文件声明。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/Equalizer.h>
void Example() {
XCEngine::Audio::Equalizer object;
// 根据上下文补齐参数后调用 Equalizer::GetBandFrequency(...)。
(void)object;
}
```
- 包含条件分支,并可能提前返回。
## 相关文档
- [返回类总览](Equalizer.md)
- [返回模块目录](../Audio.md)
- [Equalizer](Equalizer.md)
- [SetBandFrequency](SetBandFrequency.md)

View File

@@ -1,31 +1,26 @@
# Equalizer::GetBandGain
获取相关状态或对象。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/Equalizer.h`
## 签名
```cpp
float GetBandGain(uint32 band) const;
```
该方法声明于 `XCEngine/Audio/Equalizer.h`,当前页面用于固定 `Equalizer` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
- `band` - 参数语义详见头文件声明。
执行该公开方法对应的当前实现。
**返回:** `float` - 返回值语义详见头文件声明。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/Equalizer.h>
void Example() {
XCEngine::Audio::Equalizer object;
// 根据上下文补齐参数后调用 Equalizer::GetBandGain(...)。
(void)object;
}
```
- 包含条件分支,并可能提前返回。
## 相关文档
- [返回类总览](Equalizer.md)
- [返回模块目录](../Audio.md)
- [Equalizer](Equalizer.md)
- [SetBandGain](SetBandGain.md)

View File

@@ -1,31 +1,26 @@
# Equalizer::GetBandQ
获取相关状态或对象。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/Equalizer.h`
## 签名
```cpp
float GetBandQ(uint32 band) const;
```
该方法声明于 `XCEngine/Audio/Equalizer.h`,当前页面用于固定 `Equalizer` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
- `band` - 参数语义详见头文件声明。
执行该公开方法对应的当前实现。
**返回:** `float` - 返回值语义详见头文件声明。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/Equalizer.h>
void Example() {
XCEngine::Audio::Equalizer object;
// 根据上下文补齐参数后调用 Equalizer::GetBandQ(...)。
(void)object;
}
```
- 包含条件分支,并可能提前返回。
## 相关文档
- [返回类总览](Equalizer.md)
- [返回模块目录](../Audio.md)
- [Equalizer](Equalizer.md)
- [SetBandQ](SetBandQ.md)

View File

@@ -1,30 +1,26 @@
# Equalizer::GetWetMix
获取相关状态或对象。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/Equalizer.h`
## 签名
```cpp
float GetWetMix() const override;
```
该方法声明于 `XCEngine/Audio/Equalizer.h`,当前页面用于固定 `Equalizer` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
返回 `m_wetMix` 当前值
**返回:** `float` - 返回值语义详见头文件声明。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/Equalizer.h>
void Example() {
XCEngine::Audio::Equalizer object;
// 根据上下文补齐参数后调用 Equalizer::GetWetMix(...)。
(void)object;
}
```
- 返回 `m_wetMix` 当前值。
## 相关文档
- [返回类总览](Equalizer.md)
- [返回模块目录](../Audio.md)
- [Equalizer](Equalizer.md)
- [SetWetMix](SetWetMix.md)

View File

@@ -1,30 +1,25 @@
# Equalizer::IsEnabled
查询当前状态。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/Equalizer.h`
## 签名
```cpp
bool IsEnabled() const override;
```
该方法声明于 `XCEngine/Audio/Equalizer.h`,当前页面用于固定 `Equalizer` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
返回 `m_enabled` 当前值
**返回:** `bool` - 返回值语义详见头文件声明。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/Equalizer.h>
void Example() {
XCEngine::Audio::Equalizer object;
// 根据上下文补齐参数后调用 Equalizer::IsEnabled(...)。
(void)object;
}
```
- 返回 `m_enabled` 当前值。
## 相关文档
- [返回类总览](Equalizer.md)
- [返回模块目录](../Audio.md)
- [Equalizer](Equalizer.md)

View File

@@ -1,33 +1,25 @@
# Equalizer::ProcessAudio
公开方法,详见头文件声明。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/Equalizer.h`
## 签名
```cpp
void ProcessAudio(float* buffer, uint32 sampleCount, uint32 channels) override;
```
该方法声明于 `XCEngine/Audio/Equalizer.h`,当前页面用于固定 `Equalizer` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
- `buffer` - 参数语义详见头文件声明。
- `sampleCount` - 参数语义详见头文件声明。
- `channels` - 参数语义详见头文件声明。
执行该公开方法对应的当前实现。
**返回:** `void` - 无返回值。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/Equalizer.h>
void Example() {
XCEngine::Audio::Equalizer object;
// 根据上下文补齐参数后调用 Equalizer::ProcessAudio(...)。
(void)object;
}
```
- 包含 `nullptr` 相关分支。
## 相关文档
- [返回类总览](Equalizer.md)
- [返回模块目录](../Audio.md)
- [Equalizer](Equalizer.md)

View File

@@ -1,31 +1,27 @@
# Equalizer::SetBandCount
设置相关状态或配置。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/Equalizer.h`
## 签名
```cpp
void SetBandCount(uint32 count);
```
该方法声明于 `XCEngine/Audio/Equalizer.h`,当前页面用于固定 `Equalizer` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
- `count` - 参数语义详见头文件声明。
更新 `m_bandCount`
**返回:** `void` - 无返回值。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/Equalizer.h>
void Example() {
XCEngine::Audio::Equalizer object;
// 根据上下文补齐参数后调用 Equalizer::SetBandCount(...)。
(void)object;
}
```
- 会更新 `m_bandCount`
- 当前实现会调用 `resize`
## 相关文档
- [返回类总览](Equalizer.md)
- [返回模块目录](../Audio.md)
- [Equalizer](Equalizer.md)
- [GetBandCount](GetBandCount.md)

View File

@@ -1,32 +1,26 @@
# Equalizer::SetBandFrequency
设置相关状态或配置。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/Equalizer.h`
## 签名
```cpp
void SetBandFrequency(uint32 band, float frequency);
```
该方法声明于 `XCEngine/Audio/Equalizer.h`,当前页面用于固定 `Equalizer` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
- `band` - 参数语义详见头文件声明。
- `frequency` - 参数语义详见头文件声明。
执行 `max``min``ComputeCoefficients` 协同流程。
**返回:** `void` - 无返回值。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/Equalizer.h>
void Example() {
XCEngine::Audio::Equalizer object;
// 根据上下文补齐参数后调用 Equalizer::SetBandFrequency(...)。
(void)object;
}
```
- 当前实现会调用 `max``min``ComputeCoefficients`
## 相关文档
- [返回类总览](Equalizer.md)
- [返回模块目录](../Audio.md)
- [Equalizer](Equalizer.md)
- [GetBandFrequency](GetBandFrequency.md)

View File

@@ -1,32 +1,26 @@
# Equalizer::SetBandGain
设置相关状态或配置。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/Equalizer.h`
## 签名
```cpp
void SetBandGain(uint32 band, float gainDb);
```
该方法声明于 `XCEngine/Audio/Equalizer.h`,当前页面用于固定 `Equalizer` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
- `band` - 参数语义详见头文件声明。
- `gainDb` - 参数语义详见头文件声明。
执行 `max``min``ComputeCoefficients` 协同流程。
**返回:** `void` - 无返回值。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/Equalizer.h>
void Example() {
XCEngine::Audio::Equalizer object;
// 根据上下文补齐参数后调用 Equalizer::SetBandGain(...)。
(void)object;
}
```
- 当前实现会调用 `max``min``ComputeCoefficients`
## 相关文档
- [返回类总览](Equalizer.md)
- [返回模块目录](../Audio.md)
- [Equalizer](Equalizer.md)
- [GetBandGain](GetBandGain.md)

View File

@@ -1,32 +1,26 @@
# Equalizer::SetBandQ
设置相关状态或配置。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/Equalizer.h`
## 签名
```cpp
void SetBandQ(uint32 band, float q);
```
该方法声明于 `XCEngine/Audio/Equalizer.h`,当前页面用于固定 `Equalizer` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
- `band` - 参数语义详见头文件声明。
- `q` - 参数语义详见头文件声明。
执行 `max``min``ComputeCoefficients` 协同流程。
**返回:** `void` - 无返回值。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/Equalizer.h>
void Example() {
XCEngine::Audio::Equalizer object;
// 根据上下文补齐参数后调用 Equalizer::SetBandQ(...)。
(void)object;
}
```
- 当前实现会调用 `max``min``ComputeCoefficients`
## 相关文档
- [返回类总览](Equalizer.md)
- [返回模块目录](../Audio.md)
- [Equalizer](Equalizer.md)
- [GetBandQ](GetBandQ.md)

View File

@@ -1,31 +1,25 @@
# Equalizer::SetEnabled
设置相关状态或配置。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/Equalizer.h`
## 签名
```cpp
void SetEnabled(bool enabled) override;
```
该方法声明于 `XCEngine/Audio/Equalizer.h`,当前页面用于固定 `Equalizer` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
- `enabled` - 参数语义详见头文件声明。
更新 `m_enabled`
**返回:** `void` - 无返回值。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/Equalizer.h>
void Example() {
XCEngine::Audio::Equalizer object;
// 根据上下文补齐参数后调用 Equalizer::SetEnabled(...)。
(void)object;
}
```
- 会更新 `m_enabled`
## 相关文档
- [返回类总览](Equalizer.md)
- [返回模块目录](../Audio.md)
- [Equalizer](Equalizer.md)

View File

@@ -1,31 +1,27 @@
# Equalizer::SetWetMix
设置相关状态或配置。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/Equalizer.h`
## 签名
```cpp
void SetWetMix(float wetMix) override;
```
该方法声明于 `XCEngine/Audio/Equalizer.h`,当前页面用于固定 `Equalizer` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
- `wetMix` - 参数语义详见头文件声明。
更新 `m_wetMix`
**返回:** `void` - 无返回值。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/Equalizer.h>
void Example() {
XCEngine::Audio::Equalizer object;
// 根据上下文补齐参数后调用 Equalizer::SetWetMix(...)。
(void)object;
}
```
- 会更新 `m_wetMix`
- 当前实现会调用 `max``min`
## 相关文档
- [返回类总览](Equalizer.md)
- [返回模块目录](../Audio.md)
- [Equalizer](Equalizer.md)
- [GetWetMix](GetWetMix.md)

View File

@@ -1,41 +1,26 @@
# FFTFilter::FFTFilter()
构造对象。
**命名空间**: `XCEngine::Audio`
该方法在 `XCEngine/Audio/FFTFilter.h` 中提供了 2 个重载,当前页面统一汇总这些公开声明。
**类型**: `method`
## 重载 1: 声明
**头文件**: `XCEngine/Audio/FFTFilter.h`
## 签名
```cpp
FFTFilter();
```
**参数:** 无。
**返回:** `void` - 无返回值。
## 重载 2: 声明
```cpp
explicit FFTFilter(uint32 fftSize);
```
**参数:**
- `fftSize` - 参数语义详见头文件声明。
## 作用
**返回:** `void` - 无返回值
构造 `FFTFilter` 实例
**示例:**
## 当前实现
```cpp
#include <XCEngine/Audio/FFTFilter.h>
void Example() {
XCEngine::Audio::FFTFilter object;
}
```
- 具体定义位于 `engine/src/Audio/FFTFilter.cpp`
## 相关文档
- [返回类总览](FFTFilter.md)
- [返回模块目录](../Audio.md)
- [FFTFilter](FFTFilter.md)

View File

@@ -1,29 +1,27 @@
# FFTFilter::~FFTFilter()
销毁对象并释放相关资源。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/FFTFilter.h`
## 签名
```cpp
~FFTFilter() override;
```
该方法声明于 `XCEngine/Audio/FFTFilter.h`,当前页面用于固定 `FFTFilter` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
执行 `kiss_fft_free``kiss_fftr_free` 协同流程
**返回:** `void` - 无返回值。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/FFTFilter.h>
void Example() {
XCEngine::Audio::FFTFilter object;
// 对象离开作用域时会自动触发析构。
}
```
- 会更新 `m_fftConfig``m_fftrConfig`
- 当前实现会调用 `kiss_fft_free``kiss_fftr_free`
- 包含 `nullptr` 相关分支。
## 相关文档
- [返回类总览](FFTFilter.md)
- [返回模块目录](../Audio.md)
- [FFTFilter](FFTFilter.md)

View File

@@ -1,30 +1,26 @@
# FFTFilter::GetFFTSize
获取相关状态或对象。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/FFTFilter.h`
## 签名
```cpp
uint32 GetFFTSize() const;
```
该方法声明于 `XCEngine/Audio/FFTFilter.h`,当前页面用于固定 `FFTFilter` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
返回 `m_fftSize` 当前值
**返回:** `uint32` - 返回值语义详见头文件声明。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/FFTFilter.h>
void Example() {
XCEngine::Audio::FFTFilter object;
// 根据上下文补齐参数后调用 FFTFilter::GetFFTSize(...)。
(void)object;
}
```
- 返回 `m_fftSize` 当前值。
## 相关文档
- [返回类总览](FFTFilter.md)
- [返回模块目录](../Audio.md)
- [FFTFilter](FFTFilter.md)
- [SetFFTSize](SetFFTSize.md)

View File

@@ -1,30 +1,26 @@
# FFTFilter::GetSmoothingFactor
获取相关状态或对象。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/FFTFilter.h`
## 签名
```cpp
float GetSmoothingFactor() const;
```
该方法声明于 `XCEngine/Audio/FFTFilter.h`,当前页面用于固定 `FFTFilter` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
返回 `m_smoothingFactor` 当前值
**返回:** `float` - 返回值语义详见头文件声明。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/FFTFilter.h>
void Example() {
XCEngine::Audio::FFTFilter object;
// 根据上下文补齐参数后调用 FFTFilter::GetSmoothingFactor(...)。
(void)object;
}
```
- 返回 `m_smoothingFactor` 当前值。
## 相关文档
- [返回类总览](FFTFilter.md)
- [返回模块目录](../Audio.md)
- [FFTFilter](FFTFilter.md)
- [SetSmoothingFactor](SetSmoothingFactor.md)

View File

@@ -1,30 +1,26 @@
# FFTFilter::GetSpectrumData
获取相关状态或对象。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/FFTFilter.h`
## 签名
```cpp
const float* GetSpectrumData() const;
```
该方法声明于 `XCEngine/Audio/FFTFilter.h`,当前页面用于固定 `FFTFilter` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
更新 `m_spectrumData`
**返回:** `const float*` - 返回值语义详见头文件声明。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/FFTFilter.h>
void Example() {
XCEngine::Audio::FFTFilter object;
// 根据上下文补齐参数后调用 FFTFilter::GetSpectrumData(...)。
(void)object;
}
```
- 会更新 `m_spectrumData`
- 当前实现会调用 `data`
## 相关文档
- [返回类总览](FFTFilter.md)
- [返回模块目录](../Audio.md)
- [FFTFilter](FFTFilter.md)

View File

@@ -1,30 +1,26 @@
# FFTFilter::GetSpectrumSize
获取相关状态或对象。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/FFTFilter.h`
## 签名
```cpp
size_t GetSpectrumSize() const;
```
该方法声明于 `XCEngine/Audio/FFTFilter.h`,当前页面用于固定 `FFTFilter` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
更新 `m_spectrumData`
**返回:** `size_t` - 返回值语义详见头文件声明。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/FFTFilter.h>
void Example() {
XCEngine::Audio::FFTFilter object;
// 根据上下文补齐参数后调用 FFTFilter::GetSpectrumSize(...)。
(void)object;
}
```
- 会更新 `m_spectrumData`
- 当前实现会调用 `size`
## 相关文档
- [返回类总览](FFTFilter.md)
- [返回模块目录](../Audio.md)
- [FFTFilter](FFTFilter.md)

View File

@@ -1,33 +1,26 @@
# FFTFilter::ProcessAudio
公开方法,详见头文件声明。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/FFTFilter.h`
## 签名
```cpp
void ProcessAudio(float* buffer, uint32 sampleCount, uint32 channels) override;
```
该方法声明于 `XCEngine/Audio/FFTFilter.h`,当前页面用于固定 `FFTFilter` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
- `buffer` - 参数语义详见头文件声明。
- `sampleCount` - 参数语义详见头文件声明。
- `channels` - 参数语义详见头文件声明。
执行 `size``resize` 协同流程。
**返回:** `void` - 无返回值。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/FFTFilter.h>
void Example() {
XCEngine::Audio::FFTFilter object;
// 根据上下文补齐参数后调用 FFTFilter::ProcessAudio(...)。
(void)object;
}
```
- 当前实现会调用 `size``resize``monoBuffer``ComputeFFT`
- 包含 `nullptr` 相关分支。
## 相关文档
- [返回类总览](FFTFilter.md)
- [返回模块目录](../Audio.md)
- [FFTFilter](FFTFilter.md)

View File

@@ -1,31 +1,27 @@
# FFTFilter::SetFFTSize
设置相关状态或配置。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/FFTFilter.h`
## 签名
```cpp
void SetFFTSize(uint32 size);
```
该方法声明于 `XCEngine/Audio/FFTFilter.h`,当前页面用于固定 `FFTFilter` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
- `size` - 参数语义详见头文件声明。
更新 `m_fftSize`
**返回:** `void` - 无返回值。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/FFTFilter.h>
void Example() {
XCEngine::Audio::FFTFilter object;
// 根据上下文补齐参数后调用 FFTFilter::SetFFTSize(...)。
(void)object;
}
```
- 会更新 `m_fftSize`
- 当前实现会调用 `resize``InitializeFFT`
## 相关文档
- [返回类总览](FFTFilter.md)
- [返回模块目录](../Audio.md)
- [FFTFilter](FFTFilter.md)
- [GetFFTSize](GetFFTSize.md)

View File

@@ -1,31 +1,27 @@
# FFTFilter::SetSmoothingFactor
设置相关状态或配置。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/FFTFilter.h`
## 签名
```cpp
void SetSmoothingFactor(float factor);
```
该方法声明于 `XCEngine/Audio/FFTFilter.h`,当前页面用于固定 `FFTFilter` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
- `factor` - 参数语义详见头文件声明。
更新 `m_smoothingFactor`
**返回:** `void` - 无返回值。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/FFTFilter.h>
void Example() {
XCEngine::Audio::FFTFilter object;
// 根据上下文补齐参数后调用 FFTFilter::SetSmoothingFactor(...)。
(void)object;
}
```
- 会更新 `m_smoothingFactor`
- 当前实现会调用 `max``min`
## 相关文档
- [返回类总览](FFTFilter.md)
- [返回模块目录](../Audio.md)
- [FFTFilter](FFTFilter.md)
- [GetSmoothingFactor](GetSmoothingFactor.md)

View File

@@ -1,28 +1,25 @@
# HRTF::HRTF()
构造对象。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/HRTF.h`
## 签名
```cpp
HRTF();
```
该方法声明于 `XCEngine/Audio/HRTF.h`,当前页面用于固定 `HRTF` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
构造 `HRTF` 实例
**返回:** `void` - 无返回值。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/HRTF.h>
void Example() {
XCEngine::Audio::HRTF object;
}
```
- 具体定义位于 `engine/src/Audio/HRTF.cpp`
## 相关文档
- [返回类总览](HRTF.md)
- [返回模块目录](../Audio.md)
- [HRTF](HRTF.md)

View File

@@ -1,29 +1,25 @@
# HRTF::~HRTF()
销毁对象并释放相关资源。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/HRTF.h`
## 签名
```cpp
~HRTF();
```
该方法声明于 `XCEngine/Audio/HRTF.h`,当前页面用于固定 `HRTF` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
当前实现为空
**返回:** `void` - 无返回值。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/HRTF.h>
void Example() {
XCEngine::Audio::HRTF object;
// 对象离开作用域时会自动触发析构。
}
```
- 当前函数体为空。
## 相关文档
- [返回类总览](HRTF.md)
- [返回模块目录](../Audio.md)
- [HRTF](HRTF.md)

View File

@@ -1,30 +1,26 @@
# HRTF::GetCrossFeed
获取相关状态或对象。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/HRTF.h`
## 签名
```cpp
float GetCrossFeed() const;
```
该方法声明于 `XCEngine/Audio/HRTF.h`,当前页面用于固定 `HRTF` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
返回 `m_crossFeed` 当前值
**返回:** `float` - 返回值语义详见头文件声明。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/HRTF.h>
void Example() {
XCEngine::Audio::HRTF object;
// 根据上下文补齐参数后调用 HRTF::GetCrossFeed(...)。
(void)object;
}
```
- 返回 `m_crossFeed` 当前值。
## 相关文档
- [返回类总览](HRTF.md)
- [返回模块目录](../Audio.md)
- [HRTF](HRTF.md)
- [SetCrossFeed](SetCrossFeed.md)

View File

@@ -1,30 +1,26 @@
# HRTF::GetQualityLevel
获取相关状态或对象。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/HRTF.h`
## 签名
```cpp
uint32 GetQualityLevel() const;
```
该方法声明于 `XCEngine/Audio/HRTF.h`,当前页面用于固定 `HRTF` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
返回 `m_qualityLevel` 当前值
**返回:** `uint32` - 返回值语义详见头文件声明。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/HRTF.h>
void Example() {
XCEngine::Audio::HRTF object;
// 根据上下文补齐参数后调用 HRTF::GetQualityLevel(...)。
(void)object;
}
```
- 返回 `m_qualityLevel` 当前值。
## 相关文档
- [返回类总览](HRTF.md)
- [返回模块目录](../Audio.md)
- [HRTF](HRTF.md)
- [SetQualityLevel](SetQualityLevel.md)

View File

@@ -1,30 +1,26 @@
# HRTF::GetSpeedOfSound
获取相关状态或对象。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/HRTF.h`
## 签名
```cpp
float GetSpeedOfSound() const;
```
该方法声明于 `XCEngine/Audio/HRTF.h`,当前页面用于固定 `HRTF` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
返回 `m_speedOfSound` 当前值
**返回:** `float` - 返回值语义详见头文件声明。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/HRTF.h>
void Example() {
XCEngine::Audio::HRTF object;
// 根据上下文补齐参数后调用 HRTF::GetSpeedOfSound(...)。
(void)object;
}
```
- 返回 `m_speedOfSound` 当前值。
## 相关文档
- [返回类总览](HRTF.md)
- [返回模块目录](../Audio.md)
- [HRTF](HRTF.md)
- [SetSpeedOfSound](SetSpeedOfSound.md)

View File

@@ -1,30 +1,25 @@
# HRTF::IsDopplerShiftEnabled
查询当前状态。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/HRTF.h`
## 签名
```cpp
bool IsDopplerShiftEnabled() const;
```
该方法声明于 `XCEngine/Audio/HRTF.h`,当前页面用于固定 `HRTF` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
返回 `m_dopplerEnabled` 当前值
**返回:** `bool` - 返回值语义详见头文件声明。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/HRTF.h>
void Example() {
XCEngine::Audio::HRTF object;
// 根据上下文补齐参数后调用 HRTF::IsDopplerShiftEnabled(...)。
(void)object;
}
```
- 返回 `m_dopplerEnabled` 当前值。
## 相关文档
- [返回类总览](HRTF.md)
- [返回模块目录](../Audio.md)
- [HRTF](HRTF.md)

View File

@@ -1,30 +1,25 @@
# HRTF::IsEnabled
查询当前状态。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/HRTF.h`
## 签名
```cpp
bool IsEnabled() const;
```
该方法声明于 `XCEngine/Audio/HRTF.h`,当前页面用于固定 `HRTF` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
返回 `m_enabled` 当前值
**返回:** `bool` - 返回值语义详见头文件声明。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/HRTF.h>
void Example() {
XCEngine::Audio::HRTF object;
// 根据上下文补齐参数后调用 HRTF::IsEnabled(...)。
(void)object;
}
```
- 返回 `m_enabled` 当前值。
## 相关文档
- [返回类总览](HRTF.md)
- [返回模块目录](../Audio.md)
- [HRTF](HRTF.md)

View File

@@ -1,30 +1,25 @@
# HRTF::IsHRTFEnabled
查询当前状态。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/HRTF.h`
## 签名
```cpp
bool IsHRTFEnabled() const;
```
该方法声明于 `XCEngine/Audio/HRTF.h`,当前页面用于固定 `HRTF` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
返回 `m_hrtfEnabled` 当前值
**返回:** `bool` - 返回值语义详见头文件声明。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/HRTF.h>
void Example() {
XCEngine::Audio::HRTF object;
// 根据上下文补齐参数后调用 HRTF::IsHRTFEnabled(...)。
(void)object;
}
```
- 返回 `m_hrtfEnabled` 当前值。
## 相关文档
- [返回类总览](HRTF.md)
- [返回模块目录](../Audio.md)
- [HRTF](HRTF.md)

View File

@@ -1,36 +1,26 @@
# HRTF::ProcessAudio
公开方法,详见头文件声明。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/HRTF.h`
## 签名
```cpp
void ProcessAudio(float* buffer, uint32 sampleCount, uint32 channels, const Math::Vector3& sourcePosition, const Math::Vector3& listenerPosition, const Math::Quaternion& listenerRotation);
```
该方法声明于 `XCEngine/Audio/HRTF.h`,当前页面用于固定 `HRTF` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
- `buffer` - 参数语义详见头文件声明。
- `sampleCount` - 参数语义详见头文件声明。
- `channels` - 参数语义详见头文件声明。
- `sourcePosition` - 参数语义详见头文件声明。
- `listenerPosition` - 参数语义详见头文件声明。
- `listenerRotation` - 参数语义详见头文件声明。
执行 `ComputeDirection``ComputeITD``ComputeILD` 协同流程。
**返回:** `void` - 无返回值。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/HRTF.h>
void Example() {
XCEngine::Audio::HRTF object;
// 根据上下文补齐参数后调用 HRTF::ProcessAudio(...)。
(void)object;
}
```
- 当前实现会调用 `ComputeDirection``ComputeITD``ComputeILD``ApplyHRTF``ApplySimplePanning`
- 包含 `nullptr` 相关分支。
## 相关文档
- [返回类总览](HRTF.md)
- [返回模块目录](../Audio.md)
- [HRTF](HRTF.md)

View File

@@ -1,31 +1,27 @@
# HRTF::SetCrossFeed
设置相关状态或配置。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/HRTF.h`
## 签名
```cpp
void SetCrossFeed(float crossFeed);
```
该方法声明于 `XCEngine/Audio/HRTF.h`,当前页面用于固定 `HRTF` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
- `crossFeed` - 参数语义详见头文件声明。
更新 `m_crossFeed`
**返回:** `void` - 无返回值。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/HRTF.h>
void Example() {
XCEngine::Audio::HRTF object;
// 根据上下文补齐参数后调用 HRTF::SetCrossFeed(...)。
(void)object;
}
```
- 会更新 `m_crossFeed`
- 当前实现会调用 `max``min`
## 相关文档
- [返回类总览](HRTF.md)
- [返回模块目录](../Audio.md)
- [HRTF](HRTF.md)
- [GetCrossFeed](GetCrossFeed.md)

View File

@@ -1,31 +1,25 @@
# HRTF::SetDopplerShiftEnabled
设置相关状态或配置。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/HRTF.h`
## 签名
```cpp
void SetDopplerShiftEnabled(bool enabled);
```
该方法声明于 `XCEngine/Audio/HRTF.h`,当前页面用于固定 `HRTF` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
- `enabled` - 参数语义详见头文件声明。
更新 `m_dopplerEnabled`
**返回:** `void` - 无返回值。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/HRTF.h>
void Example() {
XCEngine::Audio::HRTF object;
// 根据上下文补齐参数后调用 HRTF::SetDopplerShiftEnabled(...)。
(void)object;
}
```
- 会更新 `m_dopplerEnabled`
## 相关文档
- [返回类总览](HRTF.md)
- [返回模块目录](../Audio.md)
- [HRTF](HRTF.md)

View File

@@ -1,31 +1,25 @@
# HRTF::SetEnabled
设置相关状态或配置。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/HRTF.h`
## 签名
```cpp
void SetEnabled(bool enabled);
```
该方法声明于 `XCEngine/Audio/HRTF.h`,当前页面用于固定 `HRTF` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
- `enabled` - 参数语义详见头文件声明。
更新 `m_enabled`
**返回:** `void` - 无返回值。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/HRTF.h>
void Example() {
XCEngine::Audio::HRTF object;
// 根据上下文补齐参数后调用 HRTF::SetEnabled(...)。
(void)object;
}
```
- 会更新 `m_enabled`
## 相关文档
- [返回类总览](HRTF.md)
- [返回模块目录](../Audio.md)
- [HRTF](HRTF.md)

View File

@@ -1,31 +1,25 @@
# HRTF::SetHRTFEnabled
设置相关状态或配置。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/HRTF.h`
## 签名
```cpp
void SetHRTFEnabled(bool enabled);
```
该方法声明于 `XCEngine/Audio/HRTF.h`,当前页面用于固定 `HRTF` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
- `enabled` - 参数语义详见头文件声明。
更新 `m_hrtfEnabled`
**返回:** `void` - 无返回值。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/HRTF.h>
void Example() {
XCEngine::Audio::HRTF object;
// 根据上下文补齐参数后调用 HRTF::SetHRTFEnabled(...)。
(void)object;
}
```
- 会更新 `m_hrtfEnabled`
## 相关文档
- [返回类总览](HRTF.md)
- [返回模块目录](../Audio.md)
- [HRTF](HRTF.md)

View File

@@ -1,31 +1,27 @@
# HRTF::SetQualityLevel
设置相关状态或配置。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/HRTF.h`
## 签名
```cpp
void SetQualityLevel(uint32 level);
```
该方法声明于 `XCEngine/Audio/HRTF.h`,当前页面用于固定 `HRTF` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
- `level` - 参数语义详见头文件声明。
更新 `m_qualityLevel`
**返回:** `void` - 无返回值。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/HRTF.h>
void Example() {
XCEngine::Audio::HRTF object;
// 根据上下文补齐参数后调用 HRTF::SetQualityLevel(...)。
(void)object;
}
```
- 会更新 `m_qualityLevel`
- 当前实现会调用 `max``min`
## 相关文档
- [返回类总览](HRTF.md)
- [返回模块目录](../Audio.md)
- [HRTF](HRTF.md)
- [GetQualityLevel](GetQualityLevel.md)

View File

@@ -1,31 +1,27 @@
# HRTF::SetSpeedOfSound
设置相关状态或配置。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/HRTF.h`
## 签名
```cpp
void SetSpeedOfSound(float speed);
```
该方法声明于 `XCEngine/Audio/HRTF.h`,当前页面用于固定 `HRTF` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
- `speed` - 参数语义详见头文件声明。
更新 `m_speedOfSound`
**返回:** `void` - 无返回值。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/HRTF.h>
void Example() {
XCEngine::Audio::HRTF object;
// 根据上下文补齐参数后调用 HRTF::SetSpeedOfSound(...)。
(void)object;
}
```
- 会更新 `m_speedOfSound`
- 当前实现会调用 `max`
## 相关文档
- [返回类总览](HRTF.md)
- [返回模块目录](../Audio.md)
- [HRTF](HRTF.md)
- [GetSpeedOfSound](GetSpeedOfSound.md)

View File

@@ -1,29 +1,25 @@
# IAudioBackend::~IAudioBackend()
销毁对象并释放相关资源。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/IAudioBackend.h`
## 签名
```cpp
virtual ~IAudioBackend() = default;
```
该方法声明于 `XCEngine/Audio/IAudioBackend.h`,当前页面用于固定 `IAudioBackend` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
销毁 `IAudioBackend` 实例
**返回:** `void` - 无返回值。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/IAudioBackend.h>
void Example() {
XCEngine::Audio::IAudioBackend object;
// 对象离开作用域时会自动触发析构。
}
```
- 当前为默认析构实现。
## 相关文档
- [返回类总览](IAudioBackend.md)
- [返回模块目录](../Audio.md)
- [IAudioBackend](IAudioBackend.md)

View File

@@ -1,31 +1,25 @@
# IAudioBackend::GetAvailableDevices
获取相关状态或对象。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/IAudioBackend.h`
## 签名
```cpp
virtual void GetAvailableDevices(std::vector<std::string>& devices) = 0;
```
该方法声明于 `XCEngine/Audio/IAudioBackend.h`,当前页面用于固定 `IAudioBackend` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
- `devices` - 参数语义详见头文件声明。
纯虚接口。
**返回:** `void` - 无返回值。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/IAudioBackend.h>
void Example() {
XCEngine::Audio::IAudioBackend object;
// 根据上下文补齐参数后调用 IAudioBackend::GetAvailableDevices(...)。
(void)object;
}
```
- 该声明是纯虚接口,基类不提供实现。
## 相关文档
- [返回类总览](IAudioBackend.md)
- [返回模块目录](../Audio.md)
- [IAudioBackend](IAudioBackend.md)

View File

@@ -1,30 +1,25 @@
# IAudioBackend::GetConfig
获取相关状态或对象。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/IAudioBackend.h`
## 签名
```cpp
virtual AudioConfig GetConfig() const = 0;
```
该方法声明于 `XCEngine/Audio/IAudioBackend.h`,当前页面用于固定 `IAudioBackend` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
纯虚接口
**返回:** `AudioConfig` - 返回值语义详见头文件声明。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/IAudioBackend.h>
void Example() {
XCEngine::Audio::IAudioBackend object;
// 根据上下文补齐参数后调用 IAudioBackend::GetConfig(...)。
(void)object;
}
```
- 该声明是纯虚接口,基类不提供实现。
## 相关文档
- [返回类总览](IAudioBackend.md)
- [返回模块目录](../Audio.md)
- [IAudioBackend](IAudioBackend.md)

View File

@@ -1,30 +1,25 @@
# IAudioBackend::GetDeviceName
获取相关状态或对象。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/IAudioBackend.h`
## 签名
```cpp
virtual std::string GetDeviceName() const = 0;
```
该方法声明于 `XCEngine/Audio/IAudioBackend.h`,当前页面用于固定 `IAudioBackend` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
纯虚接口
**返回:** `std::string` - 返回值语义详见头文件声明。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/IAudioBackend.h>
void Example() {
XCEngine::Audio::IAudioBackend object;
// 根据上下文补齐参数后调用 IAudioBackend::GetDeviceName(...)。
(void)object;
}
```
- 该声明是纯虚接口,基类不提供实现。
## 相关文档
- [返回类总览](IAudioBackend.md)
- [返回模块目录](../Audio.md)
- [IAudioBackend](IAudioBackend.md)

View File

@@ -1,30 +1,26 @@
# IAudioBackend::GetMasterVolume
获取相关状态或对象。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/IAudioBackend.h`
## 签名
```cpp
virtual float GetMasterVolume() const = 0;
```
该方法声明于 `XCEngine/Audio/IAudioBackend.h`,当前页面用于固定 `IAudioBackend` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
纯虚接口
**返回:** `float` - 返回值语义详见头文件声明。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/IAudioBackend.h>
void Example() {
XCEngine::Audio::IAudioBackend object;
// 根据上下文补齐参数后调用 IAudioBackend::GetMasterVolume(...)。
(void)object;
}
```
- 该声明是纯虚接口,基类不提供实现。
## 相关文档
- [返回类总览](IAudioBackend.md)
- [返回模块目录](../Audio.md)
- [IAudioBackend](IAudioBackend.md)
- [SetMasterVolume](SetMasterVolume.md)

View File

@@ -1,31 +1,25 @@
# IAudioBackend::Initialize
初始化内部状态。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/IAudioBackend.h`
## 签名
```cpp
virtual bool Initialize(const AudioConfig& config) = 0;
```
该方法声明于 `XCEngine/Audio/IAudioBackend.h`,当前页面用于固定 `IAudioBackend` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
- `config` - 参数语义详见头文件声明。
纯虚接口。
**返回:** `bool` - 返回值语义详见头文件声明。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/IAudioBackend.h>
void Example() {
XCEngine::Audio::IAudioBackend object;
// 根据上下文补齐参数后调用 IAudioBackend::Initialize(...)。
(void)object;
}
```
- 该声明是纯虚接口,基类不提供实现。
## 相关文档
- [返回类总览](IAudioBackend.md)
- [返回模块目录](../Audio.md)
- [IAudioBackend](IAudioBackend.md)

View File

@@ -1,30 +1,25 @@
# IAudioBackend::IsMuted
查询当前状态。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/IAudioBackend.h`
## 签名
```cpp
virtual bool IsMuted() const = 0;
```
该方法声明于 `XCEngine/Audio/IAudioBackend.h`,当前页面用于固定 `IAudioBackend` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
纯虚接口
**返回:** `bool` - 返回值语义详见头文件声明。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/IAudioBackend.h>
void Example() {
XCEngine::Audio::IAudioBackend object;
// 根据上下文补齐参数后调用 IAudioBackend::IsMuted(...)。
(void)object;
}
```
- 该声明是纯虚接口,基类不提供实现。
## 相关文档
- [返回类总览](IAudioBackend.md)
- [返回模块目录](../Audio.md)
- [IAudioBackend](IAudioBackend.md)

View File

@@ -1,30 +1,25 @@
# IAudioBackend::IsRunning
查询当前状态。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/IAudioBackend.h`
## 签名
```cpp
virtual bool IsRunning() const = 0;
```
该方法声明于 `XCEngine/Audio/IAudioBackend.h`,当前页面用于固定 `IAudioBackend` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
纯虚接口
**返回:** `bool` - 返回值语义详见头文件声明。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/IAudioBackend.h>
void Example() {
XCEngine::Audio::IAudioBackend object;
// 根据上下文补齐参数后调用 IAudioBackend::IsRunning(...)。
(void)object;
}
```
- 该声明是纯虚接口,基类不提供实现。
## 相关文档
- [返回类总览](IAudioBackend.md)
- [返回模块目录](../Audio.md)
- [IAudioBackend](IAudioBackend.md)

View File

@@ -1,34 +1,25 @@
# IAudioBackend::ProcessAudio
公开方法,详见头文件声明。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/IAudioBackend.h`
## 签名
```cpp
virtual void ProcessAudio(float* buffer, uint32 bufferSize, uint32 channels, uint32 sampleRate) = 0;
```
该方法声明于 `XCEngine/Audio/IAudioBackend.h`,当前页面用于固定 `IAudioBackend` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
- `buffer` - 参数语义详见头文件声明。
- `bufferSize` - 参数语义详见头文件声明。
- `channels` - 参数语义详见头文件声明。
- `sampleRate` - 参数语义详见头文件声明。
纯虚接口。
**返回:** `void` - 无返回值。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/IAudioBackend.h>
void Example() {
XCEngine::Audio::IAudioBackend object;
// 根据上下文补齐参数后调用 IAudioBackend::ProcessAudio(...)。
(void)object;
}
```
- 该声明是纯虚接口,基类不提供实现。
## 相关文档
- [返回类总览](IAudioBackend.md)
- [返回模块目录](../Audio.md)
- [IAudioBackend](IAudioBackend.md)

View File

@@ -1,30 +1,25 @@
# IAudioBackend::Resume
公开方法,详见头文件声明。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/IAudioBackend.h`
## 签名
```cpp
virtual void Resume() = 0;
```
该方法声明于 `XCEngine/Audio/IAudioBackend.h`,当前页面用于固定 `IAudioBackend` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
纯虚接口
**返回:** `void` - 无返回值。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/IAudioBackend.h>
void Example() {
XCEngine::Audio::IAudioBackend object;
// 根据上下文补齐参数后调用 IAudioBackend::Resume(...)。
(void)object;
}
```
- 该声明是纯虚接口,基类不提供实现。
## 相关文档
- [返回类总览](IAudioBackend.md)
- [返回模块目录](../Audio.md)
- [IAudioBackend](IAudioBackend.md)

View File

@@ -1,31 +1,25 @@
# IAudioBackend::SetDevice
设置相关状态或配置。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/IAudioBackend.h`
## 签名
```cpp
virtual bool SetDevice(const std::string& deviceName) = 0;
```
该方法声明于 `XCEngine/Audio/IAudioBackend.h`,当前页面用于固定 `IAudioBackend` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
- `deviceName` - 参数语义详见头文件声明。
纯虚接口。
**返回:** `bool` - 返回值语义详见头文件声明。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/IAudioBackend.h>
void Example() {
XCEngine::Audio::IAudioBackend object;
// 根据上下文补齐参数后调用 IAudioBackend::SetDevice(...)。
(void)object;
}
```
- 该声明是纯虚接口,基类不提供实现。
## 相关文档
- [返回类总览](IAudioBackend.md)
- [返回模块目录](../Audio.md)
- [IAudioBackend](IAudioBackend.md)

View File

@@ -1,31 +1,26 @@
# IAudioBackend::SetMasterVolume
设置相关状态或配置。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/IAudioBackend.h`
## 签名
```cpp
virtual void SetMasterVolume(float volume) = 0;
```
该方法声明于 `XCEngine/Audio/IAudioBackend.h`,当前页面用于固定 `IAudioBackend` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
- `volume` - 参数语义详见头文件声明。
纯虚接口。
**返回:** `void` - 无返回值。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/IAudioBackend.h>
void Example() {
XCEngine::Audio::IAudioBackend object;
// 根据上下文补齐参数后调用 IAudioBackend::SetMasterVolume(...)。
(void)object;
}
```
- 该声明是纯虚接口,基类不提供实现。
## 相关文档
- [返回类总览](IAudioBackend.md)
- [返回模块目录](../Audio.md)
- [IAudioBackend](IAudioBackend.md)
- [GetMasterVolume](GetMasterVolume.md)

View File

@@ -1,31 +1,25 @@
# IAudioBackend::SetMuted
设置相关状态或配置。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/IAudioBackend.h`
## 签名
```cpp
virtual void SetMuted(bool muted) = 0;
```
该方法声明于 `XCEngine/Audio/IAudioBackend.h`,当前页面用于固定 `IAudioBackend` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
- `muted` - 参数语义详见头文件声明。
纯虚接口。
**返回:** `void` - 无返回值。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/IAudioBackend.h>
void Example() {
XCEngine::Audio::IAudioBackend object;
// 根据上下文补齐参数后调用 IAudioBackend::SetMuted(...)。
(void)object;
}
```
- 该声明是纯虚接口,基类不提供实现。
## 相关文档
- [返回类总览](IAudioBackend.md)
- [返回模块目录](../Audio.md)
- [IAudioBackend](IAudioBackend.md)

View File

@@ -1,30 +1,25 @@
# IAudioBackend::Shutdown
关闭并清理内部状态。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/IAudioBackend.h`
## 签名
```cpp
virtual void Shutdown() = 0;
```
该方法声明于 `XCEngine/Audio/IAudioBackend.h`,当前页面用于固定 `IAudioBackend` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
纯虚接口
**返回:** `void` - 无返回值。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/IAudioBackend.h>
void Example() {
XCEngine::Audio::IAudioBackend object;
// 根据上下文补齐参数后调用 IAudioBackend::Shutdown(...)。
(void)object;
}
```
- 该声明是纯虚接口,基类不提供实现。
## 相关文档
- [返回类总览](IAudioBackend.md)
- [返回模块目录](../Audio.md)
- [IAudioBackend](IAudioBackend.md)

View File

@@ -1,30 +1,25 @@
# IAudioBackend::Start
公开方法,详见头文件声明。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/IAudioBackend.h`
## 签名
```cpp
virtual void Start() = 0;
```
该方法声明于 `XCEngine/Audio/IAudioBackend.h`,当前页面用于固定 `IAudioBackend` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
纯虚接口
**返回:** `void` - 无返回值。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/IAudioBackend.h>
void Example() {
XCEngine::Audio::IAudioBackend object;
// 根据上下文补齐参数后调用 IAudioBackend::Start(...)。
(void)object;
}
```
- 该声明是纯虚接口,基类不提供实现。
## 相关文档
- [返回类总览](IAudioBackend.md)
- [返回模块目录](../Audio.md)
- [IAudioBackend](IAudioBackend.md)

View File

@@ -1,30 +1,25 @@
# IAudioBackend::Stop
公开方法,详见头文件声明。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/IAudioBackend.h`
## 签名
```cpp
virtual void Stop() = 0;
```
该方法声明于 `XCEngine/Audio/IAudioBackend.h`,当前页面用于固定 `IAudioBackend` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
纯虚接口
**返回:** `void` - 无返回值。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/IAudioBackend.h>
void Example() {
XCEngine::Audio::IAudioBackend object;
// 根据上下文补齐参数后调用 IAudioBackend::Stop(...)。
(void)object;
}
```
- 该声明是纯虚接口,基类不提供实现。
## 相关文档
- [返回类总览](IAudioBackend.md)
- [返回模块目录](../Audio.md)
- [IAudioBackend](IAudioBackend.md)

View File

@@ -1,30 +1,25 @@
# IAudioBackend::Suspend
公开方法,详见头文件声明。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/IAudioBackend.h`
## 签名
```cpp
virtual void Suspend() = 0;
```
该方法声明于 `XCEngine/Audio/IAudioBackend.h`,当前页面用于固定 `IAudioBackend` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
纯虚接口
**返回:** `void` - 无返回值。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/IAudioBackend.h>
void Example() {
XCEngine::Audio::IAudioBackend object;
// 根据上下文补齐参数后调用 IAudioBackend::Suspend(...)。
(void)object;
}
```
- 该声明是纯虚接口,基类不提供实现。
## 相关文档
- [返回类总览](IAudioBackend.md)
- [返回模块目录](../Audio.md)
- [IAudioBackend](IAudioBackend.md)

View File

@@ -1,29 +1,25 @@
# IAudioEffect::~IAudioEffect()
销毁对象并释放相关资源。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/IAudioEffect.h`
## 签名
```cpp
virtual ~IAudioEffect() = default;
```
该方法声明于 `XCEngine/Audio/IAudioEffect.h`,当前页面用于固定 `IAudioEffect` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
销毁 `IAudioEffect` 实例
**返回:** `void` - 无返回值。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/IAudioEffect.h>
void Example() {
XCEngine::Audio::IAudioEffect object;
// 对象离开作用域时会自动触发析构。
}
```
- 当前为默认析构实现。
## 相关文档
- [返回类总览](IAudioEffect.md)
- [返回模块目录](../Audio.md)
- [IAudioEffect](IAudioEffect.md)

View File

@@ -1,30 +1,26 @@
# IAudioEffect::GetWetMix
获取相关状态或对象。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/IAudioEffect.h`
## 签名
```cpp
virtual float GetWetMix() const;
```
该方法声明于 `XCEngine/Audio/IAudioEffect.h`,当前页面用于固定 `IAudioEffect` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
返回 `m_wetMix` 当前值
**返回:** `float` - 返回值语义详见头文件声明。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/IAudioEffect.h>
void Example() {
XCEngine::Audio::IAudioEffect object;
// 根据上下文补齐参数后调用 IAudioEffect::GetWetMix(...)。
(void)object;
}
```
- 返回 `m_wetMix` 当前值。
## 相关文档
- [返回类总览](IAudioEffect.md)
- [返回模块目录](../Audio.md)
- [IAudioEffect](IAudioEffect.md)
- [SetWetMix](SetWetMix.md)

View File

@@ -1,30 +1,25 @@
# IAudioEffect::IsEnabled
查询当前状态。
**命名空间**: `XCEngine::Audio`
**类型**: `method`
**头文件**: `XCEngine/Audio/IAudioEffect.h`
## 签名
```cpp
virtual bool IsEnabled() const;
```
该方法声明于 `XCEngine/Audio/IAudioEffect.h`,当前页面用于固定 `IAudioEffect` 类目录下的方法级 canonical 路径。
## 作用
**参数:**
返回 `m_enabled` 当前值
**返回:** `bool` - 返回值语义详见头文件声明。
## 当前实现
**示例:**
```cpp
#include <XCEngine/Audio/IAudioEffect.h>
void Example() {
XCEngine::Audio::IAudioEffect object;
// 根据上下文补齐参数后调用 IAudioEffect::IsEnabled(...)。
(void)object;
}
```
- 返回 `m_enabled` 当前值。
## 相关文档
- [返回类总览](IAudioEffect.md)
- [返回模块目录](../Audio.md)
- [IAudioEffect](IAudioEffect.md)

Some files were not shown because too many files have changed in this diff Show More