SepComet
|
786170f40a
|
LightGame 完成 Windows
|
2026-06-14 09:42:27 +08:00 |
SepComet
|
5ac61dca0e
|
统一 2D 渲染链路以消除格式分叉和热路径中转
将图片主路径收口为 RGBA5551 输入、RGB565 backbuffer 输出,并删除 USE_RGB565_BACKBUFFER 双路径。sprite/tilemap 主绘制改为直接 RGBA5551 -> RGB565,透明语义固定为 1-bit alpha test。同步收口 SDL/FB present 路径、sprite 资源加载/导出规范,以及相关测试与文档。
Constraint: 运行时图片主路径需统一到 RGBA5551,不能继续保留主要 RGBA8888 分支
Constraint: 透明仅支持 1-bit 语义,不引入 alpha blending
Rejected: 保留 USE_RGB565_BACKBUFFER 宏双路径 | 持续增加维护成本并掩盖真实主链路
Rejected: 主绘制继续走 RGBA5551 -> RGBA8888 -> RGB565 | 热路径存在不必要中转
Confidence: high
Scope-risk: moderate
Directive: 后续图片资源默认按 RGBA5551 接入;不要重新引入通用 RGBA8888 主运行时路径
Directive: 字体 atlas 目前仍属兼容输入;若继续收口,优先改成 1-bit mask 而不是新的图片分支
Tested: render_pipeline_tests;SDL Demo Release 构建;搜索确认无 USE_RGB565_BACKBUFFER 残留
Not-tested: Linux framebuffer 目标实机构建与显示验证
|
2026-06-08 18:32:04 +08:00 |
SepComet
|
a2c218f690
|
更新文档
|
2026-06-07 15:24:08 +08:00 |
SepComet
|
d92b890528
|
修正板端性能测试误判并加速 framebuffer 提交
板端测试发现轻量 Demo 在未优化 ARM 构建下只有十几帧,但 Release 构建后可达到约 76 FPS。问题主要来自单配置 CMake 构建未默认启用 Release,以及 fb0 提交路径逐像素通用转换成本过高。
本次变更将单配置生成器默认构建类型设为 Release,避免 ARM/fb0 性能测试误用未优化构建;同时为 FBDisplay 增加 RGB565、ARGB8888/XRGB8888、RGBA8888 连续内存等常见格式快速路径。Demo 临时移除旋转正方体,保留 2D sprite、tilemap、FPS 和 Frame/Present 耗时显示,用于定位板端 framebuffer 提交瓶颈。
Constraint: IMX6U framebuffer 性能结论必须基于 Release 构建
Constraint: 核心代码保持 C++11 兼容,不引入新依赖
Rejected: 直接判断板子性能不足 | 未优化构建会严重放大逐像素循环成本
Rejected: 继续优化 3D 正方体路径 | 当前瓶颈已由 Frame/Present 计时证明主要在 fb0 present
Confidence: high
Scope-risk: moderate
Directive: 后续板端性能测试先确认 CMAKE_BUILD_TYPE=Release,再分析算法瓶颈
Directive: 2D-only 场景不要使用会清 depth buffer 的 DrawContext::clear()
Tested: cmake --build build-win --config Release
Tested: wsl bash -lc "cd /mnt/d/source/IMX6U-Game && cmake --build build-arm-fb"
Not-tested: 实机 framebuffer 像素格式以外的非常见 fb0 layout
|
2026-06-07 14:24:32 +08:00 |
SepComet
|
213fa7e961
|
加入离线 sprite 与位图字体转换流程
Demo 现在通过生成的 C++ 头文件使用测试 sprite 和像素风 bitmap font,避免在运行时解码 PNG/TTF。同步补充资源转换文档,明确源资源、生成脚本和生成头文件需要一起提交,保证后续可追溯和可重新生成。
Constraint: IMX6U 运行时路径应尽量轻量,避免图片/字体解码开销
Constraint: 生成像素沿用当前 framebuffer 的 uint32_t RGBA 格式
Rejected: 运行时加载 PNG/TTF | 会增加解码依赖和运行时成本
Confidence: high
Scope-risk: moderate
Directive: 修改 sprite 或字体时,必须同步提交源资源、转换脚本和生成头文件
Tested: cmake -B build-win .; cmake --build build-win --config Release
Not-tested: 尚未在 IMX6U 真机上验证 ARM framebuffer/SDL 后端
|
2026-06-06 23:55:27 +08:00 |
SepComet
|
e1a9a9770b
|
制订规范
|
2026-06-06 17:10:47 +08:00 |
SepComet
|
9a2edd59fe
|
update .gitignore, README.md
|
2026-06-06 12:45:50 +08:00 |
SepComet
|
a56bbe6f76
|
finish build in linux
|
2026-06-05 19:22:48 +08:00 |
SepComet
|
9db7e06aa1
|
init
|
2026-06-05 17:55:22 +08:00 |