OSDN Git Service

minigbm: Fix switch statements
[android-x86/external-minigbm.git] / gbm_helpers.c
1 /*
2  * Copyright (c) 2016 The Chromium OS Authors. All rights reserved.
3  * Use of this source code is governed by a BSD-style license that can be
4  * found in the LICENSE file.
5  */
6
7 #include <stddef.h>
8 #include <stdio.h>
9
10 #include "drv.h"
11 #include "gbm.h"
12
13 drv_format_t gbm_convert_format(uint32_t format)
14 {
15
16         switch (format) {
17         case GBM_FORMAT_C8:
18                 return DRV_FORMAT_C8;
19         case GBM_FORMAT_R8:
20                 return DRV_FORMAT_R8;
21         case GBM_FORMAT_RG88:
22                 return DRV_FORMAT_RG88;
23         case GBM_FORMAT_GR88:
24                 return DRV_FORMAT_GR88;
25         case GBM_FORMAT_RGB332:
26                 return DRV_FORMAT_RGB332;
27         case GBM_FORMAT_BGR233:
28                 return DRV_FORMAT_BGR233;
29         case GBM_FORMAT_XRGB4444:
30                 return DRV_FORMAT_XRGB4444;
31         case GBM_FORMAT_XBGR4444:
32                 return DRV_FORMAT_XBGR4444;
33         case GBM_FORMAT_RGBX4444:
34                 return DRV_FORMAT_RGBX4444;
35         case GBM_FORMAT_BGRX4444:
36                 return DRV_FORMAT_BGRX4444;
37         case GBM_FORMAT_ARGB4444:
38                 return DRV_FORMAT_ARGB4444;
39         case GBM_FORMAT_ABGR4444:
40                 return DRV_FORMAT_ABGR4444;
41         case GBM_FORMAT_RGBA4444:
42                 return DRV_FORMAT_RGBA4444;
43         case GBM_FORMAT_BGRA4444:
44                 return DRV_FORMAT_BGRA4444;
45         case GBM_FORMAT_XRGB1555:
46                 return DRV_FORMAT_XRGB1555;
47         case GBM_FORMAT_XBGR1555:
48                 return DRV_FORMAT_XBGR1555;
49         case GBM_FORMAT_RGBX5551:
50                 return DRV_FORMAT_RGBX5551;
51         case GBM_FORMAT_BGRX5551:
52                 return DRV_FORMAT_BGRX5551;
53         case GBM_FORMAT_ARGB1555:
54                 return DRV_FORMAT_ARGB1555;
55         case GBM_FORMAT_ABGR1555:
56                 return DRV_FORMAT_ABGR1555;
57         case GBM_FORMAT_RGBA5551:
58                 return DRV_FORMAT_RGBA5551;
59         case GBM_FORMAT_BGRA5551:
60                 return DRV_FORMAT_BGRA5551;
61         case GBM_FORMAT_RGB565:
62                 return DRV_FORMAT_RGB565;
63         case GBM_FORMAT_BGR565:
64                 return DRV_FORMAT_BGR565;
65         case GBM_FORMAT_RGB888:
66                 return DRV_FORMAT_RGB888;
67         case GBM_FORMAT_BGR888:
68                 return DRV_FORMAT_BGR888;
69         case GBM_FORMAT_XRGB8888:
70                 return DRV_FORMAT_XRGB8888;
71         case GBM_FORMAT_XBGR8888:
72                 return DRV_FORMAT_XBGR8888;
73         case GBM_FORMAT_RGBX8888:
74                 return DRV_FORMAT_RGBX8888;
75         case GBM_FORMAT_BGRX8888:
76                 return DRV_FORMAT_BGRX8888;
77         case GBM_FORMAT_ARGB8888:
78                 return DRV_FORMAT_ARGB8888;
79         case GBM_FORMAT_ABGR8888:
80                 return DRV_FORMAT_ABGR8888;
81         case GBM_FORMAT_RGBA8888:
82                 return DRV_FORMAT_RGBA8888;
83         case GBM_FORMAT_BGRA8888:
84                 return DRV_FORMAT_BGRA8888;
85         case GBM_FORMAT_XRGB2101010:
86                 return DRV_FORMAT_XRGB2101010;
87         case GBM_FORMAT_XBGR2101010:
88                 return DRV_FORMAT_XBGR2101010;
89         case GBM_FORMAT_RGBX1010102:
90                 return DRV_FORMAT_RGBX1010102;
91         case GBM_FORMAT_BGRX1010102:
92                 return DRV_FORMAT_BGRX1010102;
93         case GBM_FORMAT_ARGB2101010:
94                 return DRV_FORMAT_ARGB2101010;
95         case GBM_FORMAT_ABGR2101010:
96                 return DRV_FORMAT_ABGR2101010;
97         case GBM_FORMAT_RGBA1010102:
98                 return DRV_FORMAT_RGBA1010102;
99         case GBM_FORMAT_BGRA1010102:
100                 return DRV_FORMAT_BGRA1010102;
101         case GBM_FORMAT_YUYV:
102                 return DRV_FORMAT_YUYV;
103         case GBM_FORMAT_YVYU:
104                 return DRV_FORMAT_YVYU;
105         case GBM_FORMAT_UYVY:
106                 return DRV_FORMAT_UYVY;
107         case GBM_FORMAT_VYUY:
108                 return DRV_FORMAT_VYUY;
109         case GBM_FORMAT_AYUV:
110                 return DRV_FORMAT_AYUV;
111         case GBM_FORMAT_NV12:
112                 return DRV_FORMAT_NV12;
113         case GBM_FORMAT_NV21:
114                 return DRV_FORMAT_NV21;
115         case GBM_FORMAT_NV16:
116                 return DRV_FORMAT_NV16;
117         case GBM_FORMAT_NV61:
118                 return DRV_FORMAT_NV61;
119         case GBM_FORMAT_YUV410:
120                 return DRV_FORMAT_YUV410;
121         case GBM_FORMAT_YVU410:
122                 return DRV_FORMAT_YVU410;
123         case GBM_FORMAT_YUV411:
124                 return DRV_FORMAT_YUV411;
125         case GBM_FORMAT_YVU411:
126                 return DRV_FORMAT_YVU411;
127         case GBM_FORMAT_YUV420:
128                 return DRV_FORMAT_YUV420;
129         case GBM_FORMAT_YVU420:
130                 return DRV_FORMAT_YVU420;
131         case GBM_FORMAT_YUV422:
132                 return DRV_FORMAT_YUV422;
133         case GBM_FORMAT_YVU422:
134                 return DRV_FORMAT_YVU422;
135         case GBM_FORMAT_YUV444:
136                 return DRV_FORMAT_YVU444;
137         case GBM_FORMAT_YVU444:
138                 return DRV_FORMAT_YVU444;
139         }
140
141         fprintf(stderr, "minigbm: UNKNOWN FORMAT %d\n", format);
142         return DRV_FORMAT_NONE;
143 }
144
145 uint64_t gbm_convert_flags(uint32_t flags)
146 {
147         uint64_t usage = DRV_BO_USE_NONE;
148
149         if (flags & GBM_BO_USE_SCANOUT)
150                 usage |= DRV_BO_USE_SCANOUT;
151         if (flags & GBM_BO_USE_CURSOR)
152                 usage |= DRV_BO_USE_CURSOR;
153         if (flags & GBM_BO_USE_CURSOR_64X64)
154                 usage |= DRV_BO_USE_CURSOR_64X64;
155         if (flags & GBM_BO_USE_RENDERING)
156                 usage |= DRV_BO_USE_RENDERING;
157         if (flags & GBM_BO_USE_LINEAR)
158                 usage |= DRV_BO_USE_LINEAR;
159
160         return usage;
161 }