basil
|
acf162d1b9
|
修复 LightGame Windows 输入问题并完善手动亮度控制
- 重构 PlayerController 输入:移除 IButtonInput 依赖,纯使用 IKeyboardState 与 IPointerInput;触摸屏改为上半屏跳跃、左右 1/3 分区分左右移动
- GameStateManager 增加 ESC 键暂停/恢复支持
- 将键盘亮度控制从 SdlPhotoSensor 平台层上提到 LightGameApp 游戏层(W/S 键),并引入 has_manual_override_ 标志防止 photo sensor 默认值覆盖手动调整
- SDLDisplay 初始化时调用 SDL_StopTextInput(),缓解 Windows 中文输入法在按字母键后拦截方向键/空格的问题
- IKeyboardState.h 补充 KEY_S、KEY_ESC、KEY_RETURN 常量
|
2026-06-11 10:41:53 +08:00 |
|
basil
|
fda8b120d3
|
为 LightGame 提供素材转换工具和转换后的头文件
|
2026-06-11 09:28:20 +08:00 |
|
basil
|
e00fc1799d
|
重构键盘输入为 IKeyboardState 接口,消除 App 层对 SDL 的直接依赖
重构键盘输入为 IKeyboardState 接口,消除 App 层对 SDL 的直接依赖
- 新增 IKeyboardState 抽象接口及 SdlKeyboardState/EvdevKeyboardState 实现
- PlayerController 改用 IKeyboardState 替代直接调用 SDL_GetKeyboardState
- 移除 Camera2D.h 中对 Core 私有头文件 Camera.h 的引用
- 将 Timer.h 从 Core/Core 移至 Core/Platform,符合架构边界规范
- 键盘输入优先级调整为高于指针输入
|
2026-06-10 15:22:30 +08:00 |
|
basil
|
aecd5a46ed
|
搭建 LightGame 游戏框架
|
2026-06-09 12:25:01 +08:00 |
|
basil
|
189072ba4e
|
更新文档
|
2026-06-09 10:39:10 +08:00 |
|
basil
|
0fdcb6b8ff
|
stop tracking build-check directory
|
2026-06-09 10:31:30 +08:00 |
|
basil
|
feb088a854
|
统一 Image 和 Sprite 语义到目前的 Image/Sprite 结构体而非之前的类定义
|
2026-06-09 10:28:29 +08:00 |
|
basil
|
56eec9e9d2
|
收口颜色格式,删除原来的 RGBA8888 的存储和调用
|
2026-06-09 09:00:43 +08:00 |
|
basil
|
23a5b50aec
|
收口字体渲染路径以降低 atlas 体积并直接输出 RGB565
将位图字体从 RGBA8888 atlas 改为 1-bit mask,避免继续为字体存储无效颜色信息。
生成端现在按 row-major、MSB-first 将 8 个像素打包进 1 个 uint8_t;运行时由
draw_text 提供目标颜色,并在 DrawContext 中直接把 bit=1 的像素写入 RGB565 framebuffer。同步补充了回归测试与文档,确保颜色替换、背景填充和裁剪语义保持稳定。
Constraint: 本次只收口字体路径,不改 sprite/tilemap 资源格式
Constraint: 运行时保持纯二值绘制语义,不引入 alpha blending 或抗锯齿
Rejected: 继续兼容 RGBA8888 字体输入 | 会保留双路径复杂度且无实际收益
Confidence: high
Scope-risk: moderate
Reversibility: clean
Directive: 后续字体资源必须继续使用 row-major + MSB-first 的 1-bit mask;修改位序前先同步生成脚本、运行时读取和测试
Tested: cmake --build build-win --config Release
Tested: build-win/Release/render_pipeline_tests.exe
Tested: ctest -C Release --output-on-failure
Tested: font_atlas_mask 字节数校验(2808 == ceil(208*108/8))
Not-tested: Demo/设备上的人工目视文字显示效果
|
2026-06-09 08:20:38 +08:00 |
|
basil
|
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 |
|
basil
|
9db7e06aa1
|
init
|
2026-06-05 17:55:22 +08:00 |
|