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