更新日志¶
版本命名:v<major>.<minor>-<phase><N>,\<phase> = dev / beta / rc,无后缀即 stable,-public 为公开发布。
v1.0(当前周期)¶
v1.0-beta1(7/21)¶
tag: v1.0-beta1
dev2 未发现 bug,直接晋升为 beta1。此版本仅更新版本号。
v1.0-dev2(7/17 ~ 7/19)¶
- debug/disable 开关从节点属性迁移到项目设置(
1343c94) - 统一 primitive_types.h 类型别名(
ee66ca5) - 双缓冲热重载 + reload_from_file 覆盖,解决 OOB crash(
0610559) - 非 HW blend composite 共享 W2N buffer 污染修复(
1e193c5) - 非 HW blend sprite 离屏系列修复(
8bc0bb4/1836a3b/7032dda) - filter 元素离屏 composite 绕过外层 stencil mask(
80a3811) _batch_render_filter增加 stencil_ref 参数(49abd7e)- MSAA + depth_stencil 不匹配修复(
0c0a501) - Sprite 作为 stencil mask 几何体(
c0d8bfb)
→ 未发现 bug,直接晋升 beta1
v1.0-dev1(7/16)¶
- 实现 mask stencil 支持(
ea9c0de) _disable_mask标志 + 离屏 FB depth-stencil(138c053)- batch 渲染器添加 mask 生命周期(
60e72df) - stencil INCREMENT/DECREMENT 多 mask 层重叠(
850dc36) - 运行时替换根实例 instance_data_dirty(
cf21a86) - 嵌套 mask 支持 + 层内几何重叠修复(
c8b35d1/70e7856) - 分离 mask shape fill/stroke mesh(
45e2fb) - 主时间轴 mask 预扫描 + 三角化分离(
64fa6b7) - 嵌套 mask prev_depth 计入父层 stencil 深度(
4c3e214) - GlowFilter inner glow + knockout 支持(
024feb5)
后续计划: v1.0-beta2 → v1.0-rc1 → v1.0 → v1.0-public
v0.3¶
v0.3-stable¶
tag: v0.3-stable
Godot 4.7.1 迁移:
- RS:: → RSE:: 命名空间重构
- extern 函数 → SwfCallbacks 结构体注册制
- 引擎渲染层集成适配(10+ 引擎文件)
v0.3-rc2¶
tag: v0.3-rc2
- fix: 1 帧 sprite 嵌套时滤镜离屏纹理不更新
- fix: PlaceObject⅔ HasCharacter 越界 crash
- fix: Sprite 有滤镜时 ColorTransform 被重复应用
v0.3-rc1¶
tag: v0.3-rc
- BevelFilter 斜角滤镜
- GradientGlowFilter 渐变发光滤镜
- GradientBevelFilter 渐变斜角滤镜
- DefineBits(Tag 6/JPEG1)支持
- DefineBitsJPEG4(Tag 86)支持
- DropShadow 投影偏移缩放漂移修复
- MorphShape GPU 资源泄漏修复
- Phase 2 root_transform/modulate 修复
- GradientGlow 离屏裁切修复
v0.3-beta1(6/25 ~ 7/01)¶
- GradientGlowFilter 渐变发光滤镜实现
- GradientBevelFilter 渐变斜角滤镜实现
- BevelFilter 斜角滤镜实现
- DefineBitsJPEG4 + DefineBits 位图支持
- 新滤镜 disable 标记导出到编辑器
v0.3-dev2(6/25 ~ 6/29)¶
- MorphShape 形变完成:滤镜支持、blend mode 离屏合成、edges_match 检测优化
- Sprite blend mode 逐 child → 整体离屏
- DepthState 从 DisplayObject 分离
- 帧标签跳转(FrameLabelTag + goto_label)
- 播放控制 API 重构,goto_frame/goto_label 新增 stop/play_children 参数
v0.3-dev1(6/22 ~ 6/25)¶
- SwfResource 生命周期管理重构:Rc 共享所有权、禁止资源唯一化
- 注册 swf_path 属性支持序列化/唯一化
- 注册 SWF 回调到引擎函数指针
- MorphShape 初始设计 + 预三角化
v0.2-public¶
tag: v0.2
v0.2(6/22 — stable)¶
- 退化路径 size-0 buffer crash 修复
- shape 渲染继承父级 blend mode
- 离屏纹理 padding 计算修复
- Phase 2 buffer 跨阶段污染修复
- v0.2 标记为完成(RC → stable)
v0.2-rc2(6/20 ~ 6/21)¶
- TransformState 隐式传参替代每层 save/compose/restore
- 滤镜管线迁移到屏幕空间,消除极端 scale 下纹理膨胀
- 首帧滤镜误差修复(quad 偏小、W2N 污染)
- _place_with_inherit 继承 blend/CT/filters
- 移除 ColorMatrix per-instance 路径,统一走滤镜链后处理
v0.2-beta1(6/12 ~ 6/14)¶
- 收集式离屏渲染替代逐元素 end/begin canvas DL(Phase 2 初始)
- 硬件混合 Multiply/Screen/Add/Subtract/Erase,免 bg copy
- 3 槽旋转分配替代硬编码 ping/pong 修复
v0.2-rc1(6/15 ~ 6/19)¶
- Phase 2 收集式离屏渲染: 批渲替代逐元素 end/begin canvas DL
- HW blend 快速路径: Multiply/Screen/Add/Subtract/Erase 内联到 canvas DL
- Pipeline 2D MSAA
- per-element vertex/CT buffer 每帧更新
- 删除 RD 渲染路径,仅保留 Canvas 渲染路径
v0.2-dev2(6/09 ~ 6/11)¶
- 多滤镜管线:双缓冲 ping-pong 链式处理 Blur/Glow/ColorMatrix
- DropShadowFilter 离屏后处理复合实现
- 离屏惰性更新,仅 SWF 帧推进重绘
- 3 槽旋转 RID 替代硬编码 ping/pong,消除纹理别名 crash
- LineStyleEx HasFill 描边支持渐变/位图填充
v0.2-dev1(6/07 ~ 6/08)¶
- 256×256 2D 纹理替代 uniform buffer 传递多边形颜色表,解除 64 色限制
- ColorTransform 延迟到 Canvas filter composite 阶段
- GPU 资源释放顺序修复,避免 RD 级联释放 double-free
v0.1.0¶
首个稳定版本。
核心渲染: - DefineShape 1-4 形状解析、三角化、描边、渐变填充 - Sprite 时间轴(advance_frame/apply_frame) - PlaceObject 1-3 / RemoveObject 1-2 - 双路径框架(RD 路径 + Canvas 路径并存)
位图: - DefineBitsJPEG/Lossless 位图渲染 - BitmapFill 位图填充样式 - LINEAR 过滤消除斜线锯齿
滤镜与颜色: - ColorTransform(CXFORM)颜色变换 - ColorMatrixFilter 逐顶点 - GlowFilter 单滤镜(离屏渲染 + box blur) - BlendMode 离屏混合
修复: - 子 Sprite 初始化/transform 继承 - 多 layer shape 只渲染第一层 - SolidFill alpha blending 未启用
v0.0(初始开发,2026-05 ~ 2026-06)¶
e7147c9— 创建节点,解析路径,三角化填充路径至 mesh9198178— 渲染 shape(能跑通不报错但没反应)a541311— 实现 SWF 描边渲染 + 调试参数a22132d— 合并 fill+stroke drawcall,color_table uniform335be88— 动态 tess2 缠绕模式2d04b6e— 曲线细分步数自适应658b9c1— 重构场景渲染架构,拆分 uniform set8dd45ed— 优化 draw API,补充实例自动缩放c3bfa60— 新增 DefineSprite 支持,完善时间轴与渲染管线88b4540— 移除 _shared_frame 和 Timeline,子 Sprite 同步推进帧481e4dd— 单帧 Sprite 不推进帧,仅子 Sprite 继续循环