Commit Graph

89 Commits

Author SHA1 Message Date
ChestnutYueyue 6a12bb5e2e feat: 实现资源服务系统及测试框架
新增资源服务系统核心功能,包括资源加载、缓存管理和异步处理机制。添加测试框架支持单元测试,包含以下主要变更:

- 实现 AssetService 核心功能,支持资源同步/异步加载
- 添加 AssetCache 实现 LRU 缓存策略
- 引入测试框架,包含测试用例注册和断言机制
- 实现资源打包工具 asset_packer
- 添加压缩库支持 (Zstd/LZ4/Zlib)
- 完善文档说明资源服务系统设计

测试用例覆盖资源缓存、数据处理器、资源包管理等核心功能。文档详细说明系统架构和使用方法。
2026-02-20 22:15:01 +08:00
ChestnutYueyue 25c7c47872 feat(asset): 添加资源管理系统核心组件
实现资源加载、缓存和管理功能,包括:
- Asset基类和具体资源类型(纹理、字体、着色器等)
- 资源缓存系统(AssetCache)支持LRU策略
- 资源加载器接口和具体实现
- 资源包管理(打包/解包)
- 数据处理管道(压缩/加密)
- 资源服务(AssetService)提供统一接口
2026-02-20 20:36:59 +08:00
ChestnutYueyue 4e6db88da5 docs: 删除废弃的资源服务设计文档
该文档已不再使用,其内容已被迁移到新的设计文档中
2026-02-20 19:03:13 +08:00
ChestnutYueyue b41e96d870 refactor(core): 统一命名规范并优化核心模块结构
重构智能指针、基础类型和核心组件的命名,使用更简洁一致的命名风格:
- 将 UniquePtr/SharedPtr 简化为 Unique/Ref
- 基础类型使用 i32/u32/f32 等更短名称
- 方法名统一为小写驼峰,如 getServiceInfo() 改为 info()
- 模块初始化方法 parallel() 替代 allowParallelInit()

新增核心组件:
- 添加 ObjectPool 对象池模板类
- 添加 RingBuffer 环形缓冲区模板类
- 添加编译期类型ID生成机制

优化现有组件:
- 事件队列改用 RingBuffer 实现
- 服务注册表改用数组存储提高缓存友好性
- 模块依赖管理算法优化
- 统一时间相关参数为 f32/f64 类型

移除冗余代码,简化接口设计,提升整体代码一致性和性能
2026-02-20 19:02:21 +08:00
ChestnutYueyue f9e244299f refactor: 移除图形渲染相关代码并简化核心结构
移除图形渲染模块、着色器、纹理、字体等组件
删除过渡场景和精灵节点等场景管理功能
简化应用程序类,移除渲染和场景相关接口
更新GLFW窗口模块,移除OpenGL相关初始化
清理不再使用的头文件和实现文件
2026-02-20 16:36:31 +08:00
ChestnutYueyue 9e911db53c refactor(渲染器): 将RenderBackend重命名为Renderer并重构相关代码
重构渲染器接口命名,将RenderBackend统一更名为Renderer,同时更新所有相关文件和文档引用。此变更旨在提供更简洁清晰的接口命名,并保持代码一致性。

- 重命名RenderBackend类为Renderer
- 更新所有相关文件中的类型引用和文档
- 保持原有功能不变,仅进行命名和结构调整
- 修复因重命名导致的编译错误和警告
2026-02-20 15:04:21 +08:00
ChestnutYueyue b34df8bdd1 refactor(platform): 替换IWindow接口为具体GLFWWindow实现
移除抽象的IWindow接口,直接使用GLFWWindow作为窗口实现
更新所有相关头文件和实现文件中的引用
简化GLFWWindow类,移除不必要的虚函数声明
2026-02-20 14:43:34 +08:00
ChestnutYueyue a38bbf78c9 refactor(输入系统): 移除输入模块及相关代码
重构输入处理逻辑,改为通过事件服务直接处理鼠标和滚轮事件
删除不再使用的输入模块、接口及实现类
更新场景管理器以使用新的事件处理方式
2026-02-20 14:24:53 +08:00
ChestnutYueyue c9092dce3b refactor: 整理头文件包含顺序并移除多余配置
- 调整头文件包含顺序以保持一致性
- 移除示例中硬编码的后端配置
- 清理多余的空行和注释
2026-02-20 13:21:23 +08:00
ChestnutYueyue a490d9e296 refactor: 重构文件结构,将backend相关文件移动到opengl目录
- 将graphics/backends/opengl下的文件移动到graphics/opengl目录
- 更新相关头文件引用路径
- 调整xmake构建文件以匹配新的文件结构
- 清理不再使用的service_locator.h包含
- 格式化代码并统一代码风格
2026-02-20 13:07:43 +08:00
ChestnutYueyue b892736fb2 refactor(render): 移除多后端支持,仅保留GLFW和OpenGL
简化渲染模块和窗口模块,移除SDL2和Vulkan后端支持,仅保留GLFW窗口后端和OpenGL渲染后端。删除相关后端工厂代码和配置文件,修改模块初始化逻辑直接使用GLFW和OpenGL实现。

- 删除SDL2和Vulkan后端相关代码
- 移除后端工厂模式和相关注册逻辑
- 修改窗口模块直接使用GLFW实现
- 修改渲染模块直接使用OpenGL实现
- 更新构建配置仅支持GLFW+OpenGL组合
2026-02-20 12:48:36 +08:00
ChestnutYueyue 8e385beeae update 2026-02-19 16:12:11 +08:00
ChestnutYueyue 080fb56003 feat(渲染): 添加SDF字体渲染支持
实现基于有符号距离场(SDF)的高质量字体渲染功能,包括:
1. 新增SDF专用着色器及配置文件
2. 扩展着色器管理器支持vec2/vec3类型uniform
3. 修改精灵批处理系统以支持自定义着色器
4. 更新渲染器实现SDF字体特殊处理逻辑
5. 替换示例中的字体资源为SDF字体
2026-02-19 03:33:47 +08:00
ChestnutYueyue c32c2dd60d refactor(text_rendering): 优化文本渲染示例并更新窗口配置
- 删除冗余注释和临时文件note.txt
- 更新窗口标题为中文并修改后端为SDL2
- 简化相机服务配置方式
2026-02-19 01:29:32 +08:00
ChestnutYueyue b794221d49 feat(窗口/事件): 添加窗口事件处理并统一键盘映射
为 SDL2 和 GLFW 窗口后端添加完整的事件处理,包括窗口关闭、大小调整、键盘、鼠标等事件
添加键盘扫描码到引擎 Key 枚举的映射功能
优化相机服务,支持通过 Lambda 配置视口
统一日志输出语言为英文
2026-02-19 01:23:39 +08:00
ChestnutYueyue e9bd44b63e feat: 添加并行模块初始化支持并优化日志本地化
refactor(registry): 重构模块初始化逻辑以支持并行初始化
style: 统一日志消息为中文并优化格式
fix: 修复着色器元数据处理和默认值应用问题
2026-02-19 00:48:04 +08:00
ChestnutYueyue 463965439e refactor(service_locator): 将mutex替换为recursive_mutex以支持嵌套调用
重构服务定位器中的互斥锁类型,从std::mutex改为std::recursive_mutex,以支持可能发生的嵌套调用场景
优化hello_module日志输出,使用E2D_INFO宏替代std::cout
删除不再使用的config.json配置文件
2026-02-18 22:11:00 +08:00
ChestnutYueyue b1996dfc44 refactor(opengl): 优化UTF-8解码并使用simdutf库
替换手动UTF-8解码逻辑为simdutf库实现,提高解码效率和代码可维护性
同时清理头文件中不必要的include并统一代码格式
2026-02-18 19:48:14 +08:00
ChestnutYueyue 62b03144a1 feat(logger): 增强日志服务功能并添加颜色支持
添加新的Registry日志级别和颜色支持功能
实现Windows控制台ANSI颜色和UTF-8支持
新增日志级别颜色自定义功能
添加带颜色参数的日志宏
移除不必要的头文件引用并优化注册表日志输出
2026-02-18 19:18:02 +08:00
ChestnutYueyue 65b143573c refactor: 移除logger.h头文件并统一使用logger_service.h
将项目中所有对logger.h的引用替换为logger_service.h,并删除logger.h文件。同时调整了部分文件的include顺序和格式,保持代码风格一致。
2026-02-18 19:10:31 +08:00
ChestnutYueyue 6008331fc5 refactor(text_rendering): 移除调试日志并使用日志宏替代
替换直接使用std::cout和std::cerr输出调试信息为E2D_LOG_INFO宏
移除未使用的argc和argv参数
2026-02-18 17:23:17 +08:00
ChestnutYueyue 8e06bb0adb refactor(图形后端): 重构图形后端系统为基于工厂的注册机制
- 移除BackendType枚举,改为使用字符串标识后端类型
- 实现图形后端工厂类,支持动态注册和创建后端
- 添加自动兼容性检查功能,根据窗口后端选择兼容的渲染器
- 移除WindowConfigData结构,简化窗口创建接口
- 更新示例代码以使用新的后端系统
- 添加OpenGL和Vulkan后端自动注册实现
- 清理无用代码和过时接口
2026-02-18 17:15:49 +08:00
ChestnutYueyue 583e866861 docs(module_system): 重构模块系统文档,简化内容并优化结构
- 移除冗余的配置系统实现细节,聚焦核心架构
- 优化模块与服务的对比表格,突出关键差异
- 简化示例代码,保留核心用法展示
- 更新架构图,更清晰展示模块与服务的层级关系
- 统一术语使用,增强文档一致性
2026-02-17 23:57:50 +08:00
ChestnutYueyue edd47a890a chore: 删除无用的图片文件1.jpg 2026-02-17 23:02:18 +08:00
ChestnutYueyue 69606230da docs: 更新架构图添加GLFW后端支持
在平台层架构图中添加GLFW后端支持,包括窗口系统和输入系统的关联
2026-02-17 22:57:46 +08:00
ChestnutYueyue 6babd376c9 docs: 更新 README 文档以反映最新架构变更
- 添加资源抽象层和显存管理功能说明
- 更新模块优先级和架构图
- 完善目录结构描述
- 新增性能优化策略说明
2026-02-17 22:53:41 +08:00
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
ChestnutYueyue c8a6ea19e3 refactor(renderer): 优化文本渲染的批处理逻辑并调整代码格式
重构文本渲染的批处理逻辑,添加纹理变化检查并优化换行处理
同时调整部分代码格式以提高可读性
2026-02-17 20:44:33 +08:00
ChestnutYueyue 32e12b8c99 feat(渲染): 添加自动批处理功能并实现图片显示示例
添加自动精灵批处理功能,优化渲染性能
新增图片显示示例,展示如何使用RenderBackend抽象接口加载和显示图片
重构文本渲染示例以使用RenderBackend接口
添加flush方法用于手动控制批处理提交时机
2026-02-17 20:16:07 +08:00
ChestnutYueyue 6b4ce69657 feat(渲染): 优化字体图集和精灵批处理系统
- 在GLFontAtlas中重构字体图集实现,使用stb_rect_pack进行动态矩形打包
- 增加图集尺寸至1024x1024并添加字形间距
- 改进字形UV计算和纹理坐标处理
- 在GLSpriteBatch中保存viewProjection矩阵并优化着色器uniform设置
- 修正文本渲染中的字形位置计算和精灵中心点处理
- 优化纹理坐标生成逻辑以正确处理UV翻转
2026-02-17 19:55:47 +08:00
ChestnutYueyue 30b677f192 feat(示例): 添加文字渲染示例并修复场景过渡方法声明
添加新的文字渲染示例 demo_text_rendering,展示如何使用 GLFontAtlas 渲染文字
修复场景过渡类中缺少 override 关键字的方法声明
更新 README 文档以包含新示例
2026-02-17 19:24:50 +08:00
ChestnutYueyue 89fb955eb0 docs: 更新README以反映新增的Vulkan渲染后端和架构调整
更新文档以包含以下内容:
1. 新增Vulkan渲染后端支持
2. 渲染系统分层架构说明
3. 目录结构调整
4. 多平台支持状态更新
2026-02-17 14:50:13 +08:00
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