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,31 @@
# MaterialLoader::CanLoad
## 方法签名
```cpp
bool CanLoad(const Containers::String& path) const override;
```
## 详细描述
检查给定路径的文件是否可以被该加载器加载。通过提取文件扩展名并与支持列表进行比较来判断。
## 参数
| 参数 | 类型 | 描述 |
|------|------|------|
| path | `const Containers::String&` | 待检查的文件路径 |
## 返回值
`bool` - 如果文件扩展名在支持列表中返回 `true`,否则返回 `false`
## 示例
```cpp
MaterialLoader loader;
bool canLoad1 = loader.CanLoad("assets/materials/wood.mat"); // true
bool canLoad2 = loader.CanLoad("assets/materials/wood.material"); // true
bool canLoad3 = loader.CanLoad("assets/materials/wood.json"); // true
bool canLoad4 = loader.CanLoad("assets/materials/wood.png"); // false
```

View File

@@ -0,0 +1,27 @@
# MaterialLoader::GetDefaultSettings
## 方法签名
```cpp
ImportSettings* GetDefaultSettings() const override;
```
## 详细描述
返回材质加载器的默认导入设置。当前实现返回 `nullptr`,表示材质加载不使用特殊的导入设置。
## 参数
## 返回值
`ImportSettings*` - 始终返回 `nullptr`
## 示例
```cpp
MaterialLoader loader;
ImportSettings* settings = loader.GetDefaultSettings();
// settings == nullptr
```

View File

@@ -0,0 +1,27 @@
# MaterialLoader::GetResourceType
## 方法签名
```cpp
ResourceType GetResourceType() const override;
```
## 详细描述
返回该加载器管理的资源类型,固定为 `ResourceType::Material`。此方法继承自 `IResourceLoader` 接口,用于资源管理器识别加载器类型。
## 参数
## 返回值
`ResourceType` - 资源类型枚举值,始终返回 `ResourceType::Material`
## 示例
```cpp
MaterialLoader loader;
ResourceType type = loader.GetResourceType();
// type == ResourceType::Material
```

View File

@@ -0,0 +1,36 @@
# MaterialLoader::GetSupportedExtensions
## 方法签名
```cpp
Containers::Array<Containers::String> GetSupportedExtensions() const override;
```
## 详细描述
返回该加载器支持的文件扩展名列表。`MaterialLoader` 支持三种材质文件格式:
- `.mat` - 材质文件
- `.material` - 材质文件(完整格式)
- `.json` - JSON 格式的材质描述文件
## 参数
## 返回值
`Containers::Array<Containers::String>` - 支持的扩展名数组
## 示例
```cpp
MaterialLoader loader;
auto extensions = loader.GetSupportedExtensions();
for (const auto& ext : extensions) {
printf("Supported extension: %s\n", ext.CStr());
}
// Output:
// Supported extension: mat
// Supported extension: material
// Supported extension: json
```

View File

@@ -0,0 +1,62 @@
# MaterialLoader::Load
## 方法签名
```cpp
LoadResult Load(const Containers::String& path, const ImportSettings* settings = nullptr) override;
```
## 详细描述
加载指定路径的材质资源文件。加载过程包括:
1. 读取文件数据
2. 创建 `Material` 对象并设置基本信息路径、名称、GUID
3. 解析 JSON 格式内容,提取 shader 路径
4. 加载引用的 Shader 资源
5. 设置材质的有效性标志和内存占用
当前实现仅支持解析 JSON 中的 `"shader"` 字段并加载对应的 Shader 资源。
## 参数
| 参数 | 类型 | 默认值 | 描述 |
|------|------|--------|------|
| path | `const Containers::String&` | - | 材质文件路径 |
| settings | `const ImportSettings*` | `nullptr` | 导入设置(当前未使用) |
## 返回值
`LoadResult` - 加载结果对象,包含成功加载的 `Material` 指针或错误信息
## 示例
```cpp
#include "Resources/MaterialLoader.h"
using namespace XCEngine::Resources;
MaterialLoader loader;
LoadResult result = loader.Load("assets/materials/pbr.metallic");
if (result.IsSuccess()) {
Material* material = static_cast<Material*>(result.GetResource());
printf("Loaded material: %s, GUID: %s\n",
material->m_name.CStr(),
material->m_guid.ToString().CStr());
} else {
printf("Failed to load material: %s\n", result.GetError().CStr());
}
```
### JSON 材质文件格式
```json
{
"shader": "shaders/pbr.glsl",
"properties": {
"albedo": [1.0, 1.0, 1.0, 1.0],
"metallic": 0.0,
"roughness": 0.5
}
}
```

View File

@@ -0,0 +1,29 @@
# MaterialLoader::MaterialLoader
## 方法签名
```cpp
MaterialLoader();
```
## 详细描述
`MaterialLoader` 类的默认构造函数,使用默认方式构造一个 `MaterialLoader` 实例。
## 参数
## 返回值
## 示例
```cpp
#include "Resources/MaterialLoader.h"
using namespace XCEngine::Resources;
MaterialLoader loader;
```

View File

@@ -0,0 +1,28 @@
# MaterialLoader::~MaterialLoader
## 方法签名
```cpp
virtual ~MaterialLoader() override;
```
## 详细描述
`MaterialLoader` 类的析构函数,用于清理 `MaterialLoader` 实例占用的资源。当前实现为默认析构函数。
## 参数
## 返回值
## 示例
```cpp
{
MaterialLoader loader;
// 使用 loader...
} // loader 在此自动销毁
```