blob: b77e69b35c0580a5e7a8f03cd626d58589b6c278 [file] [log] [blame]
Pyry Haulosa0178632014-11-21 14:56:21 -08001# -*- coding: utf-8 -*-
2
Jarkko Pöyry3c77ed42015-01-06 12:54:34 -08003#-------------------------------------------------------------------------
4# drawElements Quality Program utilities
5# --------------------------------------
6#
7# Copyright 2015 The Android Open Source Project
8#
9# Licensed under the Apache License, Version 2.0 (the "License");
10# you may not use this file except in compliance with the License.
11# You may obtain a copy of the License at
12#
13# http://www.apache.org/licenses/LICENSE-2.0
14#
15# Unless required by applicable law or agreed to in writing, software
16# distributed under the License is distributed on an "AS IS" BASIS,
17# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18# See the License for the specific language governing permissions and
19# limitations under the License.
20#
21#-------------------------------------------------------------------------
22
Pyry Haulosa0178632014-11-21 14:56:21 -080023import os
24import string
25
26from common import *
27from khr_util.format import indentLines
28from khr_util.gen_str_util import addValuePrefix, genStrUtilProtos, genStrUtilImpls
29
30# Bitfield mapping
31BITFIELD_GROUPS = [
32 ("APIBits", [
33 "OPENGL_BIT",
34 "OPENGL_ES_BIT",
35 "OPENGL_ES2_BIT",
36 "OPENGL_ES3_BIT_KHR",
37 "OPENVG_BIT"
38 ]),
39 ("SurfaceBits", [
40 "PBUFFER_BIT",
41 "PIXMAP_BIT",
42 "WINDOW_BIT",
43 "MULTISAMPLE_RESOLVE_BOX_BIT",
44 "SWAP_BEHAVIOR_PRESERVED_BIT",
45 "VG_ALPHA_FORMAT_PRE_BIT",
46 "VG_COLORSPACE_LINEAR_BIT",
47 "LOCK_SURFACE_BIT_KHR",
48 "OPTIMAL_FORMAT_BIT_KHR"
49 ])
50]
51
52# Enum mapping
53ENUM_GROUPS = [
54 ("Boolean", ["TRUE", "FALSE"]),
55 ("BoolDontCare", ["TRUE", "FALSE", "DONT_CARE"]),
56 ("API", ["OPENGL_API", "OPENGL_ES_API", "OPENVG_API"]),
57 ("Error", [
58 "SUCCESS",
59 "NOT_INITIALIZED",
60 "BAD_ACCESS",
61 "BAD_ALLOC",
62 "BAD_ATTRIBUTE",
63 "BAD_CONFIG",
64 "BAD_CONTEXT",
65 "BAD_CURRENT_SURFACE",
66 "BAD_DISPLAY",
67 "BAD_MATCH",
68 "BAD_NATIVE_PIXMAP",
69 "BAD_NATIVE_WINDOW",
70 "BAD_PARAMETER",
71 "BAD_SURFACE",
72 "CONTEXT_LOST"
73 ]),
74 ("ContextAttrib", [
75 "CONFIG_ID",
76 "CONTEXT_CLIENT_TYPE",
77 "CONTEXT_CLIENT_VERSION",
78 "RENDER_BUFFER"
79 ]),
80 ("ConfigAttrib", [
81 "BUFFER_SIZE",
82 "RED_SIZE",
83 "GREEN_SIZE",
84 "BLUE_SIZE",
85 "LUMINANCE_SIZE",
86 "ALPHA_SIZE",
87 "ALPHA_MASK_SIZE",
88 "BIND_TO_TEXTURE_RGB",
89 "BIND_TO_TEXTURE_RGBA",
90 "COLOR_BUFFER_TYPE",
91 "CONFIG_CAVEAT",
92 "CONFIG_ID",
93 "CONFORMANT",
94 "DEPTH_SIZE",
95 "LEVEL",
96 "MATCH_NATIVE_PIXMAP",
97 "MAX_SWAP_INTERVAL",
98 "MIN_SWAP_INTERVAL",
99 "NATIVE_RENDERABLE",
100 "NATIVE_VISUAL_TYPE",
101 "RENDERABLE_TYPE",
102 "SAMPLE_BUFFERS",
103 "SAMPLES",
104 "STENCIL_SIZE",
105 "SURFACE_TYPE",
106 "TRANSPARENT_TYPE",
107 "TRANSPARENT_RED_VALUE",
108 "TRANSPARENT_GREEN_VALUE",
109 "TRANSPARENT_BLUE_VALUE"
110 ]),
111 ("SurfaceAttrib", [
112 "CONFIG_ID",
113 "WIDTH",
114 "HEIGHT",
115 "HORIZONTAL_RESOLUTION",
116 "VERTICAL_RESOLUTION",
117 "LARGEST_PBUFFER",
118 "MIPMAP_TEXTURE",
119 "MIPMAP_LEVEL",
120 "MULTISAMPLE_RESOLVE",
121 "PIXEL_ASPECT_RATIO",
122 "RENDER_BUFFER",
123 "SWAP_BEHAVIOR",
124 "TEXTURE_FORMAT",
125 "TEXTURE_TARGET",
Pyry Haulos3c67e4f2014-12-19 15:45:39 -0800126 "ALPHA_FORMAT",
127 "COLORSPACE"
Pyry Haulosa0178632014-11-21 14:56:21 -0800128 ]),
Pyry Haulos521bb162016-08-22 15:56:52 -0700129 ("YuvOrder", [
130 "NONE",
131 "YUV_ORDER_YUV_EXT",
132 "YUV_ORDER_YVU_EXT",
133 "YUV_ORDER_YUYV_EXT",
134 "YUV_ORDER_UYVY_EXT",
135 "YUV_ORDER_YVYU_EXT",
136 "YUV_ORDER_VYUY_EXT",
137 "YUV_ORDER_AYUV_EXT",
138 ]),
139 ("YuvPlaneBpp", [
140 "YUV_PLANE_BPP_0_EXT",
141 "YUV_PLANE_BPP_8_EXT",
142 "YUV_PLANE_BPP_10_EXT",
143 ]),
Mark Adams521bf8a2016-12-14 17:02:52 -0500144 ("ColorComponentType", ["COLOR_COMPONENT_TYPE_FIXED_EXT", "COLOR_COMPONENT_TYPE_FLOAT_EXT"]),
Pyry Haulosa0178632014-11-21 14:56:21 -0800145 ("SurfaceTarget", ["READ", "DRAW"]),
146
147 # ConfigAttrib values
148 ("ColorBufferType", ["RGB_BUFFER", "LUMINANCE_BUFFER"]),
149 ("ConfigCaveat", ["NONE", "SLOW_CONFIG", "NON_CONFORMANT_CONFIG"]),
150 ("TransparentType", ["NONE", "TRANSPARENT_RGB"]),
151
152 # SurfaceAttrib values
153 ("MultisampleResolve", ["MULTISAMPLE_RESOLVE_DEFAULT", "MULTISAMPLE_RESOLVE_BOX"]),
154 ("RenderBuffer", ["SINGLE_BUFFER", "BACK_BUFFER"]),
155 ("SwapBehavior", ["BUFFER_DESTROYED", "BUFFER_PRESERVED"]),
156 ("TextureFormat", ["NO_TEXTURE", "TEXTURE_RGB", "TEXTURE_RGBA"]),
157 ("TextureTarget", ["NO_TEXTURE", "TEXTURE_2D"]),
Pyry Haulos3c67e4f2014-12-19 15:45:39 -0800158 ("AlphaFormat", ["ALPHA_FORMAT_NONPRE", "ALPHA_FORMAT_PRE"]),
159 ("Colorspace", ["COLORSPACE_sRGB", "COLORSPACE_LINEAR"])
Pyry Haulosa0178632014-11-21 14:56:21 -0800160]
161
162def gen (iface):
163 enumGroups = addValuePrefix(ENUM_GROUPS, "EGL_")
164 bitfieldGroups = addValuePrefix(BITFIELD_GROUPS, "EGL_")
165 prototypeFile = os.path.join(EGL_DIR, "egluStrUtilPrototypes.inl")
166 implFile = os.path.join(EGL_DIR, "egluStrUtil.inl")
167
168 writeInlFile(prototypeFile, indentLines(genStrUtilProtos(iface, enumGroups, bitfieldGroups)))
169 writeInlFile(implFile, genStrUtilImpls(iface, enumGroups, bitfieldGroups))