1 /* 2 * Copyright (c) 2023 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #ifndef DISPLAY_COMPOSER_VDI_IMPL_H 17 #define DISPLAY_COMPOSER_VDI_IMPL_H 18 19 #include <vector> 20 #include "hdi_session.h" 21 #include "idisplay_composer_vdi.h" 22 #include "v1_0/display_composer_type.h" 23 24 namespace OHOS { 25 namespace HDI { 26 namespace DISPLAY { 27 using namespace OHOS::HDI::Display::Composer; 28 using namespace OHOS::HDI::Display::Composer::V1_0; 29 30 class DisplayComposerVdiImpl : public IDisplayComposerVdi { 31 public: 32 DisplayComposerVdiImpl(); 33 virtual ~DisplayComposerVdiImpl(); 34 virtual int32_t RegHotPlugCallback(HotPlugCallback cb, void* data) override; 35 virtual int32_t GetDisplayCapability(uint32_t devId, DisplayCapability& info) override; 36 virtual int32_t GetDisplaySupportedModes(uint32_t devId, std::vector<DisplayModeInfo>& modes) override; 37 virtual int32_t GetDisplayMode(uint32_t devId, uint32_t& modeId) override; 38 virtual int32_t SetDisplayMode(uint32_t devId, uint32_t modeId) override; 39 virtual int32_t GetDisplayPowerStatus(uint32_t devId, DispPowerStatus& status) override; 40 virtual int32_t SetDisplayPowerStatus(uint32_t devId, DispPowerStatus status) override; 41 virtual int32_t GetDisplayBacklight(uint32_t devId, uint32_t& level) override; 42 virtual int32_t SetDisplayBacklight(uint32_t devId, uint32_t level) override; 43 virtual int32_t GetDisplayProperty(uint32_t devId, uint32_t id, uint64_t& value) override; 44 virtual int32_t GetDisplayCompChange(uint32_t devId, std::vector<uint32_t>& layers, 45 std::vector<int32_t>& types) override; 46 virtual int32_t SetDisplayClientCrop(uint32_t devId, const IRect& rect) override; 47 virtual int32_t SetDisplayClientBuffer(uint32_t devId, const BufferHandle& buffer, int32_t fence) override; 48 virtual int32_t SetDisplayClientDamage(uint32_t devId, std::vector<IRect>& rects) override; 49 virtual int32_t SetDisplayVsyncEnabled(uint32_t devId, bool enabled) override; 50 virtual int32_t RegDisplayVBlankCallback(uint32_t devId, VBlankCallback cb, void* data) override; 51 virtual int32_t GetDisplayReleaseFence(uint32_t devId, std::vector<uint32_t>& layers, 52 std::vector<int32_t>& fences) override; 53 virtual int32_t CreateVirtualDisplay(uint32_t width, uint32_t height, int32_t& format, uint32_t& devId) override; 54 virtual int32_t DestroyVirtualDisplay(uint32_t devId) override; 55 virtual int32_t SetVirtualDisplayBuffer(uint32_t devId, const BufferHandle& buffer, const int32_t fence) override; 56 virtual int32_t SetDisplayProperty(uint32_t devId, uint32_t id, uint64_t value) override; 57 virtual int32_t Commit(uint32_t devId, int32_t& fence) override; 58 virtual int32_t CreateLayer(uint32_t devId, const LayerInfo& layerInfo, uint32_t& layerId) override; 59 virtual int32_t DestroyLayer(uint32_t devId, uint32_t layerId) override; 60 virtual int32_t PrepareDisplayLayers(uint32_t devId, bool& needFlushFb) override; 61 virtual int32_t SetLayerAlpha(uint32_t devId, uint32_t layerId, const LayerAlpha& alpha) override; 62 virtual int32_t SetLayerRegion(uint32_t devId, uint32_t layerId, const IRect& rect) override; 63 virtual int32_t SetLayerCrop(uint32_t devId, uint32_t layerId, const IRect& rect) override; 64 virtual int32_t SetLayerZorder(uint32_t devId, uint32_t layerId, uint32_t zorder) override; 65 virtual int32_t SetLayerPreMulti(uint32_t devId, uint32_t layerId, bool preMul) override; 66 virtual int32_t SetLayerTransformMode(uint32_t devId, uint32_t layerId, TransformType type) override; 67 virtual int32_t SetLayerDirtyRegion(uint32_t devId, uint32_t layerId, const std::vector<IRect>& rects) override; 68 virtual int32_t SetLayerVisibleRegion(uint32_t devId, uint32_t layerId, std::vector<IRect>& rects) override; 69 virtual int32_t SetLayerBuffer(uint32_t devId, uint32_t layerId, 70 const BufferHandle& buffer, int32_t fence) override; 71 virtual int32_t SetLayerCompositionType(uint32_t devId, uint32_t layerId, CompositionType type) override; 72 virtual int32_t SetLayerBlendType(uint32_t devId, uint32_t layerId, BlendType type) override; 73 virtual int32_t SetLayerMaskInfo(uint32_t devId, uint32_t layerId, const MaskInfo maskInfo) override; 74 virtual int32_t SetLayerColor(uint32_t devId, uint32_t layerId, const LayerColor& layerColor) override; 75 }; 76 } // DISPLAY 77 } // HDI 78 } // OHOS 79 #endif // DISPLAY_COMPOSER_VDI_IMPL_H 80