Extra2D/docs
ChestnutYueyue 2748e80dea refactor(opengl): 重构渲染器资源管理并引入资源抽象层
- 引入资源抽象层接口(Buffer、Pipeline、Framebuffer等)
- 将OpenGL资源管理重构为GLBuffer、GLPipeline、GLFramebuffer等实现类
- 使用GLBuffer替代手动管理的VBO/IBO,提供更安全的资源生命周期管理
- 新增GLPipeline管理OpenGL管线状态,减少冗余状态切换
- 新增GLFramebuffer封装帧缓冲对象功能
- 更新GLRenderer使用新的资源管理方式
- 添加详细文档说明资源抽象层设计
- 修复相关内存泄漏问题

docs: 添加资源抽象层文档说明

- 新增docs/README.md详细说明资源抽象层设计
- 文档包含各接口功能说明和实现原则
2026-02-17 22:36:02 +08:00
..
README.md refactor(opengl): 重构渲染器资源管理并引入资源抽象层 2026-02-17 22:36:02 +08:00
module_system.md refactor(模块系统): 重构模块配置方式为lambda函数 2026-02-17 00:34:14 +08:00

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/ (未来)

设计原则

  1. 后端无关 - 接口不依赖任何特定渲染 API
  2. 工厂模式 - 通过后端工厂创建具体实现
  3. 资源管理 - 使用智能指针管理资源生命周期
  4. 类型安全 - 使用强类型枚举和结构体