Toybrick

标题: 如何通过RGA实现动态淡入淡出效果 [打印本页]

作者: MadDog    时间: 2021-12-26 20:26
标题: 如何通过RGA实现动态淡入淡出效果
我希望通过RGA实现动态的淡入淡出效果,前景是一个带Alpha的RGBA格式图像,背景是NV12/NV21格式的图像,我的思路是通过动态控制前景的globalAlpha,然后和背景叠加,我发现出来的效果不对;
目前我已经实现了带Alpha的RGBA格式前景图像,通过improcess叠加到NV12/NV21格式的背景图像上:
int usage = 0;
usage |= IM_ALPHA_BLEND_DST_OVER;
usage |= IM_ALPHA_BLEND_PRE_MUL;
usage != IM_SYNC;
status = improcess(background_buffer, background_buffer, foreground_buffer, rect_background, rect_background, rect_foreground, usage);       
其中: foreground_buffer是带Alpha的RGBA格式图像, background_buffer是NV12/NV21格式的图像,效果是对的;
但是我 在调用 improcess前加上:
foreground_buffer.global_alpha = alpha;
其中alpha是自己给定的一个Alpha值,发现没有效果,请问是为什么?或者如何通过RGA实现我需要的效果?
谢谢!

作者: jefferyzhang    时间: 2021-12-27 09:26
这个目前硬件是不支持的,建议用GPU来实现该功能。
作者: MadDog    时间: 2021-12-27 09:41
jefferyzhang 发表于 2021-12-27 09:26
这个目前硬件是不支持的,建议用GPU来实现该功能。

我现在使用的是RK的3568芯片,请问也不支持globalAlpha吗?
作者: MadDog    时间: 2021-12-27 10:03

这是RGA的文档中的描述

作者: jefferyzhang    时间: 2021-12-27 10:54
MadDog 发表于 2021-12-27 10:03
这是RGA的文档中的描述

官方回复:不支持
文档也写了只支持SRC_GLOBALAPHA,
但不是所有rk芯片都能正常工作




欢迎光临 Toybrick (https://t.rock-chips.com/) Powered by Discuz! X3.3