ChestnutYueyue
|
f1cf6a6d85
|
docs: 更新README添加多后端渲染和高性能批处理特性
|
2026-02-17 14:50:05 +08:00 |
ChestnutYueyue
|
a4276e4376
|
feat(渲染后端): 重构渲染系统支持多后端
- 新增渲染后端工厂类,支持OpenGL和Vulkan后端
- 将OpenGL相关代码移动到backends/opengl目录
- 添加Vulkan后端占位实现
- 重构Shader系统,支持JSON元数据定义多后端Shader
- 新增shape和sprite的JSON定义及GLSL文件
- 移除旧的组合Shader文件格式
- 更新构建系统支持选择渲染后端
- 重命名相关头文件路径保持一致性
|
2026-02-17 14:48:04 +08:00 |
ChestnutYueyue
|
d2660a86bb
|
refactor(config): 移除平台检测和配置相关代码
将应用配置信息移至Application类,移除平台检测和配置相关文件
简化ShaderManager的初始化逻辑,使用相对路径替代平台检测
|
2026-02-17 12:53:01 +08:00 |
ChestnutYueyue
|
61dea772f7
|
feat(服务定位器): 实现服务自动注册机制并重构服务初始化流程
添加服务自动注册宏E2D_AUTO_REGISTER_SERVICE,通过模板元编程实现编译期服务注册
重构Application初始化流程,移除手动服务注册代码,改为自动注册方式
统一各服务实现类的代码风格,优化缩进和格式
|
2026-02-17 12:12:22 +08:00 |
ChestnutYueyue
|
4f02ad0e39
|
refactor(模块系统): 重构模块配置方式为lambda函数
将InputModule、WindowModule、RenderModule等核心模块的配置方式从结构体改为lambda函数
添加独立的配置结构体(InputCfg/WindowCfg/RenderCfg)并更新文档
实现GLFW窗口居中功能
更新示例代码使用新的配置方式
|
2026-02-17 00:34:14 +08:00 |
ChestnutYueyue
|
4b1de5e36a
|
refactor: 整理头文件顺序并格式化代码
重构头文件引入顺序以保持一致性,并统一代码格式化风格
|
2026-02-17 00:12:32 +08:00 |
ChestnutYueyue
|
9f83b8fde5
|
feat(platform): 添加 GLFW 后端支持并移除 SDL2 依赖
添加 GLFW 作为可选的窗口和输入后端,支持通过配置切换 SDL2 或 GLFW 后端
移除对 SDL2 的直接依赖,重构窗口模块以支持多后端
更新构建系统和文档以反映后端选择功能
|
2026-02-17 00:06:31 +08:00 |
ChestnutYueyue
|
0425425ec7
|
refactor: 重构 graphics 模块目录结构并简化配置系统
- 重组 graphics 目录,按功能分为 core/camera/shader/texture/memory 子目录
- 移除所有模块级 *_config.h 配置文件,改用模块内部的 Cfg 结构体
- 移除 config_loader 和 debug_config 相关文件
- 简化模块系统,使用 Module 基类替代复杂的 IModuleConfig/IModuleInitializer
- 添加 SDL_GetBasePath() 支持跨平台 shader 路径解析
- 修复日志宏不支持 {} 格式化语法的问题
- 更新文档反映新的目录结构
|
2026-02-16 23:14:12 +08:00 |
ChestnutYueyue
|
6273f3235d
|
feat(scene): 添加多种场景过渡效果实现
实现缩放、方块、滑动、翻页和淡入淡出五种场景过渡效果
新增 TransitionScene 基类作为过渡场景的公共父类
扩展 SceneManager 支持带过渡效果的场景切换操作
|
2026-02-15 18:00:32 +08:00 |
ChestnutYueyue
|
b55d279611
|
feat(示例): 添加自定义模块示例和文档
新增HelloModule示例展示如何创建自定义模块,包含:
1. 模块配置类实现
2. 模块初始化器实现
3. 自动注册机制
4. JSON配置支持
5. 场景中使用模块的示例
同时更新模块系统文档,详细说明自定义模块开发流程
|
2026-02-15 17:00:39 +08:00 |
ChestnutYueyue
|
867013f6eb
|
refactor(shader): 合并GLShaderNew到GLShader并优化着色器缓存逻辑
- 删除GLShaderNew类,将其功能合并到GLShader中
- 增加着色器缓存保存时的空二进制检查
- 添加更多调试日志信息
- 优化二进制数据获取的错误处理
|
2026-02-15 16:24:35 +08:00 |
ChestnutYueyue
|
78680138c2
|
build: 根据平台环境配置SDL2的Wayland支持
在Linux平台下检测XDG_SESSION_TYPE环境变量,动态启用SDL2的Wayland后端支持。修改xmake.lua构建配置以适配不同显示服务器环境。
|
2026-02-15 15:35:26 +08:00 |
ChestnutYueyue
|
0700bad5d9
|
docs: 添加项目README文件
添加项目README文件,包含项目简介、核心特性、架构概览、构建指南、快速开始示例、技术栈、文档结构等信息
|
2026-02-15 14:03:16 +08:00 |
ChestnutYueyue
|
2d8b98bba6
|
docs(模块系统): 添加场景图和视口适配系统的文档
添加场景图系统的详细说明,包括Node基类、Scene类、ShapeNode和变换继承
添加视口适配系统的文档,包括ViewportAdapter和不同适配模式的说明
更新示例部分以包含新的场景相关实现文件
|
2026-02-15 13:39:18 +08:00 |
ChestnutYueyue
|
3216a190ce
|
refactor(渲染): 将视图投影矩阵设置移至Application层
重构渲染流程,将视图投影矩阵的设置从Scene移动到Application层,通过CameraService统一管理。同时更新示例代码以适配此变更,确保视口配置正确应用。
|
2026-02-15 13:37:08 +08:00 |
ChestnutYueyue
|
6c6cac55f7
|
feat(渲染): 实现节点层级变换支持
refactor(场景图): 简化形状节点渲染逻辑
feat(输入): 添加输入事件到事件服务的连接
docs(模块系统): 更新文档说明模块配置和平台支持
test(示例): 添加场景图测试示例展示节点变换
|
2026-02-15 13:32:42 +08:00 |
ChestnutYueyue
|
8c56c29cd2
|
refactor(platform): 重构平台和模块配置系统
将平台相关配置分离到独立头文件
移除AppConfig中的模块配置,改为模块自行管理
统一使用SDL2作为窗口后端
优化Switch平台支持
添加模块配置接口
重构配置加载器以支持模块配置
|
2026-02-15 12:36:36 +08:00 |
ChestnutYueyue
|
453a057c7d
|
feat: 实现服务定位器模式并重构核心服务架构
重构应用程序架构,引入服务定位器模式解耦模块依赖
新增服务注册表和服务定位器核心组件
实现核心服务接口及实现类(场景、计时器、事件、相机服务)
重构Application类使用服务定位器管理服务
添加服务自动注册宏和类型安全服务获取机制
|
2026-02-15 11:40:57 +08:00 |
ChestnutYueyue
|
f8ecf7e03a
|
feat(渲染): 添加内置着色器管理和安装功能
- 移除font.shader中u_smoothing的默认值
- 添加xmake.lua中的着色器安装函数,支持不同平台
- 在渲染模块初始化时初始化ShaderManager并加载内置着色器
- 在渲染模块关闭时清理ShaderManager资源
|
2026-02-15 11:22:13 +08:00 |
ChestnutYueyue
|
475ae50d2a
|
refactor(shader): 重构着色器系统并添加新功能
- 将shader_system.h重命名为shader_manager.h并重构接口
- 新增shader_interface.h作为跨平台着色器抽象
- 实现GLShaderNew作为OpenGL着色器新实现
- 添加shader_cache支持着色器二进制缓存
- 引入shader_hot_reloader实现热重载功能
- 新增shader_loader支持多种着色器文件格式加载
- 添加内置着色器文件到shaders目录
- 更新gl_renderer.cpp使用新的着色器系统
- 扩展platform_detector.h添加资源路径相关方法
- 添加shaders/common目录包含常用GLSL工具函数
重构后的着色器系统提供更完善的缓存、热重载和跨平台支持,同时优化了性能和维护性。
|
2026-02-15 11:12:27 +08:00 |
ChestnutYueyue
|
269f2d907d
|
docs: 添加模块系统文档
添加 Extra2D 模块系统的详细文档,包括架构设计、核心接口、创建模块步骤、内置模块说明和最佳实践
|
2026-02-15 10:11:09 +08:00 |
ChestnutYueyue
|
8f7f1612eb
|
refactor(module): 重构模块系统并添加核心模块实现
重构模块注册表结构以支持初始化器实例缓存,添加配置、日志、平台和渲染等核心模块实现
优化日志系统移除SDL依赖,改进跨平台支持
调整模块初始化流程,增强模块间依赖管理
|
2026-02-15 10:08:44 +08:00 |
ChestnutYueyue
|
38148a6c54
|
feat: 添加SDL2后端支持并实现基础示例程序
添加SDL2作为平台后端支持,包括窗口创建、输入处理和GLAD初始化
实现基础示例程序展示引擎基本功能
重构平台配置代码以提高可读性
移除未使用的input_codes.h头文件
添加demo_basic构建目标到xmake配置
|
2026-02-15 09:22:57 +08:00 |
ChestnutYueyue
|
34fe0bafcb
|
refactor(config): 重构配置系统并添加模块化架构
feat(config): 添加新的配置管理器、加载器和平台检测器
feat(module): 实现模块注册表和初始化系统
refactor(window): 将窗口配置迁移到新的配置系统
refactor(input): 重构输入系统以支持模块化
refactor(render): 更新渲染系统以适配新架构
refactor(graphics): 移除冗余API并简化渲染目标接口
refactor(app): 重构应用类以整合新的配置和模块系统
refactor(color): 移除废弃的ColorConstants结构
style: 清理代码并修复格式问题
|
2026-02-15 08:51:31 +08:00 |
ChestnutYueyue
|
9439e200d7
|
refactor(platform): 重构平台模块,实现多后端支持
重构平台模块,引入IWindow和IInput接口,支持SDL2和GLFW等多后端。主要变更包括:
1. 新增平台模块接口和SDL2后端实现
2. 移除旧版Window和Input类,替换为接口化设计
3. 添加后端注册机制,支持动态加载不同平台后端
4. 统一输入系统API,定义标准键盘、鼠标和手柄按键枚举
5. 更新构建系统,支持通过配置选择不同后端
同时调整相关代码以适配新接口,包括渲染器、场景管理和应用类等
|
2026-02-15 00:22:24 +08:00 |
ChestnutYueyue
|
387ea62853
|
refactor: 统一方法命名规范并优化代码文档
- 将单例方法名从getInstance统一改为get
- 重命名边界框相关方法为getBounds
- 重命名位置相关方法为setPos/getPos
- 优化代码注释,增加详细文档说明
- 移除调试信息输出
- 统一命名管理器类后缀为Mgr
- 重构节点相关方法名,如removeFromParent改为detach
- 统一坐标转换方法命名为toWorld/toLocal
|
2026-02-14 23:59:19 +08:00 |
ChestnutYueyue
|
c6c90a7374
|
refactor: 移除音频系统、过渡场景和示例代码
- 删除音频引擎相关代码,包括AudioEngine和Sound类
- 移除所有过渡场景实现及基类
- 清理示例程序代码
- 简化构建配置,移除SDL2_mixer依赖
- 优化代码结构,移除不必要的资源管理代码
|
2026-02-14 22:37:09 +08:00 |
ChestnutYueyue
|
93d07e547f
|
feat(视口适配): 添加视口适配器功能并集成到相机和输入系统
实现视口适配器功能,支持多种适配模式(宽高比、拉伸、居中、自定义)
将视口适配器集成到相机系统,实现坐标转换和视口自动调整
将视口适配器集成到输入系统,支持逻辑坐标转换
移除不再使用的字符串转换工具类
优化相机矩阵计算,支持旋转和缩放
添加数学工具函数,包括角度处理和坐标转换
|
2026-02-14 18:58:24 +08:00 |
ChestnutYueyue
|
2767d64bf8
|
refactor(core): 移除字符串编码转换工具并清理头文件包含
移除不再使用的字符串编码转换工具文件 string.h,并清理相关头文件包含关系
调整部分头文件中的代码格式,优化枚举和结构体定义
|
2026-02-14 17:49:00 +08:00 |
ChestnutYueyue
|
b949d1a3da
|
docs: 删除Extra2D构建系统文档和API教程文档
删除以下文档文件:
- docs/Extra2D构建系统文档.md
- docs/API_Tutorial/01_Quick_Start.md
- docs/API_Tutorial/02_Scene_System.md
- docs/API_Tutorial/03_Node_System.md
- docs/API_Tutorial/05_Input_Handling.md
- docs/API_Tutorial/06_Collision_Detection.md
- docs/API_Tutorial/08_Audio_System.md
- docs/API_Tutorial/09_Action_System.md
|
2026-02-14 17:43:50 +08:00 |
ChestnutYueyue
|
55c66e5038
|
refactor: 移除空间索引系统和UI组件
移除不再使用的空间索引系统(包括四叉树、空间哈希和空间管理器)以及相关的UI组件(如按钮、复选框、滑动条等)。这些功能已被更现代的解决方案取代,移除它们可以简化代码库并减少维护负担。
同时更新了示例代码,移除了对已删除组件的依赖,改为使用基本的形状节点展示功能。
|
2026-02-14 17:43:07 +08:00 |
ChestnutYueyue
|
313a56bf72
|
refactor: 移除示例游戏和动画系统相关代码
移除 push_box、flappy_bird 等示例游戏代码及相关资源文件
删除动画系统相关实现文件,包括动画解析器、帧渲染器等
清理不再使用的 Action 系统代码
移除 xmake.lua 中不再需要的示例项目配置
|
2026-02-14 17:23:58 +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 |
ChestnutYueyue
|
3a9b44cbfe
|
feat(场景): 添加BaseScene作为统一基础场景类
重构所有场景类继承自BaseScene,提供统一的视口适配功能
使用游戏逻辑分辨率(GAME_WIDTH/GAME_HEIGHT)替代直接获取窗口尺寸
优化资源加载和音效播放的错误处理
|
2026-02-13 08:43:50 +08:00 |
ChestnutYueyue
|
1b72a1c992
|
refactor(构建系统): 移除示例项目中的冗余资源打包逻辑
refactor(文档): 更新节点系统教程避免双重引用问题
fix(四叉树): 修复碰撞检测中的缓冲区越界问题
refactor(空间索引示例): 使用 getChildren() 替代私有 vector 存储节点
style(精灵批处理): 调整代码格式和初始化顺序
|
2026-02-12 22:31:34 +08:00 |
ChestnutYueyue
|
010e48753c
|
docs(API_Tutorial): 更新输入处理和节点系统文档
更新输入处理文档,添加Xbox手柄按键映射和游戏控制示例
重构节点系统文档,详细说明坐标系、变换系统和最佳实践
|
2026-02-12 21:57:41 +08:00 |
ChestnutYueyue
|
8b2482415e
|
feat(flappy_bird): 添加Flappy Bird游戏实现
新增Flappy Bird游戏完整实现,包含以下功能:
- 游戏场景管理(启动、开始、游戏、结束场景)
- 小鸟物理效果和动画
- 水管生成和移动逻辑
- 碰撞检测和得分系统
- 音效和资源管理
- 适配Switch和PC平台
修复渲染系统问题:
- 修正精灵渲染时的纹理坐标计算
- 添加变换矩阵栈支持
- 优化节点世界变换处理
调整构建系统:
- 添加xmake构建配置
- 支持资源打包和部署
|
2026-02-12 21:50:21 +08:00 |
ChestnutYueyue
|
cb67abe0bb
|
fix: 强制禁用Switch平台的鼠标光标和DPI缩放功能
|
2026-02-12 14:32:51 +08:00 |
ChestnutYueyue
|
5bab53aa2a
|
refactor(渲染): 统一处理锚点计算逻辑
将锚点计算逻辑统一交由 RenderBackend 处理,简化各渲染组件的代码
添加窗口高级配置选项,支持自定义光标和DPI缩放
更新窗口初始化逻辑,使用配置中的宽高参数
|
2026-02-12 14:29:50 +08:00 |