docs: update resources API docs

This commit is contained in:
2026-03-20 02:35:35 +08:00
parent fd792b7df1
commit ea756c0177
314 changed files with 9439 additions and 1360 deletions

View File

@@ -0,0 +1,36 @@
# MeshLoader::CanLoad
## 方法签名
```cpp
bool CanLoad(const Containers::String& path) const override;
```
## 详细描述
检查给定路径的文件是否可以被该加载器加载。方法通过提取文件扩展名并转换为小写后进行匹配判断。支持的文件格式包括fbx、obj、gltf、glb、dae、stl。
## 参数
| 参数 | 类型 | 描述 |
|------|------|------|
| path | `const Containers::String&` | 文件路径 |
## 返回值
`bool` - 如果文件扩展名在支持列表中返回 `true`,否则返回 `false`
## 示例
```cpp
#include "Resources/MeshLoader.h"
using namespace XCEngine::Resources;
MeshLoader loader;
bool canLoadFbx = loader.CanLoad("assets/models/player.fbx"); // true
bool canLoadObj = loader.CanLoad("assets/models/cube.obj"); // true
bool canLoadPng = loader.CanLoad("assets/textures/wood.png"); // false
bool canLoadUnknown = loader.CanLoad("assets/data/model.xyz"); // false
```

View File

@@ -0,0 +1,29 @@
# MeshLoader::MeshLoader
## 方法签名
```cpp
MeshLoader();
```
## 详细描述
默认构造函数,使用默认行为构造 `MeshLoader` 对象。该构造函数不执行任何特殊初始化操作。
## 参数
## 返回值
## 示例
```cpp
#include "Resources/MeshLoader.h"
using namespace XCEngine::Resources;
MeshLoader loader;
```

View File

@@ -0,0 +1,29 @@
# MeshLoader::~MeshLoader
## 方法签名
```cpp
virtual ~MeshLoader() override;
```
## 详细描述
析构函数,用于销毁 `MeshLoader` 对象。该析构函数不执行任何特殊清理操作。
## 参数
## 示例
```cpp
#include "Resources/MeshLoader.h"
using namespace XCEngine::Resources;
{
MeshLoader loader;
// 使用 loader...
}
// loader 在此自动销毁
```

View File

@@ -0,0 +1,31 @@
# MeshLoader::GetDefaultSettings
## 方法签名
```cpp
ImportSettings* GetDefaultSettings() const override;
```
## 详细描述
返回网格资源的默认导入设置。当前实现返回 `nullptr`,表示 `MeshLoader` 不使用导入设置。
## 参数
## 返回值
`ImportSettings*` - 返回 `nullptr`
## 示例
```cpp
#include "Resources/MeshLoader.h"
using namespace XCEngine::Resources;
MeshLoader loader;
ImportSettings* settings = loader.GetDefaultSettings();
// settings == nullptr
```

View File

@@ -0,0 +1,31 @@
# MeshLoader::GetResourceType
## 方法签名
```cpp
ResourceType GetResourceType() const override;
```
## 详细描述
返回该加载器处理的资源类型。此方法标识 `MeshLoader` 负责加载 `Mesh` 类型的资源。
## 参数
## 返回值
`ResourceType` - 返回 `ResourceType::Mesh`,表示该加载器用于加载网格资源
## 示例
```cpp
#include "Resources/MeshLoader.h"
using namespace XCEngine::Resources;
MeshLoader loader;
ResourceType type = loader.GetResourceType();
// type == ResourceType::Mesh
```

View File

@@ -0,0 +1,46 @@
# MeshLoader::GetSupportedExtensions
## 方法签名
```cpp
Containers::Array<Containers::String> GetSupportedExtensions() const override;
```
## 详细描述
返回该加载器支持的文件扩展名列表。`MeshLoader` 支持六种主流 3D 模型文件格式:
- `.fbx` - Autodesk FBX 格式
- `.obj` - Wavefront OBJ 格式
- `.gltf` - GL Transmission Format
- `.glb` - GL Binary 格式
- `.dae` - COLLADA 格式
- `.stl` - STereoLithography 格式
## 参数
## 返回值
`Containers::Array<Containers::String>` - 支持的扩展名数组
## 示例
```cpp
#include "Resources/MeshLoader.h"
using namespace XCEngine::Resources;
MeshLoader loader;
auto extensions = loader.GetSupportedExtensions();
for (const auto& ext : extensions) {
printf("Supported extension: %s\n", ext.CStr());
}
// Output:
// Supported extension: fbx
// Supported extension: obj
// Supported extension: gltf
// Supported extension: glb
// Supported extension: dae
// Supported extension: stl
```

View File

@@ -0,0 +1,55 @@
# MeshLoader::Load
## 方法签名
```cpp
LoadResult Load(const Containers::String& path, const ImportSettings* settings = nullptr) override;
```
## 详细描述
加载指定路径的网格资源文件。加载过程包括:
1. 提取文件扩展名并转换为小写
2. 验证文件格式是否支持
3. 读取文件数据到内存
4. 创建 `Mesh` 对象并设置基本信息路径、名称、GUID
5. 设置内存占用大小
当前实现专注于文件读取和基础资源创建框架,具体网格顶点数据、索引数据的解析由 `Mesh` 类在后续流程中完成。`settings` 参数当前未使用。
## 参数
| 参数 | 类型 | 默认值 | 描述 |
|------|------|--------|------|
| path | `const Containers::String&` | - | 网格文件路径 |
| settings | `const ImportSettings*` | `nullptr` | 导入设置(当前未使用) |
## 返回值
`LoadResult` - 加载结果对象,包含成功加载的 `Mesh` 指针或错误信息
## 示例
```cpp
#include "Resources/MeshLoader.h"
using namespace XCEngine::Resources;
MeshLoader loader;
LoadResult result = loader.Load("assets/models/player.fbx");
if (result.IsSuccess()) {
Mesh* mesh = static_cast<Mesh*>(result.GetResource());
printf("Loaded mesh: %s, GUID: %s, Size: %zu bytes\n",
mesh->m_name.CStr(),
mesh->m_guid.ToString().CStr(),
mesh->m_memorySize);
} else {
printf("Failed to load mesh: %s\n", result.GetError().CStr());
}
```
### 错误情况
- 不支持的文件格式:返回 `"Unsupported mesh format: <extension>"`
- 文件读取失败:返回 `"Failed to read file: <path>"`