Commit Graph

63 Commits

Author SHA1 Message Date
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
ChestnutYueyue cd6c65a555 feat(create_project): 增强项目创建工具并添加开发环境检测
- 添加 DevToolsChecker 类用于检测开发环境工具链
- 自动克隆引擎源码到项目目录
- 添加系统字体自动复制功能
- 重构 xmake.lua 模板以支持本地引擎源码构建
- 改进 README.md 模板结构和内容
- 添加开发工具链下载提示功能
2026-02-13 21:50:25 +08:00
ChestnutYueyue 06de1e79af feat(scripts): 添加 Extra2D 项目脚手架工具
实现创建 Extra2D 游戏项目的自动化脚本,包括:
- 创建标准目录结构
- 生成 main.cpp 模板文件
- 配置 xmake.lua 构建脚本
- 添加 .gitignore 和 README.md
- 支持 Windows 和 Nintendo Switch 平台
2026-02-13 20:39:03 +08:00
ChestnutYueyue f02b368dc9 refactor(action): 重构动作系统架构并添加新功能
重构动作系统核心架构,主要变更包括:
1. 将动作系统拆分为多个模块化头文件
2. 新增动作管理器实现集中管理
3. 添加瞬时动作、间隔动作和特殊动作类
4. 实现完整的缓动动画系统
5. 优化节点动作接口与性能

新增功能:
1. 支持颜色和翻转动画
2. 添加回调动作和节点管理动作
3. 实现跟随和速度控制等特殊动作
4. 提供30+种缓动函数支持

BREAKING CHANGE: 动作系统API不兼容旧版本,需更新相关调用代码
2026-02-13 18:46:42 +08:00
ChestnutYueyue 3ffcd692b6 feat(对象池): 实现高性能自动管理对象池系统
- 新增自动内存对齐、线程本地缓存和自动容量管理的对象池实现
- 为推箱子示例添加撤销功能演示对象池使用
- 优化对象池内存管理,支持自动预热和收缩
- 添加详细API文档说明对象池特性和使用方法
- 在应用启动时自动预热水对象池减少运行时延迟
2026-02-13 17:34:46 +08:00
ChestnutYueyue 65825946be docs(API_Tutorial): 移除链式调用示例并更新UI文档
更新UI系统文档,移除了所有链式调用方法的示例,统一使用标准设置方法
修改最佳实践部分,移除关于链式调用的推荐
2026-02-13 16:58:40 +08:00
ChestnutYueyue 866fd4b1ff refactor(ui): 移除UI组件的链式调用方法并重构文档注释
重构所有UI组件头文件,移除链式调用构建器方法
为UI组件添加详细的文档注释,说明各方法和属性的用途
调整部分实现文件的结构,使其更加清晰易读
2026-02-13 16:52:57 +08:00
ChestnutYueyue b78c493590 feat(场景系统): 重构场景过渡系统并添加视口适配功能
重构过渡系统为基于 TransitionScene 的场景中介模式,新增多种过渡效果
为 BaseScene 添加视口适配功能,支持居中显示游戏内容
将按钮组件扩展支持切换模式,优化 UI 系统文档
更新示例项目使用新过渡系统和视口适配

新增 TransitionScene 基类及多种过渡效果实现:
- TransitionFadeScene 淡入淡出过渡
- TransitionSlideScene 滑动过渡
- TransitionScaleScene 缩放过渡
- TransitionFlipScene 翻页过渡
- TransitionBoxScene 方块过渡

BaseScene 提供视口适配功能:
- 计算居中视口参数
- 处理窗口大小变化
- 支持作为 TransitionScene 子场景渲染

UI 系统改进:
- Button 组件新增切换模式支持
- 合并 ToggleImageButton 功能到 Button
- 更新文档和示例使用切换按钮

示例项目更新:
- flappy_bird 使用新过渡系统
- push_box 实现完整场景结构和视口适配
- 更新场景切换 API 使用方式
2026-02-13 13:56:18 +08:00
ChestnutYueyue 4f641a2854 perf(渲染): 优化文本渲染和精灵批处理性能
- 在 GLSpriteBatch 中添加 viewProjection 缓存以减少重复设置
- 增大字体图集尺寸以支持更多字符
- 预分配字形缓冲区避免动态内存分配
- 统一使用 RGBA 格式处理 SDF 和普通字形
- 优化文本渲染使用批处理绘制
- 使用编译期生成的静态索引缓冲区
- 优化顶点变换计算减少重复运算
- 硬编码 SDF 常量到着色器中避免运行时传参
2026-02-13 10:43:38 +08:00
ChestnutYueyue f86f9b3966 feat(渲染器): 添加线条批处理功能以提高绘制效率
为OpenGL渲染器添加独立的线条批处理系统,包括:
- 新增线条专用VAO和VBO
- 实现线条顶点缓存和批处理刷新机制
- 修改所有线条绘制方法使用批处理
- 增加最大线条顶点数常量
- 优化线宽处理逻辑

通过批处理减少绘制调用次数,提升线条绘制性能。
2026-02-13 10:25:07 +08:00
ChestnutYueyue ca41af0dbd perf: 优化渲染和计算性能
- 使用线程局部存储和固定数组优化节点世界变换计算,避免内存分配
- 实现快速随机数生成器替代 std::mt19937 提升粒子系统性能
- 添加三角函数查表优化精灵旋转计算
- 使用工厂函数指针数组替代 switch 语句优化场景过渡创建
- 实现形状生成函数查找表优化粒子发射器
- 重构渲染器实现形状批处理和状态缓存,减少 GL 调用
- 添加预分配缓冲区和顶点缓存优化形状渲染性能
2026-02-13 10:00:39 +08:00
ChestnutYueyue 4107e0b12b docs: 更新多个API教程文档并添加示例代码
为多个API教程文档添加详细示例代码和说明,包括:
- 音频系统:添加Flappy Bird音效管理器实现
- 输入处理:补充鼠标输入检测和游戏输入处理示例
- UI系统:增加按钮启用/禁用功能及动画控制示例
- 节点系统:完善动画系统文档和示例
- 资源管理:添加精灵帧和资源加载器实现
- 场景系统:补充视口适配方案和基础场景类实现
2026-02-13 08:56:27 +08:00