Releases: Tencent/libpag
v4.3.68
主要修改内容:
(1)修复 iOS 平台 PAGView、PAGImageView 异步加载相同网络文件异常释放问题,增强线程安全性;
(2)修复部分场景 PAGImageView 缓存失败问题;
(3) 修复Android 平台图片解码色差和闪退问题
Main modifications:
(1) Fixed the issue of abnormal release on the iOS platform for PAGView and PAGImageView when asynchronously loading the same network file, enhancing thread safety.
(2) Fixed the issue of cache failure in certain scenarios for PAGImageView.
(3) Fixed the issues of color deviation and crashes in image decoding on the Android platform.
v4.4.15
主要修改内容:
(1)修复部分 pag 素材播放过程中内存不断增长问题;
(2)修复 iOS 平台 PAGView、PAGImageView 异步加载相同网络文件异常释放问题,增强线程安全性;
(3)修复部分场景 PAGImageView 缓存失败问题;
(4)完善鸿蒙版本,增强稳定性
Main revisions:
(1) Fixed the memory issue continuously increasing during the playback of certain PAG assets.
(2) Fixed the abnormal release issue of PAGView and PAGImageView when asynchronously loading the same network file on the iOS platform, and enhanced thread safety.
(3) Fixed the issue of cache failure for PAGImageView in certain scenarios.
(4) Improved the HarmonyOS version and enhanced stability.
v4.4.8
主要修改内容:
(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
主要修改内容:
(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
v4.3.57
主要修改内容:
(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
主要修改内容:
(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
主要修改内容:
(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
主要修改内容:
(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
主要修改内容:
(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.