From a9f882f233a0f28156c9a0de2c8cc2049ffb14fe Mon Sep 17 00:00:00 2001 From: ssdfasd <2156608475@qq.com> Date: Thu, 19 Mar 2026 00:31:14 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E4=BF=AE=E6=AD=A3=20API=20=E6=96=87?= =?UTF-8?q?=E6=A1=A3=E5=87=86=E7=A1=AE=E6=80=A7=20(=E7=AC=AC=E4=BA=8C?= =?UTF-8?q?=E8=BD=AE=E6=A3=80=E6=9F=A5)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复的问题: - math: 修复 Quaternion::Normalize 链接错误 - containers: HashMap 迭代器示例使用不存在的 cbegin/cend,删除冗余构造函数声明 - core: RefCounted 析构函数访问级别修正 (protected) - debug: LogLevelToString 示例返回值大小写修正 - memory: 修正 LinearAllocator::Reallocate 返回 nullptr,ProxyAllocator 统计描述,头文件路径 IAllocator.h -> Allocator.h - resources: Texture::Create mipLevels 参数描述修正 - rhi: 修复多处链接错误,新增缺失的方法文档 - threading: TaskSystem 配置项未实现状态标注,Wait 方法空实现标注 --- docs/api/containers/hashmap/iterator.md | 2 +- docs/api/containers/string/constructor.md | 1 - docs/api/core/refcounted/refcounted.md | 3 +-- docs/api/debug/loglevel/logleveltostring.md | 2 +- docs/api/math/quaternion/quaternion.md | 2 +- docs/api/memory/allocator/allocate.md | 2 +- docs/api/memory/allocator/free.md | 2 +- .../memory/allocator/get-allocation-count.md | 2 +- docs/api/memory/allocator/get-name.md | 2 +- .../memory/allocator/get-peak-allocated.md | 2 +- .../memory/allocator/get-total-allocated.md | 2 +- docs/api/memory/allocator/get-total-freed.md | 2 +- docs/api/memory/allocator/reallocate.md | 2 +- .../api/memory/linear-allocator/reallocate.md | 17 ++++++++-------- docs/api/memory/proxy-allocator/free.md | 4 +++- docs/api/memory/proxy-allocator/reallocate.md | 6 ++---- docs/api/resources/texture/create.md | 2 +- docs/api/rhi/buffer/buffer.md | 2 +- docs/api/rhi/capabilities/capabilities.md | 12 +++++++++++ docs/api/rhi/command-list/clear.md | 20 +++++++++++++++++++ docs/api/rhi/command-list/close.md | 13 ++++++++++++ docs/api/rhi/command-list/command-list.md | 6 +++--- docs/api/rhi/command-list/reset.md | 13 ++++++++++++ docs/api/rhi/command-queue/command-queue.md | 8 ++++---- .../rhi/command-queue/get-native-handle.md | 15 ++++++++++++++ docs/api/rhi/command-queue/get-type.md | 15 ++++++++++++++ docs/api/rhi/command-queue/shutdown.md | 13 ++++++++++++ docs/api/rhi/fence/fence.md | 6 +++--- docs/api/rhi/fence/get-native-handle.md | 15 ++++++++++++++ docs/api/rhi/fence/shutdown.md | 13 ++++++++++++ .../rhi/pipeline-layout/get-native-handle.md | 15 ++++++++++++++ docs/api/rhi/pipeline-layout/initialize.md | 18 +++++++++++++++++ .../rhi/pipeline-layout/pipeline-layout.md | 6 +++--- docs/api/rhi/pipeline-layout/shutdown.md | 13 ++++++++++++ .../rhi/pipeline-state/get-native-handle.md | 15 ++++++++++++++ docs/api/rhi/pipeline-state/get-type.md | 15 ++++++++++++++ docs/api/rhi/pipeline-state/pipeline-state.md | 10 +++++----- docs/api/rhi/pipeline-state/shutdown.md | 13 ++++++++++++ docs/api/rhi/sampler/get-native-handle.md | 15 ++++++++++++++ docs/api/rhi/sampler/sampler.md | 8 ++++---- docs/api/rhi/sampler/shutdown.md | 13 ++++++++++++ docs/api/rhi/shader/shader.md | 4 ++-- docs/api/rhi/swap-chain/get-native-handle.md | 15 ++++++++++++++ docs/api/rhi/swap-chain/shutdown.md | 13 ++++++++++++ docs/api/rhi/swap-chain/swap-chain.md | 6 +++--- docs/api/rhi/texture/texture.md | 12 +++++------ docs/api/threading/task-system/initialize.md | 6 +++--- docs/api/threading/task-system/task-system.md | 6 ++++-- docs/api/threading/task-system/wait.md | 6 +++--- .../tasksystemconfig/enabletaskprofiling.md | 6 ++++-- .../tasksystemconfig/maxtaskqueuesize.md | 4 +++- .../threading/tasksystemconfig/stealtasks.md | 4 +++- .../tasksystemconfig/tasksystemconfig.md | 8 ++++---- .../tasksystemconfig/threadstacksize.md | 4 +++- 54 files changed, 362 insertions(+), 79 deletions(-) create mode 100644 docs/api/rhi/command-list/clear.md create mode 100644 docs/api/rhi/command-list/close.md create mode 100644 docs/api/rhi/command-list/reset.md create mode 100644 docs/api/rhi/command-queue/get-native-handle.md create mode 100644 docs/api/rhi/command-queue/get-type.md create mode 100644 docs/api/rhi/command-queue/shutdown.md create mode 100644 docs/api/rhi/fence/get-native-handle.md create mode 100644 docs/api/rhi/fence/shutdown.md create mode 100644 docs/api/rhi/pipeline-layout/get-native-handle.md create mode 100644 docs/api/rhi/pipeline-layout/initialize.md create mode 100644 docs/api/rhi/pipeline-layout/shutdown.md create mode 100644 docs/api/rhi/pipeline-state/get-native-handle.md create mode 100644 docs/api/rhi/pipeline-state/get-type.md create mode 100644 docs/api/rhi/pipeline-state/shutdown.md create mode 100644 docs/api/rhi/sampler/get-native-handle.md create mode 100644 docs/api/rhi/sampler/shutdown.md create mode 100644 docs/api/rhi/swap-chain/get-native-handle.md create mode 100644 docs/api/rhi/swap-chain/shutdown.md diff --git a/docs/api/containers/hashmap/iterator.md b/docs/api/containers/hashmap/iterator.md index 49311178..d1653f9f 100644 --- a/docs/api/containers/hashmap/iterator.md +++ b/docs/api/containers/hashmap/iterator.md @@ -34,7 +34,7 @@ for (auto& [key, value] : map) { } // 常量迭代器 -for (auto it = map.cbegin(); it != map.cend(); ++it) { +for (auto it = map.begin(); it != map.end(); ++it) { std::cout << it->first << " -> " << it->second << std::endl; } ``` diff --git a/docs/api/containers/string/constructor.md b/docs/api/containers/string/constructor.md index 52905e01..f1967eb4 100644 --- a/docs/api/containers/string/constructor.md +++ b/docs/api/containers/string/constructor.md @@ -4,7 +4,6 @@ String(); String(const char* str); String(const char* str, SizeType len); -String(const char* str, size_t len); // alias String(const String& other); String(String&& other) noexcept; ``` diff --git a/docs/api/core/refcounted/refcounted.md b/docs/api/core/refcounted/refcounted.md index 3701bfd6..d71a18e1 100644 --- a/docs/api/core/refcounted/refcounted.md +++ b/docs/api/core/refcounted/refcounted.md @@ -17,7 +17,7 @@ | 方法 | 描述 | |------|------| | `RefCounted()` | 构造函数,初始引用计数为 1 | -| `virtual ~RefCounted()` | 虚析构函数 | +| `protected virtual ~RefCounted()` | 虚析构函数(受保护,不允许直接删除) | ### 引用计数 @@ -31,7 +31,6 @@ | 方法 | 描述 | |------|------| -| [RefCounted](RefCounted.md) | 构造函数 | | [AddRef](AddRef.md) | 增加引用计数 | | [Release](Release.md) | 减少引用计数 | | [GetRefCount](GetRefCount.md) | 获取当前引用计数 | diff --git a/docs/api/debug/loglevel/logleveltostring.md b/docs/api/debug/loglevel/logleveltostring.md index 8a76a352..b07e98dd 100644 --- a/docs/api/debug/loglevel/logleveltostring.md +++ b/docs/api/debug/loglevel/logleveltostring.md @@ -20,7 +20,7 @@ const char* LogLevelToString(LogLevel level) XCEngine::Debug::LogLevel level = XCEngine::Debug::LogLevel::Error; const char* str = XCEngine::Debug::LogLevelToString(level); -// str == "Error" +// str == "ERROR" ``` ## 相关文档 diff --git a/docs/api/math/quaternion/quaternion.md b/docs/api/math/quaternion/quaternion.md index 98519c00..96fb64b6 100644 --- a/docs/api/math/quaternion/quaternion.md +++ b/docs/api/math/quaternion/quaternion.md @@ -39,7 +39,7 @@ struct Quaternion { | [Dot(other)](dot.md) | `float` | 点积 | | [Magnitude()](magnitude.md) | `float` | 模长 | | [Normalized()](normalized.md) | `Quaternion` | 归一化 | -| [Normalize(q)](../vector2/normalize.md) | `Quaternion` | 归一化(静态) | +| [Normalize(q)](normalized.md) | `Quaternion` | 归一化(静态) | ## 运算符 diff --git a/docs/api/memory/allocator/allocate.md b/docs/api/memory/allocator/allocate.md index 9fd4b280..c7c7fbc8 100644 --- a/docs/api/memory/allocator/allocate.md +++ b/docs/api/memory/allocator/allocate.md @@ -17,7 +17,7 @@ virtual void* Allocate(size_t size, size_t alignment = 0) = 0; **示例:** ```cpp -#include +#include class MyAllocator : public IAllocator { public: diff --git a/docs/api/memory/allocator/free.md b/docs/api/memory/allocator/free.md index 4b00fcd8..172fff45 100644 --- a/docs/api/memory/allocator/free.md +++ b/docs/api/memory/allocator/free.md @@ -16,7 +16,7 @@ virtual void Free(void* ptr) = 0; **示例:** ```cpp -#include +#include class MyAllocator : public IAllocator { public: diff --git a/docs/api/memory/allocator/get-allocation-count.md b/docs/api/memory/allocator/get-allocation-count.md index aad2f8e7..627e9cc2 100644 --- a/docs/api/memory/allocator/get-allocation-count.md +++ b/docs/api/memory/allocator/get-allocation-count.md @@ -15,7 +15,7 @@ virtual size_t GetAllocationCount() const = 0; **示例:** ```cpp -#include +#include class MyAllocator : public IAllocator { size_t m_count = 0; diff --git a/docs/api/memory/allocator/get-name.md b/docs/api/memory/allocator/get-name.md index 9b694f4d..47155e1b 100644 --- a/docs/api/memory/allocator/get-name.md +++ b/docs/api/memory/allocator/get-name.md @@ -15,7 +15,7 @@ virtual const char* GetName() const = 0; **示例:** ```cpp -#include +#include class MyAllocator : public IAllocator { public: diff --git a/docs/api/memory/allocator/get-peak-allocated.md b/docs/api/memory/allocator/get-peak-allocated.md index 7248497f..da1f31e4 100644 --- a/docs/api/memory/allocator/get-peak-allocated.md +++ b/docs/api/memory/allocator/get-peak-allocated.md @@ -15,7 +15,7 @@ virtual size_t GetPeakAllocated() const = 0; **示例:** ```cpp -#include +#include class MyAllocator : public IAllocator { size_t m_peak = 0; diff --git a/docs/api/memory/allocator/get-total-allocated.md b/docs/api/memory/allocator/get-total-allocated.md index dea0d8ca..182b8444 100644 --- a/docs/api/memory/allocator/get-total-allocated.md +++ b/docs/api/memory/allocator/get-total-allocated.md @@ -15,7 +15,7 @@ virtual size_t GetTotalAllocated() const = 0; **示例:** ```cpp -#include +#include class MyAllocator : public IAllocator { size_t m_allocated = 0; diff --git a/docs/api/memory/allocator/get-total-freed.md b/docs/api/memory/allocator/get-total-freed.md index 38a596ff..4f1d5bdb 100644 --- a/docs/api/memory/allocator/get-total-freed.md +++ b/docs/api/memory/allocator/get-total-freed.md @@ -15,7 +15,7 @@ virtual size_t GetTotalFreed() const = 0; **示例:** ```cpp -#include +#include class MyAllocator : public IAllocator { size_t m_freed = 0; diff --git a/docs/api/memory/allocator/reallocate.md b/docs/api/memory/allocator/reallocate.md index 06d3d7a8..345fbba2 100644 --- a/docs/api/memory/allocator/reallocate.md +++ b/docs/api/memory/allocator/reallocate.md @@ -17,7 +17,7 @@ virtual void* Reallocate(void* ptr, size_t newSize) = 0; **示例:** ```cpp -#include +#include class MyAllocator : public IAllocator { public: diff --git a/docs/api/memory/linear-allocator/reallocate.md b/docs/api/memory/linear-allocator/reallocate.md index caa48385..ec4fd1b6 100644 --- a/docs/api/memory/linear-allocator/reallocate.md +++ b/docs/api/memory/linear-allocator/reallocate.md @@ -4,13 +4,13 @@ void* Reallocate(void* ptr, size_t newSize) override; ``` -在缓冲区当前位置分配新内存。此方法始终在缓冲区末尾分配新内存,而不是尝试调整现有块的大小。返回的指针可能与输入的 `ptr` 不同。如果剩余空间不足,返回 `nullptr` 且原指针保持不变。 +线性分配器不支持重新分配。此方法始终返回 `nullptr`,原内存块保持不变。由于线性分配器的顺序分配特性,无法调整现有块的大小。 **参数:** -- `ptr` - 被忽略(始终分配新内存) -- `newSize` - 新请求的字节数 +- `ptr` - 不被使用(始终返回 nullptr) +- `newSize` - 不被使用(始终返回 nullptr) -**返回:** 分配成功返回新内存指针,失败返回 `nullptr` +**返回:** 始终返回 `nullptr` **复杂度:** O(1) @@ -22,11 +22,12 @@ void* Reallocate(void* ptr, size_t newSize) override; LinearAllocator allocator(1024); void* ptr1 = allocator.Allocate(128); -// Reallocate 忽略原 ptr,在当前位置分配新内存 +// Reallocate 不支持,始终返回 nullptr void* ptr2 = allocator.Reallocate(ptr1, 256); - -// ptr1 和 ptr2 可能相同也可能不同 -// 都不会被释放,新内存始终在缓冲区末尾分配 +if (!ptr2) { + // 线性分配器不支持重新分配 + // ptr1 仍然有效 +} ``` ## 相关文档 diff --git a/docs/api/memory/proxy-allocator/free.md b/docs/api/memory/proxy-allocator/free.md index 0c575ff0..e0ce339a 100644 --- a/docs/api/memory/proxy-allocator/free.md +++ b/docs/api/memory/proxy-allocator/free.md @@ -4,7 +4,7 @@ void Free(void* ptr) override; ``` -释放内存并记录统计。调用转发到底层分配器,同时更新统计信息:增加总释放计数(而非字节大小,因为 ProxyAllocator 不记录释放的字节数),并递减当前分配计数。 +释放内存并记录统计。调用转发到底层分配器,同时更新统计信息:递增 `totalFreed`(累加当前分配计数),并递减 `allocationCount`。由于 ProxyAllocator 不记录单独释放的字节数,`totalFreed` 累加的是 `allocationCount` 而非实际字节大小。 **参数:** - `ptr` - 指向要释放的内存块 @@ -29,6 +29,8 @@ proxy.Free(p1); proxy.Free(p2); const auto& stats = proxy.GetStats(); +// totalFreed 累加了每次释放时的 allocationCount +// allocationCount 最终为 0 printf("Total allocated: %zu, Total freed: %zu, Current: %zu\n", stats.totalAllocated, stats.totalFreed, stats.totalAllocated - stats.totalFreed); diff --git a/docs/api/memory/proxy-allocator/reallocate.md b/docs/api/memory/proxy-allocator/reallocate.md index 80e44c34..30a2b340 100644 --- a/docs/api/memory/proxy-allocator/reallocate.md +++ b/docs/api/memory/proxy-allocator/reallocate.md @@ -4,13 +4,13 @@ void* Reallocate(void* ptr, size_t newSize) override; ``` -重新分配内存并记录统计。调用转发到底层分配器。此方法仅更新 totalAllocated 统计为新大小,不记录原内存的释放(这是简化实现)。如果底层分配失败返回 `nullptr`,但原指针仍然有效。 +重新分配内存。调用直接转发到底层分配器,不记录任何统计信息(简化实现)。此方法仅将调用转发给底层分配器。 **参数:** - `ptr` - 现有内存块指针 - `newSize` - 新的字节大小 -**返回:** 成功返回新指针,失败返回 `nullptr` +**返回:** 成功返回新指针,失败返回 `nullptr`(由底层分配器决定) **复杂度:** O(n)(底层分配器 + 数据复制) @@ -28,8 +28,6 @@ void* p2 = proxy.Reallocate(p1, 256); if (p2) { // 重新分配成功 - const auto& stats = proxy.GetStats(); - printf("Reallocated: %zu bytes total\n", stats.totalAllocated); } else { // 失败,p1 仍然有效 } diff --git a/docs/api/resources/texture/create.md b/docs/api/resources/texture/create.md index 2c1ad787..96f621ff 100644 --- a/docs/api/resources/texture/create.md +++ b/docs/api/resources/texture/create.md @@ -12,7 +12,7 @@ bool Create(Core::uint32 width, Core::uint32 height, Core::uint32 depth, - `width` - 纹理宽度(像素) - `height` - 纹理高度(像素) - `depth` - 纹理深度(3D 纹理设为 1) -- `mipLevels` - Mipmap 级别数(0 表示自动生成所有级别) +- `mipLevels` - Mipmap 级别数 - `type` - 纹理类型 - `format` - 纹理格式 - `data` - 像素数据指针 diff --git a/docs/api/rhi/buffer/buffer.md b/docs/api/rhi/buffer/buffer.md index 3bdab6dc..76ea0733 100644 --- a/docs/api/rhi/buffer/buffer.md +++ b/docs/api/rhi/buffer/buffer.md @@ -41,7 +41,7 @@ | 方法 | 文档 | |------|------| -| `Shutdown` | [详细文档](../../threading/task-system/shutdown.md) | +| `Shutdown` | [详细文档](shutdown.md) | ### 其他 diff --git a/docs/api/rhi/capabilities/capabilities.md b/docs/api/rhi/capabilities/capabilities.md index 21e409df..4f67c35b 100644 --- a/docs/api/rhi/capabilities/capabilities.md +++ b/docs/api/rhi/capabilities/capabilities.md @@ -40,6 +40,18 @@ | `maxAnisotropy` | `uint32_t` | 最大各向异性级别 | | `maxColorAttachments` | `uint32_t` | 最大颜色附件数量 | +### 线宽和点大小 + +| 成员 | 类型 | 描述 | +|------|------|------| +| `minSmoothedLineWidth` | `float` | 最小平滑线宽 | +| `maxSmoothedLineWidth` | `float` | 最大平滑线宽 | +| `minPointSize` | `float` | 最小点大小 | +| `maxPointSize` | `float` | 最大点大小 | +| `maxPointSizeAA` | `float` | 抗锯齿最大点大小 | +| `maxLineWidth` | `float` | 最大线宽 | +| `maxLineWidthAA` | `float` | 抗锯齿最大线宽 | + ### 版本信息 | 成员 | 类型 | 描述 | diff --git a/docs/api/rhi/command-list/clear.md b/docs/api/rhi/command-list/clear.md new file mode 100644 index 00000000..f8307fce --- /dev/null +++ b/docs/api/rhi/command-list/clear.md @@ -0,0 +1,20 @@ +# RHICommandList::Clear + +```cpp +virtual void Clear(float r, float g, float b, float a, uint32_t buffers) = 0; +``` + +清除渲染目标。 + +**参数:** +- `r` - 红色分量 +- `g` - 绿色分量 +- `b` - 蓝色分量 +- `a` - Alpha 分量 +- `buffers` - 要清除的缓冲区标志 + +**复杂度:** O(1) + +## 相关文档 + +- [RHICommandList 总览](command-list.md) - 返回类总览 diff --git a/docs/api/rhi/command-list/close.md b/docs/api/rhi/command-list/close.md new file mode 100644 index 00000000..ea2ee6ea --- /dev/null +++ b/docs/api/rhi/command-list/close.md @@ -0,0 +1,13 @@ +# RHICommandList::Close + +```cpp +virtual void Close() = 0; +``` + +关闭命令列表以执行。 + +**复杂度:** O(1) + +## 相关文档 + +- [RHICommandList 总览](command-list.md) - 返回类总览 diff --git a/docs/api/rhi/command-list/command-list.md b/docs/api/rhi/command-list/command-list.md index 296ff196..f9d0da9c 100644 --- a/docs/api/rhi/command-list/command-list.md +++ b/docs/api/rhi/command-list/command-list.md @@ -12,8 +12,8 @@ | 方法 | 文档 | |------|------| -| `Reset` | [详细文档](../../resources/resourcehandle/reset.md) | -| `Close` | [详细文档](../../core/filewriter/close.md) | +| `Reset` | [详细文档](reset.md) | +| `Close` | [详细文档](close.md) | ### 资源状态转换 @@ -61,7 +61,7 @@ | 方法 | 文档 | |------|------| -| `Clear` | [详细文档](../../memory/linear-allocator/clear.md) | +| `Clear` | [详细文档](clear.md) | | `ClearRenderTarget` | [详细文档](clear-render-target.md) | | `ClearDepthStencil` | [详细文档](clear-depth-stencil.md) | diff --git a/docs/api/rhi/command-list/reset.md b/docs/api/rhi/command-list/reset.md new file mode 100644 index 00000000..ed0ea740 --- /dev/null +++ b/docs/api/rhi/command-list/reset.md @@ -0,0 +1,13 @@ +# RHICommandList::Reset + +```cpp +virtual void Reset() = 0; +``` + +重置命令列表以重新录制。 + +**复杂度:** O(1) + +## 相关文档 + +- [RHICommandList 总览](command-list.md) - 返回类总览 diff --git a/docs/api/rhi/command-queue/command-queue.md b/docs/api/rhi/command-queue/command-queue.md index 35ba12cd..40916ad3 100644 --- a/docs/api/rhi/command-queue/command-queue.md +++ b/docs/api/rhi/command-queue/command-queue.md @@ -12,7 +12,7 @@ | 方法 | 文档 | |------|------| -| `Shutdown` | [详细文档](../../threading/task-system/shutdown.md) | +| `Shutdown` | [详细文档](shutdown.md) | ### 命令执行 @@ -20,7 +20,7 @@ |------|------| | `ExecuteCommandLists` | [详细文档](execute-command-lists.md) | | `Signal` | [详细文档](signal.md) | -| `Wait` | [详细文档](../../threading/task-group/wait.md) | +| `Wait` | [详细文档](methods.md) | | `GetCompletedValue` | [详细文档](get-completed-value.md) | | `WaitForIdle` | [详细文档](wait-for-idle.md) | @@ -28,14 +28,14 @@ | 方法 | 文档 | |------|------| -| `GetType` | [详细文档](../shader/get-type.md) | +| `GetType` | [详细文档](get-type.md) | | `GetTimestampFrequency` | [详细文档](get-timestamp-frequency.md) | ### 其他 | 方法 | 文档 | |------|------| -| `GetNativeHandle` | [详细文档](../buffer/get-native-handle.md) | +| `GetNativeHandle` | [详细文档](get-native-handle.md) | ## 命令队列类型 (CommandQueueType) diff --git a/docs/api/rhi/command-queue/get-native-handle.md b/docs/api/rhi/command-queue/get-native-handle.md new file mode 100644 index 00000000..35e15a57 --- /dev/null +++ b/docs/api/rhi/command-queue/get-native-handle.md @@ -0,0 +1,15 @@ +# RHICommandQueue::GetNativeHandle + +```cpp +virtual void* GetNativeHandle() = 0; +``` + +获取原生 API 句柄。 + +**返回:** 原生命令队列句柄 + +**复杂度:** O(1) + +## 相关文档 + +- [RHICommandQueue 总览](command-queue.md) - 返回类总览 diff --git a/docs/api/rhi/command-queue/get-type.md b/docs/api/rhi/command-queue/get-type.md new file mode 100644 index 00000000..76e5a5d9 --- /dev/null +++ b/docs/api/rhi/command-queue/get-type.md @@ -0,0 +1,15 @@ +# RHICommandQueue::GetType + +```cpp +virtual CommandQueueType GetType() const = 0; +``` + +获取命令队列类型。 + +**返回:** 命令队列类型枚举值 + +**复杂度:** O(1) + +## 相关文档 + +- [RHICommandQueue 总览](command-queue.md) - 返回类总览 diff --git a/docs/api/rhi/command-queue/shutdown.md b/docs/api/rhi/command-queue/shutdown.md new file mode 100644 index 00000000..580b1def --- /dev/null +++ b/docs/api/rhi/command-queue/shutdown.md @@ -0,0 +1,13 @@ +# RHICommandQueue::Shutdown + +```cpp +virtual void Shutdown() = 0; +``` + +关闭命令队列,释放所有相关资源。 + +**复杂度:** O(n) - 取决于管理的命令列表数量 + +## 相关文档 + +- [RHICommandQueue 总览](command-queue.md) - 返回类总览 diff --git a/docs/api/rhi/fence/fence.md b/docs/api/rhi/fence/fence.md index f3f6856d..743dc916 100644 --- a/docs/api/rhi/fence/fence.md +++ b/docs/api/rhi/fence/fence.md @@ -12,14 +12,14 @@ | 方法 | 文档 | |------|------| -| `Shutdown` | [详细文档](../../threading/task-system/shutdown.md) | +| `Shutdown` | [详细文档](shutdown.md) | ### 同步操作 | 方法 | 文档 | |------|------| | `Signal` | [详细文档](../command-queue/signal.md) | -| `Wait` | [详细文档](../../threading/task-group/wait.md) | +| `Wait` | [详细文档](methods.md) | | `GetCompletedValue` | [详细文档](../command-queue/get-completed-value.md) | | `IsSignaled` | [详细文档](is-signaled.md) | @@ -27,7 +27,7 @@ | 方法 | 文档 | |------|------| -| `GetNativeHandle` | [详细文档](../buffer/get-native-handle.md) | +| `GetNativeHandle` | [详细文档](get-native-handle.md) | ## 使用示例 diff --git a/docs/api/rhi/fence/get-native-handle.md b/docs/api/rhi/fence/get-native-handle.md new file mode 100644 index 00000000..c4722461 --- /dev/null +++ b/docs/api/rhi/fence/get-native-handle.md @@ -0,0 +1,15 @@ +# RHIFence::GetNativeHandle + +```cpp +virtual void* GetNativeHandle() = 0; +``` + +获取原生 API 句柄。 + +**返回:** 原生栅栏句柄 + +**复杂度:** O(1) + +## 相关文档 + +- [RHIFence 总览](fence.md) - 返回类总览 diff --git a/docs/api/rhi/fence/shutdown.md b/docs/api/rhi/fence/shutdown.md new file mode 100644 index 00000000..9b2477c9 --- /dev/null +++ b/docs/api/rhi/fence/shutdown.md @@ -0,0 +1,13 @@ +# RHIFence::Shutdown + +```cpp +virtual void Shutdown() = 0; +``` + +释放栅栏资源。 + +**复杂度:** O(1) + +## 相关文档 + +- [RHIFence 总览](fence.md) - 返回类总览 diff --git a/docs/api/rhi/pipeline-layout/get-native-handle.md b/docs/api/rhi/pipeline-layout/get-native-handle.md new file mode 100644 index 00000000..954d6557 --- /dev/null +++ b/docs/api/rhi/pipeline-layout/get-native-handle.md @@ -0,0 +1,15 @@ +# RHIPipelineLayout::GetNativeHandle + +```cpp +virtual void* GetNativeHandle() = 0; +``` + +获取原生 API 句柄。 + +**返回:** 原生管线布局句柄 + +**复杂度:** O(1) + +## 相关文档 + +- [RHIPipelineLayout 总览](pipeline-layout.md) - 返回类总览 diff --git a/docs/api/rhi/pipeline-layout/initialize.md b/docs/api/rhi/pipeline-layout/initialize.md new file mode 100644 index 00000000..85ee66b0 --- /dev/null +++ b/docs/api/rhi/pipeline-layout/initialize.md @@ -0,0 +1,18 @@ +# RHIPipelineLayout::Initialize + +```cpp +virtual bool Initialize(const RHIPipelineLayoutDesc& desc) = 0; +``` + +初始化管线布局。 + +**参数:** +- `desc` - 管线布局描述符 + +**返回:** 成功返回 `true`,失败返回 `false` + +**复杂度:** O(1) + +## 相关文档 + +- [RHIPipelineLayout 总览](pipeline-layout.md) - 返回类总览 diff --git a/docs/api/rhi/pipeline-layout/pipeline-layout.md b/docs/api/rhi/pipeline-layout/pipeline-layout.md index 2b4335e3..24f91427 100644 --- a/docs/api/rhi/pipeline-layout/pipeline-layout.md +++ b/docs/api/rhi/pipeline-layout/pipeline-layout.md @@ -12,14 +12,14 @@ | 方法 | 文档 | |------|------| -| `Initialize` | [详细文档](../../threading/task-system/initialize.md) | -| `Shutdown` | [详细文档](../../threading/task-system/shutdown.md) | +| `Initialize` | [详细文档](initialize.md) | +| `Shutdown` | [详细文档](shutdown.md) | ### 其他 | 方法 | 文档 | |------|------| -| `GetNativeHandle` | [详细文档](../buffer/get-native-handle.md) | +| `GetNativeHandle` | [详细文档](get-native-handle.md) | ## 相关文档 diff --git a/docs/api/rhi/pipeline-layout/shutdown.md b/docs/api/rhi/pipeline-layout/shutdown.md new file mode 100644 index 00000000..c4b2a22f --- /dev/null +++ b/docs/api/rhi/pipeline-layout/shutdown.md @@ -0,0 +1,13 @@ +# RHIPipelineLayout::Shutdown + +```cpp +virtual void Shutdown() = 0; +``` + +释放管线布局资源。 + +**复杂度:** O(1) + +## 相关文档 + +- [RHIPipelineLayout 总览](pipeline-layout.md) - 返回类总览 diff --git a/docs/api/rhi/pipeline-state/get-native-handle.md b/docs/api/rhi/pipeline-state/get-native-handle.md new file mode 100644 index 00000000..0b543fcc --- /dev/null +++ b/docs/api/rhi/pipeline-state/get-native-handle.md @@ -0,0 +1,15 @@ +# RHIPipelineState::GetNativeHandle + +```cpp +virtual void* GetNativeHandle() = 0; +``` + +获取原生 API 句柄。 + +**返回:** 原生管线状态句柄 + +**复杂度:** O(1) + +## 相关文档 + +- [RHIPipelineState 总览](pipeline-state.md) - 返回类总览 diff --git a/docs/api/rhi/pipeline-state/get-type.md b/docs/api/rhi/pipeline-state/get-type.md new file mode 100644 index 00000000..a63b47ea --- /dev/null +++ b/docs/api/rhi/pipeline-state/get-type.md @@ -0,0 +1,15 @@ +# RHIPipelineState::GetType + +```cpp +virtual PipelineType GetType() const = 0; +``` + +获取管线类型。 + +**返回:** 管线类型枚举值 + +**复杂度:** O(1) + +## 相关文档 + +- [RHIPipelineState 总览](pipeline-state.md) - 返回类总览 diff --git a/docs/api/rhi/pipeline-state/pipeline-state.md b/docs/api/rhi/pipeline-state/pipeline-state.md index 56eaedb3..bcfd306c 100644 --- a/docs/api/rhi/pipeline-state/pipeline-state.md +++ b/docs/api/rhi/pipeline-state/pipeline-state.md @@ -12,21 +12,21 @@ | 方法 | 文档 | |------|------| -| `Shutdown` | [详细文档](../../threading/task-system/shutdown.md) | +| `Shutdown` | [详细文档](shutdown.md) | ### 绑定/解绑 | 方法 | 文档 | |------|------| -| `Bind` | [详细文档](../shader/bind.md) | -| `Unbind` | [详细文档](../shader/unbind.md) | +| `Bind` | [详细文档](methods.md) | +| `Unbind` | [详细文档](methods.md) | ### 属性访问 | 方法 | 文档 | |------|------| -| `GetNativeHandle` | [详细文档](../buffer/get-native-handle.md) | -| `GetType` | [详细文档](../shader/get-type.md) | +| `GetNativeHandle` | [详细文档](get-native-handle.md) | +| `GetType` | [详细文档](get-type.md) | ## 管线类型 (PipelineType) diff --git a/docs/api/rhi/pipeline-state/shutdown.md b/docs/api/rhi/pipeline-state/shutdown.md new file mode 100644 index 00000000..551b01a2 --- /dev/null +++ b/docs/api/rhi/pipeline-state/shutdown.md @@ -0,0 +1,13 @@ +# RHIPipelineState::Shutdown + +```cpp +virtual void Shutdown() = 0; +``` + +释放管线状态对象资源。 + +**复杂度:** O(1) + +## 相关文档 + +- [RHIPipelineState 总览](pipeline-state.md) - 返回类总览 diff --git a/docs/api/rhi/sampler/get-native-handle.md b/docs/api/rhi/sampler/get-native-handle.md new file mode 100644 index 00000000..5cf1eb08 --- /dev/null +++ b/docs/api/rhi/sampler/get-native-handle.md @@ -0,0 +1,15 @@ +# RHISampler::GetNativeHandle + +```cpp +virtual void* GetNativeHandle() = 0; +``` + +获取原生 API 句柄。 + +**返回:** 原生采样器句柄 + +**复杂度:** O(1) + +## 相关文档 + +- [RHISampler 总览](sampler.md) - 返回类总览 diff --git a/docs/api/rhi/sampler/sampler.md b/docs/api/rhi/sampler/sampler.md index 27654e83..043a061b 100644 --- a/docs/api/rhi/sampler/sampler.md +++ b/docs/api/rhi/sampler/sampler.md @@ -12,20 +12,20 @@ | 方法 | 文档 | |------|------| -| `Shutdown` | [详细文档](../../threading/task-system/shutdown.md) | +| `Shutdown` | [详细文档](shutdown.md) | ### 绑定/解绑 | 方法 | 文档 | |------|------| -| `Bind` | [详细文档](../shader/bind.md) | -| `Unbind` | [详细文档](../shader/unbind.md) | +| `Bind` | [详细文档](methods.md) | +| `Unbind` | [详细文档](methods.md) | ### 属性访问 | 方法 | 文档 | |------|------| -| `GetNativeHandle` | [详细文档](../buffer/get-native-handle.md) | +| `GetNativeHandle` | [详细文档](get-native-handle.md) | | `GetID` | [详细文档](get-id.md) | ## 相关文档 diff --git a/docs/api/rhi/sampler/shutdown.md b/docs/api/rhi/sampler/shutdown.md new file mode 100644 index 00000000..9fe18951 --- /dev/null +++ b/docs/api/rhi/sampler/shutdown.md @@ -0,0 +1,13 @@ +# RHISampler::Shutdown + +```cpp +virtual void Shutdown() = 0; +``` + +释放采样器资源。 + +**复杂度:** O(1) + +## 相关文档 + +- [RHISampler 总览](sampler.md) - 返回类总览 diff --git a/docs/api/rhi/shader/shader.md b/docs/api/rhi/shader/shader.md index 0b6efcff..248781eb 100644 --- a/docs/api/rhi/shader/shader.md +++ b/docs/api/rhi/shader/shader.md @@ -43,13 +43,13 @@ | 方法 | 文档 | |------|------| -| `Shutdown` | [详细文档](../../threading/task-system/shutdown.md) | +| `Shutdown` | [详细文档](shutdown.md) | ### 其他 | 方法 | 文档 | |------|------| -| `GetNativeHandle` | [详细文档](../buffer/get-native-handle.md) | +| `GetNativeHandle` | [详细文档](get-native-handle.md) | ## 着色器类型 (ShaderType) diff --git a/docs/api/rhi/swap-chain/get-native-handle.md b/docs/api/rhi/swap-chain/get-native-handle.md new file mode 100644 index 00000000..eeacab3c --- /dev/null +++ b/docs/api/rhi/swap-chain/get-native-handle.md @@ -0,0 +1,15 @@ +# RHISwapChain::GetNativeHandle + +```cpp +virtual void* GetNativeHandle() = 0; +``` + +获取原生 API 句柄。 + +**返回:** 原生交换链句柄 + +**复杂度:** O(1) + +## 相关文档 + +- [RHISwapChain 总览](swap-chain.md) - 返回类总览 diff --git a/docs/api/rhi/swap-chain/shutdown.md b/docs/api/rhi/swap-chain/shutdown.md new file mode 100644 index 00000000..07f8d25d --- /dev/null +++ b/docs/api/rhi/swap-chain/shutdown.md @@ -0,0 +1,13 @@ +# RHISwapChain::Shutdown + +```cpp +virtual void Shutdown() = 0; +``` + +关闭交换链,释放所有相关资源。 + +**复杂度:** O(n) - 取决于管理的缓冲区数量 + +## 相关文档 + +- [RHISwapChain 总览](swap-chain.md) - 返回类总览 diff --git a/docs/api/rhi/swap-chain/swap-chain.md b/docs/api/rhi/swap-chain/swap-chain.md index 3590ae57..acb4a8a3 100644 --- a/docs/api/rhi/swap-chain/swap-chain.md +++ b/docs/api/rhi/swap-chain/swap-chain.md @@ -12,7 +12,7 @@ | 方法 | 文档 | |------|------| -| `Shutdown` | [详细文档](../../threading/task-system/shutdown.md) | +| `Shutdown` | [详细文档](shutdown.md) | ### 交换链操作 @@ -21,7 +21,7 @@ | `GetCurrentBackBufferIndex` | [详细文档](get-current-back-buffer-index.md) | | `GetCurrentBackBuffer` | [详细文档](get-current-back-buffer.md) | | `Present` | [详细文档](present.md) | -| `Resize` | [详细文档](../../containers/array/resize.md) | +| `Resize` | [详细文档](methods.md) | ### 全屏模式 @@ -42,7 +42,7 @@ | 方法 | 文档 | |------|------| -| `GetNativeHandle` | [详细文档](../buffer/get-native-handle.md) | +| `GetNativeHandle` | [详细文档](get-native-handle.md) | ## 使用示例 diff --git a/docs/api/rhi/texture/texture.md b/docs/api/rhi/texture/texture.md index b5147d52..da8e59dc 100644 --- a/docs/api/rhi/texture/texture.md +++ b/docs/api/rhi/texture/texture.md @@ -23,22 +23,22 @@ | 方法 | 文档 | |------|------| -| `GetState` | [详细文档](../buffer/get-state.md) | -| `SetState` | [详细文档](../buffer/set-state.md) | +| `GetState` | [详细文档](get-state.md) | +| `SetState` | [详细文档](set-state.md) | ### 生命周期 | 方法 | 文档 | |------|------| -| `Shutdown` | [详细文档](../../threading/task-system/shutdown.md) | +| `Shutdown` | [详细文档](shutdown.md) | ### 其他 | 方法 | 文档 | |------|------| -| `GetNativeHandle` | [详细文档](../buffer/get-native-handle.md) | -| `GetName` | [详细文档](../buffer/get-name.md) | -| `SetName` | [详细文档](../buffer/set-name.md) | +| `GetNativeHandle` | [详细文档](get-native-handle.md) | +| `GetName` | [详细文档](get-name.md) | +| `SetName` | [详细文档](set-name.md) | ## 纹理类型 (TextureType) diff --git a/docs/api/threading/task-system/initialize.md b/docs/api/threading/task-system/initialize.md index cf51ca45..82ca1a02 100644 --- a/docs/api/threading/task-system/initialize.md +++ b/docs/api/threading/task-system/initialize.md @@ -22,9 +22,9 @@ void Initialize(const TaskSystemConfig& config) ```cpp TaskSystemConfig config; config.workerThreadCount = std::thread::hardware_concurrency(); -config.enableTaskProfiling = true; -config.stealTasks = true; -config.maxTaskQueueSize = 2048; +config.enableTaskProfiling = true; // 预留配置项(当前未使用) +config.stealTasks = true; // 预留配置项(当前未实现) +config.maxTaskQueueSize = 2048; // 预留配置项(当前未强制限制) TaskSystem::Get().Initialize(config); printf("TaskSystem started with %u workers\n", diff --git a/docs/api/threading/task-system/task-system.md b/docs/api/threading/task-system/task-system.md index ad75c248..01e32fca 100644 --- a/docs/api/threading/task-system/task-system.md +++ b/docs/api/threading/task-system/task-system.md @@ -6,11 +6,13 @@ **头文件**: `XCEngine/Threading/TaskSystem.h` -**描述**: 并行任务调度系统单例,提供工作窃取式任务队列和并行 for 循环。 +**描述**: 并行任务调度系统单例,提供优先级任务队列。 ## 概述 -`TaskSystem` 是 XCEngine 的核心并行任务调度系统。它创建多个工作线程,使用优先级队列和工作窃取算法调度任务。它还提供 `ParallelFor` 方法用于数据级并行,以及主线程任务队列。 +`TaskSystem` 是 XCEngine 的核心并行任务调度系统。它创建多个工作线程,使用优先级队列调度任务。它还提供 `ParallelFor` 方法用于数据级并行,以及主线程任务队列。 + +**注意:** 当前实现的 `stealTasks` 配置项未生效,任务系统使用单一全局任务队列而非工作窃取模式。 ## 单例访问 diff --git a/docs/api/threading/task-system/wait.md b/docs/api/threading/task-system/wait.md index 31673b44..d6e2e7df 100644 --- a/docs/api/threading/task-system/wait.md +++ b/docs/api/threading/task-system/wait.md @@ -6,8 +6,6 @@ void Wait(uint64_t taskId) **注意:** 此方法当前为空实现,不执行任何操作。 -阻塞当前线程,等待指定任务完成(功能暂未实现)。 - **参数:** - `taskId` - 要等待的任务 ID @@ -15,7 +13,9 @@ void Wait(uint64_t taskId) **复杂度:** N/A(空实现) -**建议:** 建议使用 `TaskGroup::Wait` 代替此方法。 +**当前状态:** 此方法为空实现,不执行任何操作。任务系统目前不支持按任务 ID 等待。 + +**建议:** 使用 `TaskGroup::Wait` 代替此方法。 **示例:** diff --git a/docs/api/threading/tasksystemconfig/enabletaskprofiling.md b/docs/api/threading/tasksystemconfig/enabletaskprofiling.md index 7d0eb114..d1b5c319 100644 --- a/docs/api/threading/tasksystemconfig/enabletaskprofiling.md +++ b/docs/api/threading/tasksystemconfig/enabletaskprofiling.md @@ -10,15 +10,17 @@ bool enableTaskProfiling = true **默认值:** `true` +**当前状态:** 此配置项当前未实际使用,任务系统不会记录性能分析数据。 + **示例:** ```cpp TaskSystemConfig config; config.workerThreadCount = 4; -config.enableTaskProfiling = true; // 启用分析 +config.enableTaskProfiling = true; // 预留配置项 #ifdef NDEBUG -config.enableTaskProfiling = false; // 发布版本关闭 +config.enableTaskProfiling = false; // 预留配置项 #endif ``` diff --git a/docs/api/threading/tasksystemconfig/maxtaskqueuesize.md b/docs/api/threading/tasksystemconfig/maxtaskqueuesize.md index 1d628354..eecebe49 100644 --- a/docs/api/threading/tasksystemconfig/maxtaskqueuesize.md +++ b/docs/api/threading/tasksystemconfig/maxtaskqueuesize.md @@ -10,11 +10,13 @@ uint32_t maxTaskQueueSize = 1024 **默认值:** `1024` +**当前状态:** 此配置项当前未实际强制限制,任务队列可以无限增长(受系统内存限制)。 + **示例:** ```cpp TaskSystemConfig config; -config.maxTaskQueueSize = 4096; // 允许更大的队列 +config.maxTaskQueueSize = 4096; // 预留配置项(当前未强制限制) ``` ## 相关文档 diff --git a/docs/api/threading/tasksystemconfig/stealtasks.md b/docs/api/threading/tasksystemconfig/stealtasks.md index 33ba3a3c..1c46144a 100644 --- a/docs/api/threading/tasksystemconfig/stealtasks.md +++ b/docs/api/threading/tasksystemconfig/stealtasks.md @@ -10,12 +10,14 @@ bool stealTasks = true **默认值:** `true` +**当前状态:** 此配置项当前未实际实现,工作窃取功能不可用。所有工作线程仅从全局任务队列获取任务。 + **示例:** ```cpp TaskSystemConfig config; config.workerThreadCount = 8; -config.stealTasks = true; // 启用工作窃取以获得更好负载均衡 +config.stealTasks = true; // 预留配置项(当前未实现) ``` ## 相关文档 diff --git a/docs/api/threading/tasksystemconfig/tasksystemconfig.md b/docs/api/threading/tasksystemconfig/tasksystemconfig.md index d7eb1d4b..142c189c 100644 --- a/docs/api/threading/tasksystemconfig/tasksystemconfig.md +++ b/docs/api/threading/tasksystemconfig/tasksystemconfig.md @@ -13,10 +13,10 @@ | 成员 | 类型 | 描述 | 默认值 | |------|------|------|--------| | [`workerThreadCount`](workerthreadcount.md) | `uint32_t` | 工作线程数量(0=自动检测 CPU 核心数) | 0 | -| [`enableTaskProfiling`](enabletaskprofiling.md) | `bool` | 启用任务性能分析 | true | -| [`stealTasks`](stealtasks.md) | `bool` | 启用工作窃取(负载均衡) | true | -| [`maxTaskQueueSize`](maxtaskqueuesize.md) | `uint32_t` | 最大任务队列大小 | 1024 | -| [`threadStackSize`](threadstacksize.md) | `uint32_t` | 线程栈大小(0=系统默认) | 0 | +| [`enableTaskProfiling`](enabletaskprofiling.md) | `bool` | 启用任务性能分析(当前未使用) | true | +| [`stealTasks`](stealtasks.md) | `bool` | 启用工作窃取(当前未实现) | true | +| [`maxTaskQueueSize`](maxtaskqueuesize.md) | `uint32_t` | 最大任务队列大小(当前未强制限制) | 1024 | +| [`threadStackSize`](threadstacksize.md) | `uint32_t` | 线程栈大小(当前未使用,0=系统默认) | 0 | ## 使用示例 diff --git a/docs/api/threading/tasksystemconfig/threadstacksize.md b/docs/api/threading/tasksystemconfig/threadstacksize.md index 89404459..eefcde8a 100644 --- a/docs/api/threading/tasksystemconfig/threadstacksize.md +++ b/docs/api/threading/tasksystemconfig/threadstacksize.md @@ -10,12 +10,14 @@ uint32_t threadStackSize = 0 **默认值:** `0`(使用系统默认) +**当前状态:** 此配置项当前未实际使用,工作线程始终使用系统默认栈大小。 + **示例:** ```cpp TaskSystemConfig config; config.workerThreadCount = 4; -config.threadStackSize = 1024 * 1024; // 1MB 栈大小 +config.threadStackSize = 1024 * 1024; // 预留配置项(当前未实现) TaskSystemConfig defaultConfig; defaultConfig.threadStackSize = 0; // 使用系统默认