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