summaryrefslogtreecommitdiff
path: root/hwcomposer/color_fmt.h
blob: c21247fcda98c9fd325f1a0cb217c83c0bd9bcfb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
/*
 * Copyright (C) Texas Instruments - http://www.ti.com/
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#ifndef __COLOR_FMT__
#define __COLOR_FMT__

#include <stdint.h>
#include <stdbool.h>

#include <linux/types.h>
#include "drm_fourcc.h"
#include "xf86drm.h"
#include "xf86drmMode.h"

#include "hal_public.h"

#define HAL_FMT(f) ((f) == HAL_PIXEL_FORMAT_TI_NV12 ? "NV12" : \
                    (f) == HAL_PIXEL_FORMAT_TI_NV12_1D ? "NV12" : \
                    (f) == HAL_PIXEL_FORMAT_YV12 ? "YV12" : \
                    (f) == HAL_PIXEL_FORMAT_BGRX_8888 ? "xRGB32" : \
                    (f) == HAL_PIXEL_FORMAT_RGBX_8888 ? "xBGR32" : \
                    (f) == HAL_PIXEL_FORMAT_BGRA_8888 ? "ARGB32" : \
                    (f) == HAL_PIXEL_FORMAT_RGBA_8888 ? "ABGR32" : \
                    (f) == HAL_PIXEL_FORMAT_RGB_565 ? "RGB565" : "??")

#define DRM_FMT(f) ((f) == DRM_FORMAT_NV12 ? "NV12" : \
                    (f) == DRM_FORMAT_XRGB8888 ? "xRGB32" : \
                    (f) == DRM_FORMAT_ARGB8888 ? "ARGB32" : \
                    (f) == DRM_FORMAT_RGB565 ? "RGB565" : "??")

bool is_valid_format(uint32_t format);
bool is_rgb_format(uint32_t format);
bool is_bgr_format(uint32_t format);
bool is_nv12_format(uint32_t format);
bool is_opaque_format(uint32_t format);
uint32_t get_format_bpp(uint32_t format);
uint32_t convert_hal_to_dss_format(uint32_t format, bool blended);
uint32_t convert_hal_to_drm_format(uint32_t hal_format, bool blended);
uint32_t convert_hal_to_ocd_format(uint32_t hal_format);
uint32_t get_stride_from_format(uint32_t format, uint32_t width);

#endif