docs: 修正 API 文档准确性 (第二轮检查)
修复的问题: - 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 方法空实现标注
This commit is contained in:
@@ -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;
|
||||
}
|
||||
```
|
||||
|
||||
@@ -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;
|
||||
```
|
||||
|
||||
@@ -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) | 获取当前引用计数 |
|
||||
|
||||
@@ -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"
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
@@ -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` | 归一化(静态) |
|
||||
|
||||
## 运算符
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ virtual void* Allocate(size_t size, size_t alignment = 0) = 0;
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Memory/IAllocator.h>
|
||||
#include <XCEngine/Memory/Allocator.h>
|
||||
|
||||
class MyAllocator : public IAllocator {
|
||||
public:
|
||||
|
||||
@@ -16,7 +16,7 @@ virtual void Free(void* ptr) = 0;
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Memory/IAllocator.h>
|
||||
#include <XCEngine/Memory/Allocator.h>
|
||||
|
||||
class MyAllocator : public IAllocator {
|
||||
public:
|
||||
|
||||
@@ -15,7 +15,7 @@ virtual size_t GetAllocationCount() const = 0;
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Memory/IAllocator.h>
|
||||
#include <XCEngine/Memory/Allocator.h>
|
||||
|
||||
class MyAllocator : public IAllocator {
|
||||
size_t m_count = 0;
|
||||
|
||||
@@ -15,7 +15,7 @@ virtual const char* GetName() const = 0;
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Memory/IAllocator.h>
|
||||
#include <XCEngine/Memory/Allocator.h>
|
||||
|
||||
class MyAllocator : public IAllocator {
|
||||
public:
|
||||
|
||||
@@ -15,7 +15,7 @@ virtual size_t GetPeakAllocated() const = 0;
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Memory/IAllocator.h>
|
||||
#include <XCEngine/Memory/Allocator.h>
|
||||
|
||||
class MyAllocator : public IAllocator {
|
||||
size_t m_peak = 0;
|
||||
|
||||
@@ -15,7 +15,7 @@ virtual size_t GetTotalAllocated() const = 0;
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Memory/IAllocator.h>
|
||||
#include <XCEngine/Memory/Allocator.h>
|
||||
|
||||
class MyAllocator : public IAllocator {
|
||||
size_t m_allocated = 0;
|
||||
|
||||
@@ -15,7 +15,7 @@ virtual size_t GetTotalFreed() const = 0;
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Memory/IAllocator.h>
|
||||
#include <XCEngine/Memory/Allocator.h>
|
||||
|
||||
class MyAllocator : public IAllocator {
|
||||
size_t m_freed = 0;
|
||||
|
||||
@@ -17,7 +17,7 @@ virtual void* Reallocate(void* ptr, size_t newSize) = 0;
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Memory/IAllocator.h>
|
||||
#include <XCEngine/Memory/Allocator.h>
|
||||
|
||||
class MyAllocator : public IAllocator {
|
||||
public:
|
||||
|
||||
@@ -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 仍然有效
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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 仍然有效
|
||||
}
|
||||
|
||||
@@ -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` - 像素数据指针
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
|
||||
| 方法 | 文档 |
|
||||
|------|------|
|
||||
| `Shutdown` | [详细文档](../../threading/task-system/shutdown.md) |
|
||||
| `Shutdown` | [详细文档](shutdown.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` | 抗锯齿最大线宽 |
|
||||
|
||||
### 版本信息
|
||||
|
||||
| 成员 | 类型 | 描述 |
|
||||
|
||||
20
docs/api/rhi/command-list/clear.md
Normal file
20
docs/api/rhi/command-list/clear.md
Normal file
@@ -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) - 返回类总览
|
||||
13
docs/api/rhi/command-list/close.md
Normal file
13
docs/api/rhi/command-list/close.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# RHICommandList::Close
|
||||
|
||||
```cpp
|
||||
virtual void Close() = 0;
|
||||
```
|
||||
|
||||
关闭命令列表以执行。
|
||||
|
||||
**复杂度:** O(1)
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [RHICommandList 总览](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) |
|
||||
|
||||
|
||||
13
docs/api/rhi/command-list/reset.md
Normal file
13
docs/api/rhi/command-list/reset.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# RHICommandList::Reset
|
||||
|
||||
```cpp
|
||||
virtual void Reset() = 0;
|
||||
```
|
||||
|
||||
重置命令列表以重新录制。
|
||||
|
||||
**复杂度:** O(1)
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [RHICommandList 总览](command-list.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)
|
||||
|
||||
|
||||
15
docs/api/rhi/command-queue/get-native-handle.md
Normal file
15
docs/api/rhi/command-queue/get-native-handle.md
Normal file
@@ -0,0 +1,15 @@
|
||||
# RHICommandQueue::GetNativeHandle
|
||||
|
||||
```cpp
|
||||
virtual void* GetNativeHandle() = 0;
|
||||
```
|
||||
|
||||
获取原生 API 句柄。
|
||||
|
||||
**返回:** 原生命令队列句柄
|
||||
|
||||
**复杂度:** O(1)
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [RHICommandQueue 总览](command-queue.md) - 返回类总览
|
||||
15
docs/api/rhi/command-queue/get-type.md
Normal file
15
docs/api/rhi/command-queue/get-type.md
Normal file
@@ -0,0 +1,15 @@
|
||||
# RHICommandQueue::GetType
|
||||
|
||||
```cpp
|
||||
virtual CommandQueueType GetType() const = 0;
|
||||
```
|
||||
|
||||
获取命令队列类型。
|
||||
|
||||
**返回:** 命令队列类型枚举值
|
||||
|
||||
**复杂度:** O(1)
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [RHICommandQueue 总览](command-queue.md) - 返回类总览
|
||||
13
docs/api/rhi/command-queue/shutdown.md
Normal file
13
docs/api/rhi/command-queue/shutdown.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# RHICommandQueue::Shutdown
|
||||
|
||||
```cpp
|
||||
virtual void Shutdown() = 0;
|
||||
```
|
||||
|
||||
关闭命令队列,释放所有相关资源。
|
||||
|
||||
**复杂度:** O(n) - 取决于管理的命令列表数量
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [RHICommandQueue 总览](command-queue.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) |
|
||||
|
||||
## 使用示例
|
||||
|
||||
|
||||
15
docs/api/rhi/fence/get-native-handle.md
Normal file
15
docs/api/rhi/fence/get-native-handle.md
Normal file
@@ -0,0 +1,15 @@
|
||||
# RHIFence::GetNativeHandle
|
||||
|
||||
```cpp
|
||||
virtual void* GetNativeHandle() = 0;
|
||||
```
|
||||
|
||||
获取原生 API 句柄。
|
||||
|
||||
**返回:** 原生栅栏句柄
|
||||
|
||||
**复杂度:** O(1)
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [RHIFence 总览](fence.md) - 返回类总览
|
||||
13
docs/api/rhi/fence/shutdown.md
Normal file
13
docs/api/rhi/fence/shutdown.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# RHIFence::Shutdown
|
||||
|
||||
```cpp
|
||||
virtual void Shutdown() = 0;
|
||||
```
|
||||
|
||||
释放栅栏资源。
|
||||
|
||||
**复杂度:** O(1)
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [RHIFence 总览](fence.md) - 返回类总览
|
||||
15
docs/api/rhi/pipeline-layout/get-native-handle.md
Normal file
15
docs/api/rhi/pipeline-layout/get-native-handle.md
Normal file
@@ -0,0 +1,15 @@
|
||||
# RHIPipelineLayout::GetNativeHandle
|
||||
|
||||
```cpp
|
||||
virtual void* GetNativeHandle() = 0;
|
||||
```
|
||||
|
||||
获取原生 API 句柄。
|
||||
|
||||
**返回:** 原生管线布局句柄
|
||||
|
||||
**复杂度:** O(1)
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [RHIPipelineLayout 总览](pipeline-layout.md) - 返回类总览
|
||||
18
docs/api/rhi/pipeline-layout/initialize.md
Normal file
18
docs/api/rhi/pipeline-layout/initialize.md
Normal file
@@ -0,0 +1,18 @@
|
||||
# RHIPipelineLayout::Initialize
|
||||
|
||||
```cpp
|
||||
virtual bool Initialize(const RHIPipelineLayoutDesc& desc) = 0;
|
||||
```
|
||||
|
||||
初始化管线布局。
|
||||
|
||||
**参数:**
|
||||
- `desc` - 管线布局描述符
|
||||
|
||||
**返回:** 成功返回 `true`,失败返回 `false`
|
||||
|
||||
**复杂度:** O(1)
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [RHIPipelineLayout 总览](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) |
|
||||
|
||||
## 相关文档
|
||||
|
||||
|
||||
13
docs/api/rhi/pipeline-layout/shutdown.md
Normal file
13
docs/api/rhi/pipeline-layout/shutdown.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# RHIPipelineLayout::Shutdown
|
||||
|
||||
```cpp
|
||||
virtual void Shutdown() = 0;
|
||||
```
|
||||
|
||||
释放管线布局资源。
|
||||
|
||||
**复杂度:** O(1)
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [RHIPipelineLayout 总览](pipeline-layout.md) - 返回类总览
|
||||
15
docs/api/rhi/pipeline-state/get-native-handle.md
Normal file
15
docs/api/rhi/pipeline-state/get-native-handle.md
Normal file
@@ -0,0 +1,15 @@
|
||||
# RHIPipelineState::GetNativeHandle
|
||||
|
||||
```cpp
|
||||
virtual void* GetNativeHandle() = 0;
|
||||
```
|
||||
|
||||
获取原生 API 句柄。
|
||||
|
||||
**返回:** 原生管线状态句柄
|
||||
|
||||
**复杂度:** O(1)
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [RHIPipelineState 总览](pipeline-state.md) - 返回类总览
|
||||
15
docs/api/rhi/pipeline-state/get-type.md
Normal file
15
docs/api/rhi/pipeline-state/get-type.md
Normal file
@@ -0,0 +1,15 @@
|
||||
# RHIPipelineState::GetType
|
||||
|
||||
```cpp
|
||||
virtual PipelineType GetType() const = 0;
|
||||
```
|
||||
|
||||
获取管线类型。
|
||||
|
||||
**返回:** 管线类型枚举值
|
||||
|
||||
**复杂度:** O(1)
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [RHIPipelineState 总览](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)
|
||||
|
||||
|
||||
13
docs/api/rhi/pipeline-state/shutdown.md
Normal file
13
docs/api/rhi/pipeline-state/shutdown.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# RHIPipelineState::Shutdown
|
||||
|
||||
```cpp
|
||||
virtual void Shutdown() = 0;
|
||||
```
|
||||
|
||||
释放管线状态对象资源。
|
||||
|
||||
**复杂度:** O(1)
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [RHIPipelineState 总览](pipeline-state.md) - 返回类总览
|
||||
15
docs/api/rhi/sampler/get-native-handle.md
Normal file
15
docs/api/rhi/sampler/get-native-handle.md
Normal file
@@ -0,0 +1,15 @@
|
||||
# RHISampler::GetNativeHandle
|
||||
|
||||
```cpp
|
||||
virtual void* GetNativeHandle() = 0;
|
||||
```
|
||||
|
||||
获取原生 API 句柄。
|
||||
|
||||
**返回:** 原生采样器句柄
|
||||
|
||||
**复杂度:** O(1)
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [RHISampler 总览](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) |
|
||||
|
||||
## 相关文档
|
||||
|
||||
13
docs/api/rhi/sampler/shutdown.md
Normal file
13
docs/api/rhi/sampler/shutdown.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# RHISampler::Shutdown
|
||||
|
||||
```cpp
|
||||
virtual void Shutdown() = 0;
|
||||
```
|
||||
|
||||
释放采样器资源。
|
||||
|
||||
**复杂度:** O(1)
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [RHISampler 总览](sampler.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)
|
||||
|
||||
|
||||
15
docs/api/rhi/swap-chain/get-native-handle.md
Normal file
15
docs/api/rhi/swap-chain/get-native-handle.md
Normal file
@@ -0,0 +1,15 @@
|
||||
# RHISwapChain::GetNativeHandle
|
||||
|
||||
```cpp
|
||||
virtual void* GetNativeHandle() = 0;
|
||||
```
|
||||
|
||||
获取原生 API 句柄。
|
||||
|
||||
**返回:** 原生交换链句柄
|
||||
|
||||
**复杂度:** O(1)
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [RHISwapChain 总览](swap-chain.md) - 返回类总览
|
||||
13
docs/api/rhi/swap-chain/shutdown.md
Normal file
13
docs/api/rhi/swap-chain/shutdown.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# RHISwapChain::Shutdown
|
||||
|
||||
```cpp
|
||||
virtual void Shutdown() = 0;
|
||||
```
|
||||
|
||||
关闭交换链,释放所有相关资源。
|
||||
|
||||
**复杂度:** O(n) - 取决于管理的缓冲区数量
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [RHISwapChain 总览](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) |
|
||||
|
||||
## 使用示例
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -6,11 +6,13 @@
|
||||
|
||||
**头文件**: `XCEngine/Threading/TaskSystem.h`
|
||||
|
||||
**描述**: 并行任务调度系统单例,提供工作窃取式任务队列和并行 for 循环。
|
||||
**描述**: 并行任务调度系统单例,提供优先级任务队列。
|
||||
|
||||
## 概述
|
||||
|
||||
`TaskSystem` 是 XCEngine 的核心并行任务调度系统。它创建多个工作线程,使用优先级队列和工作窃取算法调度任务。它还提供 `ParallelFor` 方法用于数据级并行,以及主线程任务队列。
|
||||
`TaskSystem` 是 XCEngine 的核心并行任务调度系统。它创建多个工作线程,使用优先级队列调度任务。它还提供 `ParallelFor` 方法用于数据级并行,以及主线程任务队列。
|
||||
|
||||
**注意:** 当前实现的 `stealTasks` 配置项未生效,任务系统使用单一全局任务队列而非工作窃取模式。
|
||||
|
||||
## 单例访问
|
||||
|
||||
|
||||
@@ -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` 代替此方法。
|
||||
|
||||
**示例:**
|
||||
|
||||
|
||||
@@ -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
|
||||
```
|
||||
|
||||
|
||||
@@ -10,11 +10,13 @@ uint32_t maxTaskQueueSize = 1024
|
||||
|
||||
**默认值:** `1024`
|
||||
|
||||
**当前状态:** 此配置项当前未实际强制限制,任务队列可以无限增长(受系统内存限制)。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
TaskSystemConfig config;
|
||||
config.maxTaskQueueSize = 4096; // 允许更大的队列
|
||||
config.maxTaskQueueSize = 4096; // 预留配置项(当前未强制限制)
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
@@ -10,12 +10,14 @@ bool stealTasks = true
|
||||
|
||||
**默认值:** `true`
|
||||
|
||||
**当前状态:** 此配置项当前未实际实现,工作窃取功能不可用。所有工作线程仅从全局任务队列获取任务。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
TaskSystemConfig config;
|
||||
config.workerThreadCount = 8;
|
||||
config.stealTasks = true; // 启用工作窃取以获得更好负载均衡
|
||||
config.stealTasks = true; // 预留配置项(当前未实现)
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
@@ -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 |
|
||||
|
||||
## 使用示例
|
||||
|
||||
|
||||
@@ -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; // 使用系统默认
|
||||
|
||||
Reference in New Issue
Block a user