docs: sync api and planning docs
This commit is contained in:
294
AGENT.md
294
AGENT.md
@@ -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
697
README.md
@@ -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)
|
||||
|
||||
## 许可证
|
||||
## 许可说明
|
||||
|
||||
当前仓库根目录未看到独立的顶层许可证文件。涉及第三方库时,请分别遵循其所在目录中的许可证或随附说明。
|
||||
|
||||
@@ -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、平台条件和线程语义都已写清
|
||||
- 对应源码、测试、调用链已经核对
|
||||
- 文档页内容已经改到当前实现
|
||||
- 过期页面和交叉链接已经清理
|
||||
- 任务池记录已最小更新
|
||||
- 审计脚本重新执行且结果全绿
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
Reference in New Issue
Block a user