Commit Graph

74 Commits

Author SHA1 Message Date
ChestnutYueyue 9041833430 refactor(rhi): 重构渲染硬件接口模块
feat(rhi): 新增RHI模块抽象层
feat(opengl): 实现OpenGL后端支持
refactor(renderer): 重构材质、纹理和网格类以使用RHI接口
refactor(scene): 移除移动构造函数并禁止移动操作
fix(shader): 修复默认片段着色器纹理采样问题
refactor(module): 改进模块注册表以支持实例存储
refactor(window): 移除OpenGL上下文管理交由RHI处理
feat(assets): 为默认材质添加纹理支持
refactor(timer): 移除移动操作并简化实现
refactor(input): 移除移动操作并简化实现
2026-03-03 02:16:29 +08:00
ChestnutYueyue b4a3d6b14b refactor(assets): 移除未使用的chrono头文件 2026-03-02 22:58:03 +08:00
ChestnutYueyue d387532738 refactor(renderer): 移除冗余的<vector>头文件引入
清理不再需要的<vector>头文件,保持头文件简洁性
2026-03-02 22:57:00 +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
ChestnutYueyue 3b827149ba refactor(renderer): 清理代码并优化结构
- 移除renderer_module.cpp中注释掉的代码
- 重新组织director.cpp的代码格式和结构
- 简化shader.cpp的日志输出和代码格式
- 添加glad头文件包含
2026-03-02 04:57:44 +08:00
ChestnutYueyue 92be7d9d18 feat(场景图系统): 实现完整的场景图模块和示例程序
新增场景图系统核心组件:
- Director 场景管理
- Scene 场景容器
- Node 节点层级
- Component 组件系统
- Transform 变换(含锚点)
- Camera 相机
- SpriteRenderer 精灵渲染

添加场景图示例程序,演示:
- 节点层级和变换继承
- 组件系统使用
- 相机设置
- 精灵渲染

同时优化了渲染系统:
- 修改渲染命令结构
- 添加视口适配器
- 改进着色器错误处理
- 增强材质系统功能
2026-03-02 04:50:28 +08:00
ChestnutYueyue b4be0d84f8 feat(渲染器): 实现核心渲染系统模块
添加渲染器模块及相关组件,包括材质、网格、纹理、着色器和统一缓冲区管理。主要变更包括:

- 新增渲染器模块,负责接收渲染命令、批处理和排序
- 实现材质系统支持参数和着色器管理
- 添加网格类管理顶点和索引数据
- 实现纹理加载和绑定功能
- 添加着色器编译和链接功能
- 实现统一缓冲区对象(UBO)管理系统
- 提供默认资源(材质、网格、纹理)
- 支持实例化渲染和命令批处理
- 添加渲染事件系统(OnRenderBegin/Submit/End)
- 完善资源句柄管理机制
- 优化GL资源初始化和清理流程

移除不再使用的IModule接口,调整窗口模块事件触发时机确保GL上下文安全
2026-03-02 00:25:14 +08:00
ChestnutYueyue 46393fd027 refactor(resource): 移除资源系统相关代码
移除资源管理器及其相关组件,包括纹理、着色器、材质、字体、音频等资源类
删除资源加载示例及其构建配置
清理引擎上下文中与资源管理相关的接口和实现
2026-03-01 23:21:54 +08:00
ChestnutYueyue bbdc1435ce refactor(tests): 移除测试套件及相关配置
移除整个tests目录及其内容,包括测试代码、构建脚本和文档
同时更新xmake.lua移除测试套件配置
重构src/resource/material.cpp代码格式
2026-03-01 22:53:28 +08:00
ChestnutYueyue bdf78f5eca feat(resource): 实现资源管理系统及示例程序
新增资源管理系统,支持纹理、字体、着色器、音频等资源的加载和管理:
- 添加 ResourceManager 核心模块
- 实现 Texture、Font、Shader、Audio 等资源类
- 添加 FontAtlas 动态字符图集管理
- 实现 Material 材质系统
- 添加 Text 文本渲染支持
- 新增资源加载示例程序
- 更新构建系统以支持资源加载示例
- 完善文档和 README
2026-03-01 15:39:07 +08:00
ChestnutYueyue 6717015e28 feat(switch): 添加 Nintendo Switch 平台支持
- 添加 Switch 平台专用的日志输出和初始化处理
- 修改窗口模块以支持 OpenGL ES 3.2 渲染
- 更新构建系统以支持 Switch 平台编译
- 添加 Switch 平台文件系统操作支持
- 移除 Vulkan 相关依赖,改用 OpenGL ES
- 更新插件加载器以适配 Switch 平台限制
2026-03-01 03:48:51 +08:00
ChestnutYueyue fb11f2a71e refactor(渲染): 迁移OpenGL到Vulkan并重构相关模块
- 移除OpenGL相关代码和依赖,添加Vulkan SDK支持
- 重构窗口模块为Vulkan实现,移除GL上下文和VSync相关功能
- 简化配置结构,移除不再需要的OpenGL版本设置
- 重构上下文模块,使用单例模块注册表
- 移动定时器模块到utils目录并优化实现
- 清理废弃代码和头文件引用
2026-03-01 00:01:48 +08:00
ChestnutYueyue f9be301dae refactor(引擎核心): 重构模块系统并引入自动注册机制
重构引擎核心模块系统,使用新的 Module 基类替代旧版 IModule 接口
新增模块自动注册机制,通过 E2D_REGISTER_MODULE 宏实现模块注册
将窗口、文件、定时器等模块迁移到新系统,支持配置事件驱动初始化
移除旧版 SDL2 封装和模块管理器,简化应用程序初始化流程
2026-02-28 23:35:34 +08:00
ChestnutYueyue ebf73a4492 feat: 添加窗口和输入模块支持并简化示例程序
重构应用类以支持窗口和输入模块,添加相关接口方法
移除碰撞演示示例,简化hello world示例为控制台输出
启用控制台子系统以便在mingw平台查看输出
2026-02-28 22:30:48 +08:00
ChestnutYueyue 418d2c8f92 feat(tests): 添加完整的测试套件框架和核心模块测试
refactor(module): 改进模块注册表同名模块处理逻辑
refactor(plugin): 优化插件加载器依赖检查机制
refactor(event): 重构事件总线监听器添加顺序逻辑

build: 添加测试构建选项和配置
docs: 添加测试套件README文档
2026-02-28 21:48:35 +08:00
ChestnutYueyue e68ce87638 refactor(engine): 重构引擎架构,引入模块化系统和事件总线
重构引擎核心架构,移除旧的服务和调度器系统,引入基于事件总线的模块化设计:
1. 新增 Context 类作为引擎核心上下文,管理模块和插件生命周期
2. 新增 IModule 接口和 ModuleRegistry 实现模块注册与管理
3. 新增 IPlugin 接口和 PluginLoader 实现插件动态加载
4. 重构事件系统,扩展触摸和游戏手柄事件
5. 移除 Director、Scheduler 和 Service 等旧系统
6. 重构文件、窗口等平台模块为独立模块
7. 更新应用类以使用新架构
8. 优化随机数生成器为非单例设计
9. 添加详细的模块优先级常量
10. 改进代码组织结构和文档注释

此次重构提高了代码的可维护性和扩展性,支持运行时模块和插件动态加载,为后续功能扩展奠定基础。
2026-02-28 20:56:11 +08:00
ChestnutYueyue 5a3d0cd9de refactor(core): 移除TBB依赖并重构事件系统和调度器
重构服务管理器和调度器,使用标准库替代TBB并发容器
将事件系统从core移动到独立event目录并优化实现
更新构建脚本移除TBB相关配置
添加线程安全队列实现并行调度
2026-02-28 04:44:56 +08:00
ChestnutYueyue 0761b55864 refactor(platform): 移除PlatformType枚举并调整OpenGL配置
移除不再使用的PlatformType枚举及相关平台判断逻辑,简化代码结构。同时将默认OpenGL配置从3.3 Core改为3.2 ES,以支持更多平台。调整了窗口服务初始化方式,使用lambda表达式创建配置对象。
2026-02-27 23:08:49 +08:00
ChestnutYueyue 8abf58e3d5 feat: 添加SDL2平台支持及核心功能模块
实现SDL2平台初始化、窗口管理、输入处理和文件系统服务
重构服务管理机制,支持暂停/恢复状态
添加事件总线系统,实现引擎事件分发
优化应用主循环和更新机制
完善跨平台文件操作接口
2026-02-27 22:59:17 +08:00
ChestnutYueyue 5ef1873a44 refactor(core): 使用全局变量替换Director中的成员变量
将Director类中的Scheduler和SvcMgr成员变量替换为全局变量SCHED和SVC_MGR,
并添加IService的友元声明以允许SvcMgr访问其私有成员
2026-02-27 20:55:06 +08:00
ChestnutYueyue 71eeeac033 refactor(engine): 重构引擎代码结构,优化类型系统和核心模块
- 将核心类型和数学工具移动到types目录下,按功能分类
- 重构引用计数和智能指针实现,提高线程安全性
- 新增调度器和服务管理器,提供统一的更新机制
- 移除旧的输入系统和窗口管理代码
- 优化日志系统,移除冗余代码
- 添加TBB依赖,支持并行任务调度
- 统一代码风格,使用更简洁的命名规范
2026-02-27 20:46:16 +08:00
ChestnutYueyue 3b031666ae build: 添加 TBB 作为第三方子模块
添加 oneTBB 作为子模块以支持并行计算功能,路径为 third_party/tbb
2026-02-27 20:44:17 +08:00
ChestnutYueyue 24b86b4916 refactor: 移除事件系统和音频系统相关代码
移除不再使用的事件队列(EventQueue)、事件分发器(EventDispatcher)、音频引擎(AudioEngine)和声音(Sound)相关代码
删除utils/data.h数据存储模块
清理相关头文件引用和成员变量
2026-02-27 19:25:54 +08:00
ChestnutYueyue ea081b9dd3 refactor: 移除图形渲染和场景管理相关代码
移除不再需要的图形渲染、纹理、字体、场景管理等模块代码,清理相关头文件引用。主要变更包括:
- 删除renderer、graphics、scene目录下的大部分文件
- 清理extra2d.h中的冗余头文件引用
- 简化Application类,移除渲染和场景管理相关功能
2026-02-27 19:12:24 +08:00
ChestnutYueyue d81f0c1e45 refactor(graphics): 移除纹理图集功能及相关实现代码 2026-02-27 18:52:24 +08:00
ChestnutYueyue b4a55239aa refactor(core): 替换shared_ptr为侵入式引用计数IntrusivePtr
重构整个项目,将std::shared_ptr替换为自定义的IntrusivePtr实现:
1. 新增RefCounted基类,提供引用计数功能
2. 实现IntrusivePtr智能指针模板类
3. 修改所有资源管理类使用IntrusivePtr
4. 更新Node类继承自RefCounted
5. 移除types.h中的shared_ptr相关定义
6. 统一使用makeRef替代shared创建对象
2026-02-26 21:17:11 +08:00
ChestnutYueyue 4afd52cc82 refactor: 移除自定义字符串模块并改用标准库
移除core/string.h和core/string.cpp,使用标准库<string>替代
删除renderer/shader.h及相关实现文件
在需要UTF-8转换的地方添加简化版实现
更新相关头文件的包含关系
2026-02-26 20:21:55 +08:00
ChestnutYueyue 60ef7ab63f refactor(ui): 移除UI组件及相关功能代码
移除所有UI组件代码,包括按钮、复选框、单选框、进度条、滑动条、标签、文本和基础Widget类
删除对象池预热功能及相关代码
清理UI组件相关的头文件引用
2026-02-26 20:16:46 +08:00
ChestnutYueyue c84aab70ed refactor(renderer): 重构着色器系统并优化渲染命令结构
- 将 shader_system.h 重命名为 shader.h 并合并相关实现
- 移除 shader_preset.h 和 shader_preset.cpp 文件
- 优化 render_command.h 中的代码格式和结构
- 清理不必要的头文件包含
2026-02-26 20:12:12 +08:00
ChestnutYueyue 00d709fcc8 refactor: 统一智能指针创建函数命名
将 makePtr 和 makeUnique 分别重命名为 shared 和 unique,以提供更简洁的智能指针创建接口
2026-02-26 20:08:04 +08:00
ChestnutYueyue aec444f2b5 refactor(core): 重构数学模块,拆分为多个独立头文件
将 math_types.h 拆分为 vec2.h, vec3.h, rect.h, size.h 和 transform.h
移除 ColorConstants 结构体,直接使用 Colors 命名空间
优化颜色结构体的运算符实现
2026-02-26 20:06:51 +08:00
ChestnutYueyue e52c117830 refactor(renderer): 重构渲染器模块结构
将渲染器相关代码从graphics目录移动到renderer目录,包括Camera、Renderer等核心类
删除过渡动画相关代码,简化场景切换逻辑
移除Tween动画系统,减少代码复杂度
重命名ShapeNode为Shape,保持命名一致性
更新所有引用路径以反映新的目录结构
2026-02-26 19:57:16 +08:00
ChestnutYueyue f41600306e refactor: 移除空间索引系统及相关示例代码
移除空间索引系统(QuadTree/SpatialHash)及相关实现代码
删除push_box和flappy_bird示例游戏及其资源文件
清理不再需要的空间索引相关函数调用和头文件引用
2026-02-26 19:41:57 +08:00
ChestnutYueyue 98bca638d0 refactor(platform): 将 input_codes.h 从 event 移动到 platform 目录
将输入相关的代码定义文件从 event 目录移动到更合适的 platform 目录
2026-02-26 19:35:20 +08:00
ChestnutYueyue 353a222c62 refactor(graphics): 重命名 render_backend 为 renderer 以统一命名
将渲染后端接口文件 render_backend.h 重命名为 renderer.h,并更新所有相关引用。这一修改旨在使命名更加清晰统一,renderer 更能准确描述该接口的职责。
2026-02-26 01:00:58 +08:00
ChestnutYueyue 7b1e1299e0 refactor(渲染系统): 重命名 RenderBackend 为 Renderer 并统一相关接口命名
将渲染后端基类从 RenderBackend 重命名为 Renderer,使其更简洁直观
更新所有相关派生类和接口引用,保持命名一致性
修改渲染器相关方法参数类型为 Renderer&
调整部分成员函数命名风格,如 getWidth()/getHeight() 改为 width()/height()
更新文档和注释中的渲染后端相关描述
2026-02-26 00:59:16 +08:00
ChestnutYueyue bd3cebf0b5 chore: 删除过时文档文件
移除不再使用的Extra2D构建系统文档和API教程文件,包括快速开始、场景系统、节点系统、输入处理、碰撞检测、音频系统和动作系统等过时内容
2026-02-26 00:55:35 +08:00
ChestnutYueyue ea5ecd383f refactor: 统一边界框方法名称为 boundingBox
将 getBoundingBox 方法重命名为 boundingBox,以遵循更简洁的命名规范
同时更新相关文档和示例代码中的调用
2026-02-26 00:55:13 +08:00
ChestnutYueyue 377ec373b0 refactor: 统一方法命名风格,使用更简洁的getter命名
将get前缀的getter方法统一改为更简洁的属性风格命名,例如getPosition()改为pos(),getRotation()改为rot()等,提升代码一致性和可读性

- 修改Window、Sound、Tween、Sprite等类的方法命名
- 更新所有调用点以适应新的命名风格
- 保持原有功能不变,仅重构命名
2026-02-26 00:38:31 +08:00
ChestnutYueyue 0f520c8e37 fix(ui): 修正按钮边界矩形计算使用错误的位置
使用convertToWorldSpace替代getRenderPosition来正确计算边界矩形,确保在不同坐标系转换下边界计算准确
2026-02-26 00:15:45 +08:00
ChestnutYueyue fa9ee0e2a7 refactor(ui): 移除坐标空间系统并简化文本组件位置处理
移除 CoordinateSpace 枚举及相关功能,改为使用统一的位置处理方式
更新示例代码以使用新的位置设置方法
2026-02-26 00:12:54 +08:00
ChestnutYueyue a6c1f66fff refactor(animation): 移除旧动画系统并添加Tween动画支持
重构动画系统,删除旧动画组件(AnimationClip, AnimatedSprite等),添加新的Tween动画系统。主要变更包括:
1. 删除旧的动画相关文件(animation_clip, animation_frame等)
2. 实现新的Tween动画系统,支持多种缓动函数
3. 更新flappy_bird示例使用新的Tween系统
4. 调整include路径和xmake配置
5. 添加输入系统对控制器和鼠标滚轮的支持
2026-02-25 21:22:35 +08:00
ChestnutYueyue 5039b1d9fc refactor: 重构项目结构,优化代码组织与文件布局
将源代码从Extra2D/src迁移到src目录,统一文件路径
更新xmake构建配置以适配新路径
清理冗余代码文件,合并重复实现
调整头文件包含路径,确保编译通过
优化过渡动画场景实现,移除不必要的动画效果
2026-02-25 06:46:13 +08:00
ChestnutYueyue f9c8f080eb refactor(效果系统): 移除效果相关代码
移除后处理、粒子系统和自定义效果管理器的头文件和实现文件
删除extra2d.h中对效果模块的包含
2026-02-25 06:27:58 +08:00
ChestnutYueyue f08a0bf583 refactor: 统一头文件引用路径并重构项目结构
重构头文件引用路径,移除冗余的extra2d前缀
更新xmake构建配置以反映新的头文件组织方式
添加缺失的核心模块头文件定义
2026-02-25 06:23:53 +08:00
ChestnutYueyue 97220e9417 refactor: 更新json库引用路径为nlohmann/json
统一将项目中所有json/json.hpp引用改为nlohmann/json.hpp,并清理不再需要的头文件路径配置
2026-02-25 06:08:58 +08:00
ChestnutYueyue a2b142eb99 refactor(engine): 重构第三方库引用路径
将glad和stb库从Extra2D目录移动到third_party目录,并更新相关引用路径
添加nlohmann和simpleini第三方库的头文件路径
2026-02-25 06:05:34 +08:00
ChestnutYueyue 7c7d9cca92 chore: 从.gitignore中移除third_party目录
不再需要忽略third_party目录,因此将其从.gitignore文件中删除
2026-02-25 06:05:24 +08:00
ChestnutYueyue 59f01900fb chore: 在.gitignore中添加GreedyMonster目录 2026-02-14 12:58:22 +08:00