• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# -*- coding: utf-8 -*-
2
3#-------------------------------------------------------------------------
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
23import 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		"COLOR_COMPONENT_TYPE_EXT"
111		]),
112	("SurfaceAttrib", [
113		"CONFIG_ID",
114		"WIDTH",
115		"HEIGHT",
116		"HORIZONTAL_RESOLUTION",
117		"VERTICAL_RESOLUTION",
118		"LARGEST_PBUFFER",
119		"MIPMAP_TEXTURE",
120		"MIPMAP_LEVEL",
121		"MULTISAMPLE_RESOLVE",
122		"PIXEL_ASPECT_RATIO",
123		"RENDER_BUFFER",
124		"SWAP_BEHAVIOR",
125		"TEXTURE_FORMAT",
126		"TEXTURE_TARGET",
127		"ALPHA_FORMAT",
128		"COLORSPACE"
129		]),
130	("YuvOrder", [
131		"NONE",
132		"YUV_ORDER_YUV_EXT",
133		"YUV_ORDER_YVU_EXT",
134		"YUV_ORDER_YUYV_EXT",
135		"YUV_ORDER_UYVY_EXT",
136		"YUV_ORDER_YVYU_EXT",
137		"YUV_ORDER_VYUY_EXT",
138		"YUV_ORDER_AYUV_EXT",
139		]),
140	("YuvPlaneBpp", [
141		"YUV_PLANE_BPP_0_EXT",
142		"YUV_PLANE_BPP_8_EXT",
143		"YUV_PLANE_BPP_10_EXT",
144		]),
145	("ColorComponentType",	["COLOR_COMPONENT_TYPE_FIXED_EXT", "COLOR_COMPONENT_TYPE_FLOAT_EXT"]),
146	("SurfaceTarget",		["READ", "DRAW"]),
147
148	# ConfigAttrib values
149	("ColorBufferType",		["RGB_BUFFER", "LUMINANCE_BUFFER"]),
150	("ConfigCaveat",		["NONE", "SLOW_CONFIG", "NON_CONFORMANT_CONFIG"]),
151	("TransparentType",		["NONE", "TRANSPARENT_RGB"]),
152
153	# SurfaceAttrib values
154	("MultisampleResolve",	["MULTISAMPLE_RESOLVE_DEFAULT", "MULTISAMPLE_RESOLVE_BOX"]),
155	("RenderBuffer",		["SINGLE_BUFFER", "BACK_BUFFER"]),
156	("SwapBehavior",		["BUFFER_DESTROYED", "BUFFER_PRESERVED"]),
157	("TextureFormat",		["NO_TEXTURE", "TEXTURE_RGB", "TEXTURE_RGBA"]),
158	("TextureTarget",		["NO_TEXTURE", "TEXTURE_2D"]),
159	("AlphaFormat",			["ALPHA_FORMAT_NONPRE", "ALPHA_FORMAT_PRE"]),
160	("Colorspace",			["COLORSPACE_sRGB", "COLORSPACE_LINEAR"])
161]
162
163def gen (iface):
164	enumGroups		= addValuePrefix(ENUM_GROUPS, "EGL_")
165	bitfieldGroups	= addValuePrefix(BITFIELD_GROUPS, "EGL_")
166	prototypeFile	= os.path.join(EGL_DIR, "egluStrUtilPrototypes.inl")
167	implFile		= os.path.join(EGL_DIR, "egluStrUtil.inl")
168
169	writeInlFile(prototypeFile, indentLines(genStrUtilProtos(iface, enumGroups, bitfieldGroups)))
170	writeInlFile(implFile, genStrUtilImpls(iface, enumGroups, bitfieldGroups))
171