kevingpqi123
released this
24 Dec 10:46
·
2 commits
to release/4.4
since this release
主要修改内容:
(1)版本新增
- 新增支持鸿蒙平台
已知问题:
- 对于 PAGImageView, 由于鸿蒙系统问题, 直接使用NativeImage的内存进行 lz4 编解码会产生性能问题,从而导致画面卡顿严重,目前暂时使用 bitmap 的内存,相对于其他平台性能会稍差一些;由于鸿蒙版本无法直接设置 NativeImage 在 NativeWindow 中的 Matrix,相对于其它平台,在缓存后,PAGImageView 在鸿蒙系统中目前无法完全脱离 OpenGL 渲染环境
- 由于鸿蒙系统的软硬解存在设计缺陷,如只支持异步解码方式、解码后数据需要 copy 否则会出现画面错乱,因此在内存占用和性能方面会弱于其它平台, 这会导致含有 BMP 预合成的素材渲染会有一定的性能问题
(2)接口变更
- iOS 平台移除 PAGDecoder 和 PAGImageView 对于部分方法的入参限制
(3)性能优化
- 通过延迟 emoji 的图片解码并实现并发解码优化 Emoji 的渲染性能
- 通过缓存确定尺寸的 Typeface 来提升文本渲染的性能
- 减少离屏渲染过程提升模糊滤镜的渲染性能
- 通过缓存纹理减少绘制次数优化画面裁剪的绘制性能
- 重构渲染流程以最大化开启 glScissor 来减少不必要的像素渲染
(4)稳定性提升
- iOS 和 macOS 平台多 unicode 编码 emoji 渲染异常问题修复
- 修复部分 pag 素材播放过程中内存不断增长问题
Main modifications:
(1)New supported platforms
- Added support for the HarmonyOS platform
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 HarmonyOS system's software and hardware decoding, 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 those of other platforms. This can lead to performance issues when rendering materials with BMP pre-composition.
(2)API Changes
- Remove input parameter restrictions for certain methods in PAGDecoder and PAGImageView on the iOS platform.
(3)Performance Optimization
- Improved rendering performance of emojis by implementing concurrent decoding and delayed decoding of emoji images.
- Enhanced text rendering performance by caching sized typefaces.
- Increased rendering performance of blur filters by reducing off-screen rendering.
- Optimized rendering performance of image clipping by caching textures and reducing the number of draw calls.
- Refactored the rendering pipeline to maximize the use of scissors and reduce unnecessary pixel rendering.
(4)Stability improvement
- Fixed rendering issues with multiple Unicode-encoded emojis on the iOS and macOS platforms.
- Resolved memory growth issues during the playback of certain PAG materials.