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:
2026-03-19 00:31:14 +08:00
parent dc850d7739
commit a9f882f233
54 changed files with 362 additions and 79 deletions

View File

@@ -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:

View File

@@ -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:

View File

@@ -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;

View File

@@ -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:

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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:

View File

@@ -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 仍然有效
}
```
## 相关文档

View File

@@ -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);

View File

@@ -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 仍然有效
}