Releases: Tencent/libpag
v4.0.5.10_release_20220526
主要修改内容:
(1)修复iPhone 5S上使用CVPixelBuffer时纹理混合不起作用问题
(2)修复Android 部分机型渲染过度问题;
(3)修复Android 侧JNI crash问题;
(4)完善PAGView刷新逻辑,修复Android侧Dialog场景跳转返回PAGView不可见问题
Main revisions:
(1)Fix the issue that texture mixing does not work when using CVPixelBuffer on iPhone 5S
(2)Fix the over-rendering issue on some Android models;
(3)Fix the JNI crash issue on Android side;
(4) Improve the PAGView refresh logic and fix the issue of PAGView not being visible when redirecting to the Android side dialog scenarios
v4.0.5.7_release_20220512
主要修改内容:
(1)修复Android、iOS端png图片解码crash问题;
(2)Web端问题修复:
- WebMask 增加font-style 的渲染
- 修复 iOS平台 OffscreenCanvas 不支持的问题
- 创建 WebGL context 时默认关闭 antialiasing
Main revisions:
(1)Fix the issue of png image decoding crashes on Android and iOS platforms;
(2)Web side issue repair:
- WebMask adds font style rendering
- Fix issue with OffscreenCanvas not supported on iOS platform
- antialiasing is turned off by default when creating a WebGL context
v4.0.5.5_release_20220428
主要修改内容:
(1)渲染引擎升级,由之前的skia更换为自研的tgfx;
(2)移除2.0版本中的废弃接口;
(3)Android pag库的加载由之前的“libpag”修改为“pag”,如果使用so插件下发,需要进行适配;
(4)包体大幅减少:
- iOS单架构压缩由之前的1.93MB减少到691.98KB
- Android全架构压缩包由之前的7.94MB减少到3.77MB(完整版本)、2.67MB(noffavc版本,无内置软件解码器)
(5)Web端发布第一个稳定版本
Main revisions:
(1) Upgrade the rendering engine from the previous Skia to the self-developed tgfx;
(2)Remove the obsolete interfaces in version 2.0;
(3) The loading of the Android pag library has been changed from the previous "libpag" to "pag". If you use the so plug-in to deliver it, you need to adapt it;
(4)The package body is greatly reduced:
- iOS single-architecture compression reduced from 1.93MB to 691.98KB
- The Android full-architecture compressed package has been reduced from the previous 7.94MB to 3.77MB (full version) and 2.67MB (noffavc version, no built-in software decoder)
(5)The first stable version is released on the Web side
v3.2.7.49_release_20220507
主要修改内容:
(1)修复Android侧JNI 相关crash;
(2)修复Android侧PAGView前后台切换、页面跳转场景部分机型消失问题
Main revisions:
(1)Fix JNI related crash on Android side;
(2)Fix the issue of some models disappearing in the scenarios of PAGView front and back switching and page jumping on the Android side
v3.2.7.45_release_20220407
主要修改内容:
(1)Android端文本发生偏移时emoji不移动问题修复
Main revisions:
(1)Fix the issue of emoji not moving when text on Android is offset
v3.2.7.44_release_20220324
主要修改内容:
(1)增加图片图层占位图默认数据获取接口
(2)增加支持径向模糊功能
(3)增加设置BMP预合成解码策略接口
(4)Android端PAGView增加同步渲染接口
Main revisions:
(1)Add the default data acquisition interface for image layer placeholder images
(2)Add support for radial blur function
(3)Added interface for setting BMP composition decoding strategy
(4)PAGView on Android adds a synchronous rendering interface
v3.2.7.40_release_20220215
主要修改内容:
(1)完善文本结尾含有换行符时bounds计算完善
(2)修复区间判断,localFrame相对的是composition时间而不是layer durartion
(3)含有TrackMatte的 Layer bounds获取完善
(4)dropshadow效果完善
(5)PAGView播放结束后支持play从头播放,PAGView setProgress 去除flush操作
(6)iOS端制品库切换至xcframwork,增加静态库版本
Main revisions:
(1)Improving Bounds Calculation when Text Ends with Line Breaks
(2)Fix interval judgment. LocalFrame is relative to composition time rather than layer duration
(3)Improve Layer bounds containing TrackMatte
(4)Improve dropshadow effect
(5)PAGView supports play from scratch after playback, and PAGView setProgress removes flush operation
(6)Switch the iOS prebuilt library to xcframwork and add a static library version
v3.2.7.34_release_20210926
主要修改内容:
(1)PAG多线程渲染优化;
(2)开启视频和位图序列帧首帧解码的预测,降低含有BMP预合成的pag的首帧渲染耗时;
(3)修复模糊度变化也使用缩放导致锯齿的问题;
(4)文本增加支持摆动选择器;
(5)修复解码预测引起的外部软解解码失败问题;
(6)新增GLFragmentShaderBuilder;
(7)addPath的op是Append时,处理empty的情况
(8)移除业务上一直没有使用到的 PAGFilter 接口,相关功能统一通过 PAGImage 替换纹理的接口实现
(9)替换skia的erase实现
(10)Android、iOS增加带旋转图片解码适配
(11)增加软解失败回退硬解逻辑
(13)绘制文字阴影时,如果有旋转角度直接上屏会有锯齿 问题解决
(12)crash修改
- 重构 Task 类,取消子类继承,拆分出 Executor ,避免必须在子类析构函数里调用 cancel();
- 解决由于CheckGLError导致空指针所造成的Crash;
- 进后台finish的时候makeCurrent要加锁,修复iOS进入后台引起的crash问题
- decodeFrame中时间判断前置处理,修复crash;
- 静态unordered_map替换为pair,修复潜在crash;
- iOS端在后台时不释放PAGSurface,延迟到进入前台释放;
- 确保Bitmap中pixelBuffer不为nullptr, 修复crash
Main revisions:
(1)PAG multi-threaded rendering optimization;
(2) Enable the prediction of the first frame decoding of video and bitmap sequence frames to reduce the first frame rendering time of pags containing BMP composition;
(3) Fix the issue of aliasing caused by blur changes and scaling;
(4) Text added support for swing selector;
(5)Fix the issue of external soft decoding failure caused by decoding prediction;
(6) Add GLFragmentShaderBuilder;
(7)When the op of addPath is Append, handle the empty situation
(8) Remove the PAGFilter interface that has not been used in business, and related functions are unified through the PAGImage replacement texture interface.
(9) Replace the erase implementation of skia
(10) Android and iOS add image decoding adaptation with rotation
(11)Add fallback hardware decoding logic if software decoding fails
(13) Solve the issue of aliasing when drawing text shadows directly on the screen if there is a rotation angle
(12) crash modification
- Refactor the Task class, cancel subclass inheritance, split out Executor, and avoid having to call cancel() in the subclass destructor;
- Solve the crash caused by null pointer due to CheckGLError;
- When entering the background to finish, makeCurrent needs to be locked to fix the crash issue caused by iOS entering the background.
- Time judgment preprocessing in decodeFrame to fix crash;
- Replace static unordered_map with pair to fix potential crash;
- The iOS side does not release the PAGSurface when it is in the background, and delays the release until it enters the foreground;
- Make sure the pixelBuffer in Bitmap is not nullptr and fix the crash
v3.2.7.26_release_20210730
主要修改内容:
(1)pag内部架构调整,为移除skia依赖做准备;
(2)解决由于CheckGLError导致空指针所造成的Crash;
(3)将 Context 上 GPU 资源的清理改成外部 调用 releaseAll() 来触发,避免在析构函数里执行清理导致跟 Resource 的释放发生线程安全问题;
(4) 内存申请由new修改为malloc,避免Android端内存不足时crash
(5)修复模糊度变化也使用缩放导致锯齿的问题
(6)iOS端进后台finish的时候makeCurrent要加锁
(7)context可以被多个PAGSurface持有,grContext被abandon之后,影响其他surface问题修复
Main revisions:
(1) Pag internal architecture adjustment to prepare for removing skia dependency;
(2) Solve the crash caused by null pointer due to CheckGLError;
(3)Change the cleanup of GPU resources on Context triggered by calling releaseAll() externally to avoid cleaning up in the destructor and causing thread safety issues with the release of Resource;
(4) Memory application is changed from new to malloc to avoid crash when the Android side has insufficient memory
(5)Fix the issue of aliasing caused by changes in blur using scaling
(6) makeCurrent needs to be locked when the iOS end enters the background to finish
(7) Because context can be held by multiple PAGSurfaces, fix the problem of grContext affecting other surfaces after being abandoned.
v3.2.7.25_release_20210513
主要修改内容:
(1)字间距动画加强异常保护;
(2)当模糊度没有关键帧时,使用缩放来提高性能;当模糊度有关键帧时,按照AE效果还原,主要用于转场;
(3)替换掉motiontile放大屏蔽黑边的方法;
(4)当bulge的长轴短轴存在0时,不绘制bulge;
(5)iOS PAGView stop之后play,恢复进度的时候考虑repeatCount
(6)修复iOS的PAGView在使用AutoLayout的时候宽高延后更新导致首帧没画面
(7)修正边角定位的效果
Main revisions:
(1)Word spacing animation strengthens exception protection;
(2) When the blur does not have a keyframe, use zoom to improve performance; when the blur has a keyframe, restore it according to the AE effect, mainly used for transitions;
(3) Replace the method of magnifying and shielding black edges with motiontile;
(4)When the long axis and short axis of the bulge are 0, the bulge will not be drawn;
(5)Consider repeatCount when playing after iOS PAGView stops and restoring the progress
(6)Fix the delayed update of the width and height of iOS PAGView when using AutoLayout, resulting in no images in the first frame
(7)Correct the effect of corner positioning