Commit Graph

12 Commits

Author SHA1 Message Date
ChestnutYueyue 81bc7ae030 feat(assets): 添加字体和音乐资源支持
- 新增 Font 类,使用 stb_truetype 加载 TTF/OTF 字体并计算度量信息
- 新增 Music 类,基于 SDL_mixer 实现音频播放、暂停、停止等功能
- 为 AssetSystem 和 AssetsModule 添加字体和音乐的存储、加载器注册及缓存支持
- 在 hello_world 示例中演示字体和音乐的加载与使用
- 更新 extra2d.h 头文件以包含新增的资产模块头文件
2026-03-16 19:38:24 +08:00
ChestnutYueyue 1097aeae6c feat(shader): 支持单文件分段着色器并更新内置默认着色器
- 扩展 ShaderLoader 以支持 .glsl 单文件分段格式(#type vertex/fragment)
- 将内置默认着色器从分离的 .vert/.frag 文件合并为单个 default.glsl 文件
- 更新 BuiltinAssetFactory 使用新的加载方式创建默认着色器
- 删除旧的 default.frag 文件,简化着色器资源管理
2026-03-16 19:18:53 +08:00
ChestnutYueyue 690854698f refactor: 移除未使用的类型定义并简化监听器链表操作
- 删除 EventTrait 和 TupleExtractor 中未使用的 FuncType 类型别名
- 删除 AssetsModule 中未使用的缓存、默认资源、互斥锁及相关数据结构
- 提取监听器链表追加操作为独立函数以消除重复代码
2026-03-16 17:57:13 +08:00
ChestnutYueyue b672b16b83 refactor(assets): 重构资源系统架构,提取核心逻辑到 AssetSystem
- 新增 AssetSystem 类,整合异步加载、热重载、依赖跟踪等核心功能
- 将 AssetAsyncRuntime、AssetHotReloadRuntime 等组件提取为独立运行时类
- 重命名 AssetDependencyTracker 为 AssetDependencyGraph,改进数据结构
- 新增 BuiltinAssetFactory 负责默认资源的创建与管理
- 新增 AssetCache 提供线程安全的资源缓存机制
- 简化 AssetsModule 实现,将其职责委托给 AssetSystem
- 保持原有 API 兼容性,仅重构内部实现
2026-03-16 17:44:36 +08:00
ChestnutYueyue 41817c9e8a feat(renderer): 添加渲染性能优化和资源热重载系统
- 新增 AssetFileSystem 封装文件系统操作,支持 RomFS
- 新增 AssetAsyncLoader 实现异步资源加载
- 新增 AssetDependencyTracker 跟踪资源依赖关系
- 新增 AssetHotReloader 实现纹理和着色器热重载
- 优化 CommandQueue 性能:添加缓存机制,减少冗余状态切换
- 扩展 RenderGraph::execute 支持传递总时间参数
- 改进渲染统计信息,添加性能分析数据
- 重构 AssetsModule 使用新的子系统,提高代码可维护性
2026-03-16 17:33:57 +08:00
ChestnutYueyue 44e0d65f10 feat(assets): 添加资源热重载和智能卸载功能
实现纹理和着色器的热重载功能,支持文件修改后自动重新加载
添加资源引用计数和LRU缓存机制,支持智能卸载长时间未使用的资源
重构文件监控系统,减少重复代码
扩展AssetStorage功能,增加加载状态管理和访问时间追踪
2026-03-03 19:32:23 +08:00
ChestnutYueyue e0b0a7883d refactor(renderer): 移除实例化渲染功能及相关代码
移除不再需要的实例化渲染功能,包括着色器、材质、渲染命令和测试代码
优化实例缓冲区实现,添加脏标记和增量更新功能
2026-03-03 12:18:32 +08:00
ChestnutYueyue ec6ced9db2 refactor(模块系统): 调整模块初始化优先级并重构文件加载逻辑
重构模块初始化顺序,确保文件模块优先加载
移除Shader类中直接文件操作,统一通过FileModule进行文件访问
添加FileModule实现跨平台文件系统操作,支持RomFS
重构资源加载逻辑,统一使用FileModule进行文件操作
2026-03-03 05:53:40 +08:00
ChestnutYueyue 91e3e8fe57 feat(渲染): 实现实例化渲染功能并优化渲染管线
- 添加实例化渲染支持,包括InstanceBuffer、InstanceBufferManager和相关着色器
- 重构渲染命令队列以支持实例化绘制
- 优化材质系统,使用vector保持参数顺序并添加快速查找
- 改进顶点布局系统,支持实例属性
- 添加全局UBO管理,优化uniform数据传递
- 实现新的实例化测试场景节点
- 更新着色器以支持实例化渲染和UBO
- 改进GL命令列表,支持实例属性绑定
- 添加AssetsModule对实例化资源的支持
- 修复Director在没有主相机时的警告日志
2026-03-03 03:48:55 +08:00
ChestnutYueyue b4a3d6b14b refactor(assets): 移除未使用的chrono头文件 2026-03-02 22:58:03 +08:00
ChestnutYueyue f7e4f89cca feat(assets): 实现资源热重载和异步加载系统
添加资源热重载功能,支持监控文件变更并自动重新加载
实现异步加载系统,支持多线程资源加载和回调处理
增加资源依赖跟踪机制,自动更新依赖材质的引用
使用读写锁保护资源存储,提升多线程访问性能
2026-03-02 22:54:06 +08:00
ChestnutYueyue 46ec1c665f refactor(assets): 重构资源管理系统为ECS风格
- 引入新的Handle<T>轻量级资源句柄,替代原有的uint64_t句柄
- 新增AssetStorage类实现密集存储管理
- 添加AssetsModule模块统一管理资源加载和生命周期
- 实现TextureLoader和ShaderLoader资源加载器
- 重构RendererModule移除资源管理职责,改为使用AssetsModule
- 更新SpriteRenderer和相关组件使用新Handle接口
- 修改RenderTypes.h中的资源句柄类型定义
2026-03-02 22:44:42 +08:00