## 概述

PhoneTabletTV

声明不区分图形API平台的ABR（自适应稳态渲染）接口。

**引用文件：** <graphics\_game\_sdk/abr\_base.h>

**库：** libabr.so

**系统能力：** SystemCapability.GraphicsGame.RenderAccelerate

**起始版本：** 5.0.0(12)

**相关模块：** [GraphicsAccelerate](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/_graphics_accelerate)

## 汇总

PhoneTabletTV

### 结构体

PhoneTabletTV

展开

| 名称 | 描述 |
| --- | --- |
| struct [ABR\_Vector3](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/_a_b_r___vector3) | 此结构体描述ABR三维向量。 |
| struct [ABR\_CameraData](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/_a_b_r___camera_data) | 此结构体描述游戏应用每帧的相机运动数据，ABR会结合相机运动数据自适应调整FrameBuffer（帧缓冲，下文简称Buffer）分辨率因子。 |

### 类型定义

PhoneTabletTV

展开

| 名称 | 描述 |
| --- | --- |
| typedef struct [ABR\_Context](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/_graphics_accelerate#abr_context) [ABR\_Context](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/_graphics_accelerate#abr_context) | 此结构体描述ABR上下文。 |
| typedef enum [ABR\_RenderAPI\_Type](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/_graphics_accelerate#abr_renderapi_type-1) [ABR\_RenderAPI\_Type](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/_graphics_accelerate#abr_renderapi_type) | 此枚举描述ABR支持的图形API类型。 |
| typedef struct [ABR\_Vector3](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/_a_b_r___vector3) [ABR\_Vector3](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/_graphics_accelerate#abr_vector3) | 此结构体描述ABR三维向量。 |
| typedef struct [ABR\_CameraData](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/_a_b_r___camera_data) [ABR\_CameraData](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/_graphics_accelerate#abr_cameradata) | 此结构体描述游戏应用每帧的相机运动数据，ABR会结合相机运动数据自适应调整FrameBuffer（帧缓冲，下文简称Buffer）分辨率因子。 |
| typedef enum [ABR\_ErrorCode](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/_graphics_accelerate#abr_errorcode-1) [ABR\_ErrorCode](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/_graphics_accelerate#abr_errorcode) | 此枚举描述ABR接口调用错误码。 |

### 枚举

PhoneTabletTV

展开

| 名称 | 描述 |
| --- | --- |
| [ABR\_RenderAPI\_Type](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/_graphics_accelerate#abr_renderapi_type-1) {  RENDER\_API\_GLES = 0  } | 此枚举描述ABR支持的图形API类型。RENDER\_API\_GLES表示OpenGL ES API。 |
| [ABR\_ErrorCode](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/_graphics_accelerate#abr_errorcode-1) {  ABR\_SUCCESS = 0,  ABR\_INVALID\_PARAMETER = 401,  ABR\_CONTEXT\_CONFIG\_AFTER\_ACTIVE = 1009501001,  ABR\_CONTEXT\_NOT\_CONFIG = 1009501002,  ABR\_CONTEXT\_NOT\_ACTIVE = 1009501003,  ABR\_METADATA\_INVALID = 1009501004,  ABR\_FRAMEBUFFER\_INVALID = 1009501005  } | 此枚举描述ABR接口调用错误码。 |

### 函数

PhoneTabletTV

展开

| 名称 | 描述 |
| --- | --- |
| [ABR\_Context](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/_graphics_accelerate#abr_context)\* [HMS\_ABR\_CreateContext](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/_graphics_accelerate#hms_abr_createcontext)([ABR\_RenderAPI\_Type](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/_graphics_accelerate#abr_renderapi_type-1) type) | 创建ABR上下文实例，每次调用会新建[ABR\_Context](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/_graphics_accelerate#abr_context)对象，并返回指向[ABR\_Context](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/_graphics_accelerate#abr_context)对象的指针，当前仅支持RENDER\_API\_GLES类型，其他类型会导致创建上下文失败。 |
| [ABR\_ErrorCode](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/_graphics_accelerate#abr_errorcode-1) [HMS\_ABR\_SetTargetFps](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/_graphics_accelerate#hms_abr_settargetfps)([ABR\_Context](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/_graphics_accelerate#abr_context)\* context, const uint32\_t targetFps) | 配置ABR上下文实例的目标帧率属性。 |
| [ABR\_ErrorCode](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/_graphics_accelerate#abr_errorcode-1) [HMS\_ABR\_SetScaleRange](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/_graphics_accelerate#hms_abr_setscalerange)([ABR\_Context](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/_graphics_accelerate#abr_context)\* context, const float minValue, const float maxValue) | 配置ABR上下文实例的Buffer分辨率因子范围属性，minValue和maxValue取值范围[0.5, 1.0]，minValue应小于等于maxValue，不满足约束条件时，会返回错误码ABR\_INVALID\_PARAMETER。 |
| [ABR\_ErrorCode](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/_graphics_accelerate#abr_errorcode-1) [HMS\_ABR\_Activate](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/_graphics_accelerate#hms_abr_activate)([ABR\_Context](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/_graphics_accelerate#abr_context)\* context) | 激活ABR上下文实例。激活ABR上下文实例前需调用[HMS\_ABR\_SetTargetFps](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/_graphics_accelerate#hms_abr_settargetfps)和[HMS\_ABR\_SetScaleRange](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/_graphics_accelerate#hms_abr_setscalerange)接口进行实例属性的配置，若未正确配置目标帧率或分辨率范围，调用[HMS\_ABR\_Activate](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/_graphics_accelerate#hms_abr_activate)将返回错误码ABR\_CONTEXT\_NOT\_CONFIG。 |
| [ABR\_ErrorCode](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/_graphics_accelerate#abr_errorcode-1) [HMS\_ABR\_IsActive](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/_graphics_accelerate#hms_abr_isactive)([ABR\_Context](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/_graphics_accelerate#abr_context)\* context, bool\* isActive) | 查询ABR上下文实例是否处于激活状态。 |
| [ABR\_ErrorCode](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/_graphics_accelerate#abr_errorcode-1) [HMS\_ABR\_Deactivate](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/_graphics_accelerate#hms_abr_deactivate)([ABR\_Context](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/_graphics_accelerate#abr_context)\* context) | 去激活ABR上下文实例，可通过[HMS\_ABR\_Activate](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/_graphics_accelerate#hms_abr_activate)重新激活。 |
| [ABR\_ErrorCode](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/_graphics_accelerate#abr_errorcode-1) [HMS\_ABR\_UpdateCameraData](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/_graphics_accelerate#hms_abr_updatecameradata)([ABR\_Context](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/_graphics_accelerate#abr_context)\* context, [ABR\_CameraData](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/_a_b_r___camera_data)\* data) | 更新每帧相机运动数据，ABR更新相机运动数据前需调用[HMS\_ABR\_Activate](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/_graphics_accelerate#hms_abr_activate)接口激活ABR上下文实例，在未激活状态下调用此函数，会返回ABR\_CONTEXT\_NOT\_ACTIVE错误码。 |
| [ABR\_ErrorCode](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/_graphics_accelerate#abr_errorcode-1) [HMS\_ABR\_GetScale](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/_graphics_accelerate#hms_abr_getscale)([ABR\_Context](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/_graphics_accelerate#abr_context)\* context, float\* scale) | 获取ABR Buffer分辨率因子。 |
| [ABR\_ErrorCode](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/_graphics_accelerate#abr_errorcode-1) [HMS\_ABR\_GetNextScale](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/_graphics_accelerate#hms_abr_getnextscale)([ABR\_Context](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/_graphics_accelerate#abr_context)\* context, float\* scale) | 获取下一帧的ABR Buffer分辨率因子。 |
| [ABR\_ErrorCode](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/_graphics_accelerate#abr_errorcode-1) [HMS\_ABR\_DestroyContext](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/_graphics_accelerate#hms_abr_destroycontext)([ABR\_Context](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/_graphics_accelerate#abr_context)\*\* context) | 销毁ABR上下文实例并释放内存资源。 |