diff --git a/zh-cn/native_sdk/multimedia/image_effect/image_effect.h b/zh-cn/native_sdk/multimedia/image_effect/image_effect.h index b4038b852d372414ba437e91ecc2485dddd33b53..6467c06ca798e42e647037cb5385a9e45a8fc8e4 100644 --- a/zh-cn/native_sdk/multimedia/image_effect/image_effect.h +++ b/zh-cn/native_sdk/multimedia/image_effect/image_effect.h @@ -327,6 +327,36 @@ ImageEffect_ErrorCode OH_ImageEffect_SetInputPicture(OH_ImageEffect *imageEffect */ ImageEffect_ErrorCode OH_ImageEffect_SetOutputPicture(OH_ImageEffect *imageEffect, OH_PictureNative *picture); +/** + * @brief 配置输入包含图片内容的纹理标识。 + * + * @syscap SystemCapability.Multimedia.ImageEffect.Core + * @param imageEffect OH_ImageEffect结构体实例指针。 + * @param textureId 包含图片内容的纹理标识,纹理标识必须是有效的且绑定了GL_TEXTURE_2D类型的纹理。 + * @param colorSpace 图片对应的色彩空间。 + * @return EFFECT_SUCCESS:方法调用成功。\n + * EFFECT_ERROR_PARAM_INVALID:入参为空指针或参数超出有效范围。\n + * EFFECT_PARAM_ERROR:参数缺失或参数错误。 + * @since 20 + */ +ImageEffect_ErrorCode OH_ImageEffect_SetInputTextureId(OH_ImageEffect *imageEffect, int32_t textureId, + int32_t colorSpace); + +/** + * @brief 配置输出包含渲染后的纹理标识。 + * + * @syscap SystemCapability.Multimedia.ImageEffect.Core + * @param imageEffect OH_ImageEffect结构体实例指针。 + * @param textureId 包含图片渲染后内容的纹理标识,纹理标识必须是一个有效的纹理。\n + * 如果纹理标识未被绑定纹理图片,纹理标识会自动绑定GL_TEXTURE_2D类型;\n + * 如果纹理标识已经被绑定纹理且尺寸不合适,结果可能会被裁剪或部分填充到此纹理上。 + * @return EFFECT_SUCCESS:方法调用成功。\n + * EFFECT_ERROR_PARAM_INVALID:入参为空指针或参数超出有效范围。\n + * EFFECT_PARAM_ERROR:参数缺失或参数错误。 + * @since 20 + */ +ImageEffect_ErrorCode OH_ImageEffect_SetOutputTextureId(OH_ImageEffect *imageEffect, int32_t textureId); + /** * @brief 启动效果器。 * diff --git a/zh-cn/native_sdk/multimedia/image_effect/image_effect_filter.h b/zh-cn/native_sdk/multimedia/image_effect/image_effect_filter.h index 2d42d6bcc810b23c8ffa21bfacde897bec492b7f..1c3309445769c5b340cb775eba326e8ed1ca349f 100644 --- a/zh-cn/native_sdk/multimedia/image_effect/image_effect_filter.h +++ b/zh-cn/native_sdk/multimedia/image_effect/image_effect_filter.h @@ -454,6 +454,30 @@ ImageEffect_ErrorCode OH_EffectBufferInfo_SetEffectFormat(OH_EffectBufferInfo *i */ ImageEffect_ErrorCode OH_EffectBufferInfo_GetEffectFormat(OH_EffectBufferInfo *info, ImageEffect_Format *format); +/** + * @brief 设置OH_EffectBufferInfo的图像的textureId。 + * + * @syscap SystemCapability.Multimedia.ImageEffect.Core + * @param info OH_EffectBufferInfo结构体实例指针。 + * @param textureId 图像纹理标识。 + * @return EFFECT_SUCCESS:方法调用成功。\n + * EFFECT_ERROR_PARAM_INVALID:参数缺失。 + * @since 20 + */ +ImageEffect_ErrorCode OH_EffectBufferInfo_SetTextureId(OH_EffectBufferInfo *info, int32_t textureId); + +/** + * @brief 从OH_EffectBufferInfo中获取图像的textureId。 + * + * @syscap SystemCapability.Multimedia.ImageEffect.Core + * @param info OH_EffectBufferInfo结构体实例指针。 + * @param textureId 图像纹理标识。 + * @return EFFECT_SUCCESS:方法调用成功。\n + * EFFECT_ERROR_PARAM_INVALID:参数缺失。 + * @since 20 + */ +ImageEffect_ErrorCode OH_EffectBufferInfo_GetTextureId(OH_EffectBufferInfo *info, int32_t *textureId); + /** * @brief 销毁OH_EffectBufferInfo实例。 * @@ -666,6 +690,23 @@ ImageEffect_ErrorCode OH_EffectFilter_LookupFilterInfo(const char *name, OH_Effe ImageEffect_ErrorCode OH_EffectFilter_Render(OH_EffectFilter *filter, OH_PixelmapNative *inputPixelmap, OH_PixelmapNative *outputPixelmap); +/** + * @brief 使用纹理标识渲染滤镜效果。该函数不支持相同的输入和输出图像。 + * + * @syscap SystemCapability.Multimedia.ImageEffect.Core + * @param filter OH_EffectFilter结构体实例指针。 + * @param inputTextureId 输入纹理标识。输入的纹理标识必须是有效的且绑定了GL_TEXTURE_2D类型的纹理。 + * @param outputTextureId 输出纹理标识,输入纹理标识必须是一个有效的纹理。\n + * 如果纹理标识未被绑定纹理图片,纹理标识会自动绑定 GL_TEXTURE_2D类型;\n + * 如果纹理标识已经被绑定纹理且尺寸不合适,结果可能会被裁剪或部分填充到此纹理上。 + * @param colorSpace 图片对应的色彩空间。 + * @return EFFECT_SUCCESS:方法调用成功。\n + * EFFECT_ERROR_PARAM_INVALID:参数缺失。 + * @since 20 + */ +ImageEffect_ErrorCode OH_EffectFilter_RenderWithTextureId(OH_EffectFilter *filter, int32_t inputTextureId, + int32_t outputTextureId, int32_t colorSpace); + /** * @brief 销毁OH_EffectFilter实例。 *