- 引入资源抽象层接口(Buffer、Pipeline、Framebuffer等) - 将OpenGL资源管理重构为GLBuffer、GLPipeline、GLFramebuffer等实现类 - 使用GLBuffer替代手动管理的VBO/IBO,提供更安全的资源生命周期管理 - 新增GLPipeline管理OpenGL管线状态,减少冗余状态切换 - 新增GLFramebuffer封装帧缓冲对象功能 - 更新GLRenderer使用新的资源管理方式 - 添加详细文档说明资源抽象层设计 - 修复相关内存泄漏问题 docs: 添加资源抽象层文档说明 - 新增docs/README.md详细说明资源抽象层设计 - 文档包含各接口功能说明和实现原则 |
||
|---|---|---|
| .. | ||
| README.md | ||
| module_system.md | ||
README.md
资源抽象层 (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/(未来)
设计原则
- 后端无关 - 接口不依赖任何特定渲染 API
- 工厂模式 - 通过后端工厂创建具体实现
- 资源管理 - 使用智能指针管理资源生命周期
- 类型安全 - 使用强类型枚举和结构体