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