docs: update resources API docs
This commit is contained in:
58
docs/api/resources/shaderloader/index.md
Normal file
58
docs/api/resources/shaderloader/index.md
Normal file
@@ -0,0 +1,58 @@
|
||||
# ShaderLoader
|
||||
|
||||
## 命名空间
|
||||
|
||||
`XCEngine::Resources`
|
||||
|
||||
## 类型
|
||||
|
||||
类 (Class)
|
||||
|
||||
## 描述
|
||||
|
||||
着色器资源加载器,负责从磁盘加载 `.vert`、`.frag`、`.geom`、`.comp`、`.glsl`、`.hlsl` 和 `.shader` 格式的着色器资源文件。
|
||||
|
||||
## 概述
|
||||
|
||||
`ShaderLoader` 继承自 `IResourceLoader`,实现了着色器资源的加载功能。它支持多种着色器语言和类型,能够根据文件扩展名自动识别着色器语言(GLSL/HLSL)和着色器类型(Vertex/Fragment/Geometry/Compute)。加载过程中会读取源文件内容、检测着色器类型并创建 `Shader` 对象。
|
||||
|
||||
## 公共方法
|
||||
|
||||
| 方法 | 签名 | 描述 |
|
||||
|------|------|------|
|
||||
| [ShaderLoader](methods/constructor.md) | `ShaderLoader()` | 默认构造函数 |
|
||||
| [GetResourceType](methods/get-resource-type.md) | `ResourceType GetResourceType() const` | 返回资源类型为 Shader |
|
||||
| [GetSupportedExtensions](methods/get-supported-extensions.md) | `Array<String> GetSupportedExtensions() const` | 返回支持的扩展名列表 |
|
||||
| [CanLoad](methods/can-load.md) | `bool CanLoad(const String& path) const` | 检查给定路径是否可被加载 |
|
||||
| [Load](methods/load.md) | `LoadResult Load(const String& path, const ImportSettings* settings = nullptr)` | 加载指定路径的着色器资源 |
|
||||
| [GetDefaultSettings](methods/get-default-settings.md) | `ImportSettings* GetDefaultSettings() const` | 返回默认导入设置 |
|
||||
|
||||
## 使用示例
|
||||
|
||||
```cpp
|
||||
#include "Resources/ShaderLoader.h"
|
||||
#include "Resources/ResourceManager.h"
|
||||
|
||||
using namespace XCEngine::Resources;
|
||||
|
||||
// 通过 ResourceManager 加载着色器
|
||||
auto shaderHandle = ResourceManager::Get().Load<Shader>("shaders/forward.vert");
|
||||
if (shaderHandle.IsValid()) {
|
||||
Shader* shader = shaderHandle.Get();
|
||||
// 使用着色器...
|
||||
}
|
||||
|
||||
// 直接使用 ShaderLoader
|
||||
ShaderLoader loader;
|
||||
LoadResult result = loader.Load("shaders/pbr.frag");
|
||||
if (result.IsSuccess()) {
|
||||
Shader* shader = static_cast<Shader*>(result.GetResource());
|
||||
// 使用着色器...
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [Shader](../shader/shader.md)
|
||||
- [IResourceLoader](../iloader/iloader.md)
|
||||
- [ResourceManager](../resourcemanager/resourcemanager.md)
|
||||
27
docs/api/resources/shaderloader/methods/can-load.md
Normal file
27
docs/api/resources/shaderloader/methods/can-load.md
Normal file
@@ -0,0 +1,27 @@
|
||||
# ShaderLoader::CanLoad
|
||||
|
||||
## 方法签名
|
||||
|
||||
```cpp
|
||||
bool CanLoad(const Containers::String& path) const override;
|
||||
```
|
||||
|
||||
## 详细描述
|
||||
|
||||
检查给定路径的文件是否可以被该加载器加载。通过提取文件扩展名并与支持列表进行比较来判断。
|
||||
|
||||
## 参数
|
||||
|
||||
- `path` - 资源文件的完整或相对路径
|
||||
|
||||
## 返回值
|
||||
|
||||
`bool` - 如果文件扩展名在支持列表中返回 `true`,否则返回 `false`
|
||||
|
||||
## 示例
|
||||
|
||||
```cpp
|
||||
ShaderLoader loader;
|
||||
bool canLoad = loader.CanLoad("shaders/pbr.vert"); // true
|
||||
bool canLoad2 = loader.CanLoad("textures/wood.png"); // false
|
||||
```
|
||||
29
docs/api/resources/shaderloader/methods/constructor.md
Normal file
29
docs/api/resources/shaderloader/methods/constructor.md
Normal file
@@ -0,0 +1,29 @@
|
||||
# ShaderLoader::ShaderLoader
|
||||
|
||||
## 方法签名
|
||||
|
||||
```cpp
|
||||
ShaderLoader();
|
||||
```
|
||||
|
||||
## 详细描述
|
||||
|
||||
默认构造函数,创建一个 `ShaderLoader` 实例。该加载器负责管理着色器资源的加载流程。
|
||||
|
||||
## 参数
|
||||
|
||||
无
|
||||
|
||||
## 返回值
|
||||
|
||||
无
|
||||
|
||||
## 示例
|
||||
|
||||
```cpp
|
||||
#include "Resources/ShaderLoader.h"
|
||||
|
||||
using namespace XCEngine::Resources;
|
||||
|
||||
ShaderLoader loader;
|
||||
```
|
||||
@@ -0,0 +1,27 @@
|
||||
# ShaderLoader::GetDefaultSettings
|
||||
|
||||
## 方法签名
|
||||
|
||||
```cpp
|
||||
ImportSettings* GetDefaultSettings() const override;
|
||||
```
|
||||
|
||||
## 详细描述
|
||||
|
||||
返回着色器资源的默认导入设置。当前实现返回 `nullptr`,表示着色器加载不使用导入设置。
|
||||
|
||||
## 参数
|
||||
|
||||
无
|
||||
|
||||
## 返回值
|
||||
|
||||
`ImportSettings*` - 始终返回 `nullptr`
|
||||
|
||||
## 示例
|
||||
|
||||
```cpp
|
||||
ShaderLoader loader;
|
||||
ImportSettings* settings = loader.GetDefaultSettings();
|
||||
// settings == nullptr
|
||||
```
|
||||
27
docs/api/resources/shaderloader/methods/get-resource-type.md
Normal file
27
docs/api/resources/shaderloader/methods/get-resource-type.md
Normal file
@@ -0,0 +1,27 @@
|
||||
# ShaderLoader::GetResourceType
|
||||
|
||||
## 方法签名
|
||||
|
||||
```cpp
|
||||
ResourceType GetResourceType() const override;
|
||||
```
|
||||
|
||||
## 详细描述
|
||||
|
||||
返回该加载器管理的资源类型,固定为 `ResourceType::Shader`。此方法继承自 `IResourceLoader` 接口,用于资源管理器识别加载器类型。
|
||||
|
||||
## 参数
|
||||
|
||||
无
|
||||
|
||||
## 返回值
|
||||
|
||||
`ResourceType` - 资源类型枚举值,始终返回 `ResourceType::Shader`
|
||||
|
||||
## 示例
|
||||
|
||||
```cpp
|
||||
ShaderLoader loader;
|
||||
ResourceType type = loader.GetResourceType();
|
||||
// type == ResourceType::Shader
|
||||
```
|
||||
@@ -0,0 +1,37 @@
|
||||
# ShaderLoader::GetSupportedExtensions
|
||||
|
||||
## 方法签名
|
||||
|
||||
```cpp
|
||||
Containers::Array<Containers::String> GetSupportedExtensions() const override;
|
||||
```
|
||||
|
||||
## 详细描述
|
||||
|
||||
返回该加载器支持的文件扩展名列表。支持以下扩展名:
|
||||
|
||||
- `vert` - 顶点着色器
|
||||
- `frag` - 片段着色器
|
||||
- `geom` - 几何着色器
|
||||
- `comp` - 计算着色器
|
||||
- `glsl` - 通用 GLSL 着色器
|
||||
- `hlsl` - HLSL 着色器
|
||||
- `shader` - 通用着色器
|
||||
|
||||
## 参数
|
||||
|
||||
无
|
||||
|
||||
## 返回值
|
||||
|
||||
`Containers::Array<Containers::String>` - 支持的文件扩展名数组
|
||||
|
||||
## 示例
|
||||
|
||||
```cpp
|
||||
ShaderLoader loader;
|
||||
auto extensions = loader.GetSupportedExtensions();
|
||||
for (const auto& ext : extensions) {
|
||||
// 处理每个扩展名
|
||||
}
|
||||
```
|
||||
45
docs/api/resources/shaderloader/methods/load.md
Normal file
45
docs/api/resources/shaderloader/methods/load.md
Normal file
@@ -0,0 +1,45 @@
|
||||
# ShaderLoader::Load
|
||||
|
||||
## 方法签名
|
||||
|
||||
```cpp
|
||||
LoadResult Load(const Containers::String& path, const ImportSettings* settings = nullptr) override;
|
||||
```
|
||||
|
||||
## 详细描述
|
||||
|
||||
加载指定路径的着色器资源文件。加载流程如下:
|
||||
|
||||
1. 读取文件数据到内存
|
||||
2. 根据扩展名识别着色器语言(HLSL 或 GLSL)
|
||||
3. 检测着色器类型(Vertex/Fragment/Geometry/Compute)
|
||||
4. 创建 `Shader` 对象并设置属性
|
||||
|
||||
如果加载失败,返回的 `LoadResult` 将包含错误信息。
|
||||
|
||||
## 参数
|
||||
|
||||
- `path` - 着色器文件的路径
|
||||
- `settings` - 可选的导入设置指针(当前实现中未使用)
|
||||
|
||||
## 返回值
|
||||
|
||||
`LoadResult` - 加载结果,成功时包含 `Shader` 指针,失败时包含错误信息
|
||||
|
||||
## 示例
|
||||
|
||||
```cpp
|
||||
#include "Resources/ShaderLoader.h"
|
||||
|
||||
using namespace XCEngine::Resources;
|
||||
|
||||
ShaderLoader loader;
|
||||
LoadResult result = loader.Load("shaders/forward.vert");
|
||||
if (result.IsSuccess()) {
|
||||
Shader* shader = static_cast<Shader*>(result.GetResource());
|
||||
// 使用着色器...
|
||||
} else {
|
||||
// 处理错误
|
||||
const String& error = result.GetErrorMessage();
|
||||
}
|
||||
```
|
||||
Reference in New Issue
Block a user