Skip to content

Releases: skywind3000/GameLib

20260506 - v1.9.9

Choose a tag to compare

@skywind3000 skywind3000 released this 05 May 21:51
  • Fix old c++ compiler errors.

20260501 - v1.9.8

Choose a tag to compare

@skywind3000 skywind3000 released this 01 May 06:01
  • GameLib.SDL.h:支持 WASM 编译

20260421 - v1.9.7

Choose a tag to compare

@skywind3000 skywind3000 released this 21 Apr 13:50
  • 新增:AspectLock(bool lock, uint32_t color) 是否在窗口缩放时锁定内容缩放的纵横比
  • FillRect 不透明路径优化:alpha==255 时首行逐像素填充,后续行用 memcpy 从第一行复制,宽矩形性能显著提升
  • DrawText 空行跳过:内嵌 8x8 字体逐字符逐行渲染时,bits==0 的行直接 continue,空格等字符几乎零开销
  • DrawTextScale 1:1 快路径:w==8 && h==8 时直接走 DrawText,避免查找表开销
  • 修复:鼠标在锁定纵横比状态下坐标换算问题

20260420 - v1.9.4

Choose a tag to compare

@skywind3000 skywind3000 released this 20 Apr 09:55
  • 新增 GetFramebuffer() 接口,返回 uint32_t* 的 _framebuffer 指针,可以直接用 fb[y * GetWidth() + x] 访问像素;
  • 点阵字库缩放绘制支持任意尺寸缩放:DrawTextScale 允许传入 w, h 表示绘制出来的字符想要的宽和高;
  • 大幅优化 DrawTextScale 性能,使用定点数和查找表预计算除法,并且不透明像素直接写 _framebuffer;
  • PlayPCM 支持播放任意 PCM 数据;
  • PlayBeep 重构,使用 PlayPCM 实现,去除阻塞主线程的限制,完全异步化;

20260419 - v1.9.0

Choose a tag to compare

@skywind3000 skywind3000 released this 19 Apr 13:32
  • 音频子系统重构:原始单通道 -> 低延迟设备输出+多通道软件重采样混音
  • 新增 DrawPrintfScale:带缩放的格式化文字输出
  • 新增 KEY_ADD / KEY_SUBTRACT:数字键盘 +/- 按键常量
  • SDL mixer 初始化扩展:统一注册更多音频格式 flag,记录 Mix_Init 返回值以判断 MIDI 可用性
  • 音频后端惰性初始化:waveOut 设备改为首次 PlayWAV 时才打开,不用音效的游戏零开销

20260417 - v1.8.1

Choose a tag to compare

@skywind3000 skywind3000 released this 16 Apr 19:13
  • Framebuffer 同窗口尺寸解耦合,窗口支持随意改变大小,更新时再把 Framebuffer 缩放绘制;
  • 新增立即模式 UI 系统,首批支持四个基础控件:Button, CheckBox, RadioBox, ToggleButton;
  • 精灵绘制增加旋转功能;
  • 增加截屏功能,将 Framebuffer 保存成图片,方便自动化测试;
  • 场景管理:简单场景切换的状态机管理;
  • 本地 Key/Value 存储系统:方便初学者实现游戏存档和排行版功能;

20260416 - v1.5.0

Choose a tag to compare

@skywind3000 skywind3000 released this 16 Apr 06:32

  • 增加裁剪:SetClip/GetClip/ClearClip 可以控制所有绘制范围;
  • 缩放绘制里 flag 里没有 SPRITE_ALPHA 的话就直接填充颜色,和非缩放保持一致;
  • Tilemap 设置时不再判断可用 Tileset 范围,提升性能,留到 DrawTilemap 里统一判断;
  • LoadSprite 没有做 16384 的尺寸检查,如果尺寸过大可以拒绝载入;
  • DrawLine 先裁剪再绘制,避免浪费,提升性能;
  • Clear 先设置一行的像素,再 memcpy 提升性能;
  • 优化文档:增加 sdl port 的说明;
  • 部分例子增加声音效果;

20260415 - v1.4.0

Choose a tag to compare

@skywind3000 skywind3000 released this 14 Apr 17:44

  • 新增跨平台 SDL port:头文件 GameLib.SDL.h 将作为跨平台(支持 linux/macOS)的独立头文件放本仓库里同步维护;
  • 图元和字体绘制支持 Alpha 混色,之前只有精灵支持混色;
  • 使用更精确的时钟源,FrameWait 精确卡帧率;
  • MIDI 播放支持与 MCI 设备类型自动识别;
  • Tilemap 文件持久化 (load/save) 与资源管理修正;