45 lines
1.3 KiB
Markdown
45 lines
1.3 KiB
Markdown
|
|
# 资源抽象层 (Resources Abstraction Layer)
|
||
|
|
|
||
|
|
此目录包含渲染后端无关的资源抽象接口。
|
||
|
|
|
||
|
|
## 文件说明
|
||
|
|
|
||
|
|
### 头文件 (include/extra2d/graphics/resources/)
|
||
|
|
|
||
|
|
- **buffer.h** - 缓冲区抽象接口
|
||
|
|
- 顶点缓冲、索引缓冲、统一缓冲
|
||
|
|
- 支持 Static/Dynamic/Stream 使用模式
|
||
|
|
|
||
|
|
- **pipeline.h** - 渲染管线抽象接口
|
||
|
|
- 混合模式、深度测试、裁剪状态
|
||
|
|
- 顶点属性描述
|
||
|
|
|
||
|
|
- **framebuffer.h** - 帧缓冲抽象接口
|
||
|
|
- 多颜色附件支持
|
||
|
|
- 深度/模板附件
|
||
|
|
- 多重采样支持
|
||
|
|
|
||
|
|
- **font_atlas.h** - 字体图集抽象接口
|
||
|
|
- 字形信息管理
|
||
|
|
- SDF 渲染支持
|
||
|
|
- 文本测量功能
|
||
|
|
|
||
|
|
- **shader.h** - 着色器抽象接口
|
||
|
|
- Uniform 变量设置
|
||
|
|
- 支持各种数据类型
|
||
|
|
|
||
|
|
### 实现说明
|
||
|
|
|
||
|
|
这些接口是纯虚类(抽象接口),不需要在 `src/graphics/resources/` 目录中提供实现。
|
||
|
|
|
||
|
|
实际的实现位于各个渲染后端目录中:
|
||
|
|
- OpenGL 实现: `src/graphics/backends/opengl/`
|
||
|
|
- Vulkan 实现: `src/graphics/backends/vulkan/` (未来)
|
||
|
|
|
||
|
|
## 设计原则
|
||
|
|
|
||
|
|
1. **后端无关** - 接口不依赖任何特定渲染 API
|
||
|
|
2. **工厂模式** - 通过后端工厂创建具体实现
|
||
|
|
3. **资源管理** - 使用智能指针管理资源生命周期
|
||
|
|
4. **类型安全** - 使用强类型枚举和结构体
|