1d6aed566Sopenharmony_ci/*
2d6aed566Sopenharmony_ci * Copyright (c) 2022 Huawei Device Co., Ltd.
3d6aed566Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
4d6aed566Sopenharmony_ci * you may not use this file except in compliance with the License.
5d6aed566Sopenharmony_ci * You may obtain a copy of the License at
6d6aed566Sopenharmony_ci *
7d6aed566Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
8d6aed566Sopenharmony_ci *
9d6aed566Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
10d6aed566Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
11d6aed566Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12d6aed566Sopenharmony_ci * See the License for the specific language governing permissions and
13d6aed566Sopenharmony_ci * limitations under the License.
14d6aed566Sopenharmony_ci */
15d6aed566Sopenharmony_ci
16d6aed566Sopenharmony_ci#ifndef GRAPHIC_LITE_HI_FBDEV_H
17d6aed566Sopenharmony_ci#define GRAPHIC_LITE_HI_FBDEV_H
18d6aed566Sopenharmony_ci
19d6aed566Sopenharmony_ci#include "gfx_utils/pixel_format_utils.h"
20d6aed566Sopenharmony_ci
21d6aed566Sopenharmony_cinamespace OHOS {
22d6aed566Sopenharmony_cienum LayerRotateType {
23d6aed566Sopenharmony_ci    LAYER_ROTATE_NONE = 0,        /**< No rotation */
24d6aed566Sopenharmony_ci    LAYER_ROTATE_90,              /**< Rotation by 90 degrees */
25d6aed566Sopenharmony_ci    LAYER_ROTATE_180,             /**< Rotation by 180 degrees */
26d6aed566Sopenharmony_ci    LAYER_ROTATE_270,             /**< Rotation by 270 degrees */
27d6aed566Sopenharmony_ci    LAYER_ROTATE_BUTT             /**< Invalid operation */
28d6aed566Sopenharmony_ci};
29d6aed566Sopenharmony_ci
30d6aed566Sopenharmony_cistruct LiteSurfaceData {
31d6aed566Sopenharmony_ci    ImagePixelFormat pixelFormat;
32d6aed566Sopenharmony_ci    uint16_t width;
33d6aed566Sopenharmony_ci    uint16_t height;
34d6aed566Sopenharmony_ci    uint8_t *virAddr;
35d6aed566Sopenharmony_ci    uint8_t *phyAddr;
36d6aed566Sopenharmony_ci    uint32_t stride;
37d6aed566Sopenharmony_ci    uint8_t bytePerPixel;
38d6aed566Sopenharmony_ci};
39d6aed566Sopenharmony_ci
40d6aed566Sopenharmony_ci/**
41d6aed566Sopenharmony_ci * @brief Get dev surface data.
42d6aed566Sopenharmony_ci */
43d6aed566Sopenharmony_ciLiteSurfaceData* GetDevSurfaceData(void);
44d6aed566Sopenharmony_ci
45d6aed566Sopenharmony_ci/**
46d6aed566Sopenharmony_ci * @brief Get layer rotate type.
47d6aed566Sopenharmony_ci */
48d6aed566Sopenharmony_ciLayerRotateType GetLayerRotateType(void);
49d6aed566Sopenharmony_ci
50d6aed566Sopenharmony_ci/**
51d6aed566Sopenharmony_ci * @brief Initialize fbdev.
52d6aed566Sopenharmony_ci */
53d6aed566Sopenharmony_civoid FbdevInit(void);
54d6aed566Sopenharmony_ci
55d6aed566Sopenharmony_ci/**
56d6aed566Sopenharmony_ci * @brief Close fbdev.
57d6aed566Sopenharmony_ci */
58d6aed566Sopenharmony_civoid FbdevClose(void);
59d6aed566Sopenharmony_ci
60d6aed566Sopenharmony_ci/**
61d6aed566Sopenharmony_ci * @brief flush
62d6aed566Sopenharmony_ci */
63d6aed566Sopenharmony_civoid FbdevFlush(void);
64d6aed566Sopenharmony_ci} // namespace OHOS
65d6aed566Sopenharmony_ci#endif // GRAPHIC_LITE_HI_FBDEV_H
66