鸿蒙显示相关接口

在这里插入图片描述



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)申请Bufferallocate
void FreeMem(const BufferHandle& handle)释放BufferfreeBuffer
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)
获取显示设备合成类型有变化的layerint32_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)
获取显示图层fenceint32_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、测试、元服务和应用上架分发等。

更多推荐