鸿蒙显示相关接口

在这里插入图片描述



display_gralloc部分接口定义

以下接口列举的为VDI接口,接口声明见文件/drivers/peripheral/display/buffer/hdi_service/include/idisplay_buffer_vdi.h

接口 描述 与Android
IDisplayBuffer *Get() 获取IDisplayBuffer接口的客户端代理对象
int32_t IsSupportedAlloc(const std::vector& infos, std::vector& supporteds) 判断是否能申请请求的buffer
int32_t AllocMem(const AllocInfo& info, BufferHandle*& handle) 申请Buffer allocate
void FreeMem(const BufferHandle& handle) 释放Buffer freeBuffer
void* Mmap(const BufferHandle& handle) 将Buffer映射到内存 Lock
int32_t Unmap(const BufferHandle& handle) 解除Buffer内存映射 Unlock
int32_t RegisterBuffer(const BufferHandle& handle) 注册Buffer
int32_t FlushCache(const BufferHandle& handle) 刷新Buffer缓存 flushLockedBuffer
int32_t InvalidateCache(const BufferHandle& handle) 废弃Buffer缓存 invalidateBuffer
int32_t GetMetadata(const BufferHandle& handle, uint32_t key, std::vector<uint8_t>& value) 获取Buffer的元数据
int32_t ListMetadataKeys(const BufferHandle& handle, std::vector<uint32_t>& keys) 列出所有元数据的key
int32_t EraseMetadataKey(const BufferHandle& handle, uint32_t key) 清除指定key的元数据信息

display_devicex相关接口

drivers/peripheral/display/composer/hdi_service/include/idisplay_composer_vdi.h

功能描述 接口名称
注册热插拔事件回调 int32_t RegHotPlugCallback(HotPlugCallback cb, void* data)
获取显示设备能力集 int32_t GetDisplayCapability(uint32_t devId, DisplayCapability& info)
获取显示设备支持的显示模式信息 int32_t GetDisplaySupportedModes(uint32_t devId, std::vector<DisplayModeInfo>& modes)
获取显示设备当前的显示模式 int32_t GetDisplayMode(uint32_t devId, uint32_t& modeId)
设置显示设备的显示模式 int32_t SetDisplayMode(uint32_t devId, uint32_t modeId)
获取显示设备当前的电源状态 int32_t GetDisplayPowerStatus(uint32_t devId, DispPowerStatus& status)
设置显示设备当前的电源状态 int32_t SetDisplayPowerStatus(uint32_t devId, DispPowerStatus status)
获取显示设备当前的背光值 int32_t GetDisplayBacklight(uint32_t devId, uint32_t& level)
设置显示设备当前的背光值 int32_t SetDisplayBacklight(uint32_t devId, uint32_t level)
获取显示设备属性值 int32_t GetDisplayProperty(uint32_t devId, uint32_t id, uint64_t& value)
获取显示设备合成类型有变化的layer int32_t GetDisplayCompChange(uint32_t devId, std::vector<uint32_t>& layers, std::vector<int32_t>& types)
设置显示设备的裁剪区域 int32_t SetDisplayClientCrop(uint32_t devId, const IRect& rect)
设置显示设备的显示缓存 int32_t SetDisplayClientBuffer(uint32_t devId, const BufferHandle& buffer, int32_t fence)
设置显示设备的显示脏区 int32_t SetDisplayClientDamage(uint32_t devId, std::vector<IRect>& rects)
使能垂直同步信号 int32_t SetDisplayVsyncEnabled(uint32_t devId, bool enabled)
注册VBlank事件回调 int32_t RegDisplayVBlankCallback(uint32_t devId, VBlankCallback cb, void* data)
获取显示图层fence int32_t GetDisplayReleaseFence(uint32_t devId, std::vector<uint32_t>& layers, std::vector<int32_t>& fences)
创建虚拟显示设备 int32_t CreateVirtualDisplay(uint32_t width, uint32_t height, int32_t& format, uint32_t& devId)
销毁虚拟显示设备 int32_t DestroyVirtualDisplay(uint32_t devId)
设置虚拟屏的输出缓存 int32_t SetVirtualDisplayBuffer(uint32_t devId, const BufferHandle& buffer, const int32_t fence)
设置显示设备属性值 int32_t SetDisplayProperty(uint32_t devId, uint32_t id, uint64_t value)
提交合成送显请求 int32_t Commit(uint32_t devId, int32_t& fence)
打开图层 int32_t CreateLayer(uint32_t devId, const LayerInfo& layerInfo, uint32_t& layerId)
关闭图层 int32_t DestroyLayer(uint32_t devId, uint32_t layerId)
准备要送显的图层 int32_t PrepareDisplayLayers(uint32_t devId, bool& needFlushFb)
设置图层alpha值 int32_t SetLayerAlpha(uint32_t devId, uint32_t layerId, const LayerAlpha& alpha)
设置图层区域 int32_t SetLayerRegion(uint32_t devId, uint32_t layerId, const IRect& rect)
设置图层裁剪区域 int32_t SetLayerCrop(uint32_t devId, uint32_t layerId, const IRect& rect)
设置图层Z轴次序 int32_t SetLayerZorder(uint32_t devId, uint32_t layerId, uint32_t zorder)
设置图层预乘 int32_t SetLayerPreMulti(uint32_t devId, uint32_t layerId, bool preMul)
设置图层转换模式 int32_t SetLayerTransformMode(uint32_t devId, uint32_t layerId, TransformType type)
设置图层刷新区域 int32_t SetLayerDirtyRegion(uint32_t devId, uint32_t layerId, const std::vector<IRect>& rects)
设置一个图层的可见区域 int32_t SetLayerVisibleRegion(uint32_t devId, uint32_t layerId, std::vector<IRect>& rects)
设置一个层的缓冲区 int32_t SetLayerBuffer(uint32_t devId, uint32_t layerId, const BufferHandle& buffer, int32_t fence)
设置客户端期望的组合类型 int32_t SetLayerCompositionType(uint32_t devId, uint32_t layerId, CompositionType type)
设置混合类型 int32_t SetLayerBlendType(uint32_t devId, uint32_t layerId, BlendType type)
设置图层蒙版信息 int32_t SetLayerMaskInfo(uint32_t devId, uint32_t layerId, const MaskInfo maskInfo)
设置纯色图层 int32_t SetLayerColor(uint32_t devId, uint32_t layerId, const LayerColor& layerColor)
Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐