Skip to content

Releases: Tencent/libpag

v4.4.8

20 Sep 06:13
Compare
Choose a tag to compare
v4.4.8 Pre-release
Pre-release

主要修改内容:
(1)鸿蒙版本完善:增加 PAGImageView,支持网络文件加载,完善鸿蒙硬件、软件解码

已知问题:

  • 对于 PAGImageView, 由于鸿蒙系统问题, 直接使用NativeImage的内存进行 lz4 编解码会产生性能问题,从而导致画面卡顿严重,目前暂时使用 bitmap 的内存,相对于其他平台性能会稍差一些;由于鸿蒙版本无法直接设置 NativeImage 在 NativeWindow 中的 Matrix,相对于其它平台,在缓存后,PAGImageView 在鸿蒙系统中目前无法完全脱离 OpenGL 渲染环境
  • 由于鸿蒙系统的软硬解存在设计缺陷,如只支持异步解码方式、解码后数据需要 copy 否则会出现画面错乱,因此在内存占用和性能方面会弱于其它平台, 这会导致含有 BMP 预合成的素材渲染会有一定的性能问题

(2)iOS 平台移除 PAGDecoder 和 PAGImageView 对于部分方法的入参限制
(3)修改部分 pag 文件渲染异常问题

Main revisions:
(1) Improvements for HarmonyOS version: adding PAGImageView, supporting network file loading, enhancing HarmonyOS hardware and software decoding.

Known issues:

  • For PAGImageView, due to issues with the HarmonyOS system, directly using NativeImage's memory for lz4 encoding/decoding will result in performance problems, causing severe stuttering. Currently, bitmap memory is temporarily used, which may perform slightly less than other platforms. Additionally, due to limitations in the HarmonyOS version, it is currently impossible to directly set the Matrix of NativeImage in NativeWindow. After caching, PAGImageView in the HarmonyOS system cannot completely detach from the OpenGL rendering environment.
  • Due to design flaws in the software and hardware decoding of the HarmonyOS system, such as only supporting asynchronous decoding and requiring data copy after decoding to avoid image distortion, the memory usage and performance will be weaker than other platforms. This can lead to performance issues when rendering materials with BMP pre-composition.

(2) Removing input parameter restrictions for certain methods in PAGDecoder and PAGImageView on the iOS platform.
(3) Fixing rendering anomalies in some pag files.

v4.4.1

14 Aug 06:29
52a2cdf
Compare
Choose a tag to compare
v4.4.1 Pre-release
Pre-release

主要修改内容:
(1)修复使用 Freetype 渲染矢量 Path 时产生的内存访问越界问题。(#2224)
(2)修复 strlen() 相关调用产生的堆栈溢出安全问题。(#2232)
(3)重构渲染流程以最大化开启 glScissor 来减少不必要的像素渲染。 (#2141)
(4)简化矢量图形缓存机制,使用 TGFX 内置的 Path 缓存替代原先的 Shape 缓存。 (#2158)
(5)修改 PAGImageView 的一些接口,允许回调函数里的 PAGFile 传入空值。(#2191)
(6)通过缓存纹理而不是 Surface 来减少绘制次数,从而优化画面裁剪的绘制性能。(#2206)
(7)全局减少一次不必要的离屏渲染过程实现模糊滤镜的渲染性能提升。(#2098)
(8)在 Font 类上缓存确定尺寸的 Typeface 来提升文本渲染的性能。 (#2132)
(9)通过延迟 emoji 的图片解码过程实现并发解码,优化了 Emoji 的渲染性能。(#176)
(10)新增了对鸿蒙 Next 平台的首个版本适配。 (#2408)

Main revisions:
(1)Fix the out-of-bounds memory access crash when rendering paths with freetype. (#2224)
(2)Fix the heap-buffer-overflow issue by adding boundary check for the strlen() call. (#2232)
(3)Optimize performance by enabling glScissor whenever possible. (#2141)
(4)Replace tgfx::Shape with the built-in cache mechanism of the Path class. (#2158)
(5)Modify some interfaces of PAGImageView to allow PAGFile to be nullable. (#2191)
(6)Optimize clip performance by caching a texture instead of a surface to reduce draw calls. (#2206)
(7)Optimize the performance of blur filters by skipping one unnecessary offscreen rendering pass. (#2098)
(8)Improve text rendering performance by caching typeface size in the Font class. (#2132)
(9)Optimze color emoji drawing performance by deferring glyph image decoding. (#176)
(10)Add support for the ‘HarmonyOS Next’ platform. (#2408)

v4.3.62

12 Aug 12:59
Compare
Choose a tag to compare

主要修改内容:
(1)修复三星手机使用PAGImageView可能会白屏的问题 (#2362)

Main revisions:
(1)Fix the issue of blank rendering in PAGImageView on certain Samsung models (such as Galaxy S23 FE). (#2362)

v4.3.57

16 May 07:12
Compare
Choose a tag to compare

主要修改内容:
(1)修复了多个 PAGView 实例加载同一个 pag 文件时内存越界的问题。
(2)修复了 iOS 平台渲染某些 pag 文件时内存泄漏的问题。
(3)修复了 iOS 和 Android 平台上从 PAGImageLayer 获取的 contentDuration 值不一致的问题。
(4)修复了堆缓冲区溢出问题。
(5)修复了由于解码错误或损坏的 pag 文件导致的崩溃。

Main revisions:
(1)Fixed a memory out-of-bounds issue when multiple PAGView instances load the same PAG file.
(2)Fixed a memory leak issue in rendering certain pag files on the iOS platform.
(3)Fixed the inconsistency in contentDuration values obtained from PAGImageLayer on iOS and Android platforms.
(4)Fixed a heap buffer overflow issue.
(5)Fixed crashes caused by decoding errors or corrupted pag files.

v4.3.51

25 Mar 02:39
Compare
Choose a tag to compare

主要修改内容:
(1)修复形状缓存异常问题;
(2)修复 iOS 平台 PAGImageView 中使用 setPathAsync 时渲染失败的问题;
(3)修改 iOS 平台 PAGImageView init 初始化渲染异常问题;
(4)修改 Android 平台带 Mask 的文本渲染 crash 问题

Main revisions:
(1)Fixed the issue with shape cache abnormalities.
(2)Fixed the rendering failure issue in PAGImageView on the iOS platform when using setPathAsync.
(3)Modified the initialization rendering issue in PAGImageView on the iOS platform.
(4)Fixed the crash issue with text rendering with masks on the Android platform.

v4.3.47

17 Jan 07:15
473fdd5
Compare
Choose a tag to compare

主要修改内容:
(1)稳定性提升

  • 修复 GPU 资源异步线程释放可能导致的 crash
  • 修复 App 退出时 TaskGroup::exit() 引起的 ANR

(2)性能优化

  • 延迟所有矢量图形的光栅化过程,最大限度并发执行优化矢量渲染性能

Main revisions:
(1)Stability improvement

  • Fix potential crashes when releasing GPU resources in multiple threads.
  • Fix the ANR caused by TaskGroup::exit() when the app is exiting

(2)Performance optimization

  • Optimize performance by deferring the rasterization of paths and executing them concurrently.

v4.3.45

02 Jan 02:22
4f599e7
Compare
Choose a tag to compare

主要修改内容:
(1)修复 iOS 平台 PAGImageView 部分场景无法显示内容或闪屏的问题
(2)修复 iOS 平台 PAGView 子线程使用可能导致的 crash 问题
(3)修复移动端 PAGView 设置 sync 时可能出现的死锁问题

Main revisions:
(1)Fixed the issue that PAGImageView on the iOS platform could not display content or had screen flickering in some scenarios.
(2)Fixed the potential crash issue when using PAGView on a sub-thread on the iOS platform.
(3)Fixed the potential deadlock issue when setting 'sync' on PAGView on mobile platforms.

v4.3.43

22 Dec 11:08
Compare
Choose a tag to compare

主要修改内容:
(1)新增支持

  • Android 平台增加 x86_64 架构,增加车机系统的架构支持

(2)包体优化

  • 相对于 4.3.33 版本,Web 平台减少 zip 后大小 65 KB(wasm), iOS 减少 zip 后大小 50 KB(arm64)

(3)稳定性提升

  • 修复移动端 PAGView 切换文件播放且循环次数重新设置无法播放问题
  • web 平台 BMP 预合成素材 seek 播放异常修复
  • 修复微信小程序 createCanvas2D 错误

Main revisions:
(1)New capabilities

  • Added x86_64 architecture for the Android platform, which could be used in the vehicle system.

(2)Size optimization

  • In comparison to version 4.3.33, the library's zipped size has been decreased by 65 KB (wasm) on the web platform and 50 KB (arm64) on the iOS platform.

(3)Stability improvement

  • Fixed an issue that PAGView on mobile devices couldn't play when switching files and resetting loop count.
  • Fixed seek playback issue with BMP pre-composited assets on the web platform.
  • Fixed an error with createCanvas2D in the WeChat Mini Program.

v4.3.33

13 Nov 09:09
Compare
Choose a tag to compare

主要修改内容:
(1)AE 特性新增支持

  • 图层样式-描边
  • 图层样式-外发光

(2)能力新增

  • 支持加载网络路径的 pag 文件
  • pag 文件中的 BMP 预合成支持渲染缓存至本地,进一步提升渲染性能
  • pag 文件导出的时候支持设置可编辑图层, 终端支持通过 getEditableIndices 获取到可编辑图层

(3)版本新增

  • 社区版新增发布 macOS 版本,支持通过 cocoapods、Carthage、Swift Package Manager 接入
  • iOS 平台新增支持 Carthage、Swift Package Manager 接入

(4)稳定性提升

  • 升级 WebP 修复漏洞 CVE-2023-4863
  • 修复 iOS 平台 XCFramework 本地直接引用时模拟器报错

Main revisions:

(1) New AE features

  • Layer Style - Stroke
  • Layer Style - Outer Glow

(2) New capabilities

  • Support loading pag file from network paths.
  • BMP compositions in PAG files now has the option to enable disk cache, which further improves rendering performance.
  • Artists now can specify editable layers in PAGExporter directly. The SDK also can get the editable layers by getEditableIndices() API.

(3) New versions

  • The community version adds the macOS version, which supports access through Cocoapods, Carthage, and Swift Package Manager.
  • iOS platform adds support for Carthage and Swift Package Manager.

(4) Stability improvement

  • Upgrade WebP to fix vulnerability CVE-2023-4863.
  • Fix the problem that iOS platform XCFramework reports an error when referencing locally in the simulator.

v4.3.3

14 Jul 06:31
Compare
Choose a tag to compare
v4.3.3 Pre-release
Pre-release

主要修改内容:
(1)版本新增

  • 社区版新增发布 macOS 版本,支持通过 cocoapods、Carthage、Swift Package Manager 接入
  • iOS 平台新增支持 Carthage、Swift Package Manager 接入

(2)AE 特性新增支持

  • 图层样式-描边
  • 图层样式-外发光

(3)新增能力

  • 支持加载网络路径的 pag 文件
  • pag 文件中的 BMP 预合成支持渲染缓存至本地,进一步提升渲染性能
  • pag 文件导出的时候支持设置可编辑图层, 终端支持通过 getEditableIndices 获取到可编辑图层

(4)问题修复

  • 修复 iOS 平台 XCFramework 单独引用时模拟器报错

Main revisions:
(1) New versions

  • The Community Edition has newly released a macOS version, which supports access through cocoapods, Carthage, and Swift Package Manager
  • IOS platform adds support for Carthage and Swift Package Manager access

(2) Added support for AE features

  • Layer Style - Stroke
  • Layer Style - Outer Glow

(3)New capabilities

  • Support for loading PAG files from network paths
  • The BMP compositions in the PAG file supports rendering to the local cache, further improving rendering performance
  • The PAG file supports setting editable layers when exporting, and the terminal supports getting editable layers through getEditableIndices

(4) Issue fixes

  • Fix the error reported by the simulator when XCFramework is referenced separately on the iOS platform