# -*- coding: utf-8 -*- #------------------------------------------------------------------------- # drawElements Quality Program utilities # -------------------------------------- # # Copyright 2015 The Android Open Source Project # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # #------------------------------------------------------------------------- import os import string from common import * from khr_util.format import indentLines from khr_util.gen_str_util import addValuePrefix, genStrUtilProtos, genStrUtilImpls # Bitfield mapping BITFIELD_GROUPS = [ ("APIBits", [ "OPENGL_BIT", "OPENGL_ES_BIT", "OPENGL_ES2_BIT", "OPENGL_ES3_BIT_KHR", "OPENVG_BIT" ]), ("SurfaceBits", [ "PBUFFER_BIT", "PIXMAP_BIT", "WINDOW_BIT", "MULTISAMPLE_RESOLVE_BOX_BIT", "SWAP_BEHAVIOR_PRESERVED_BIT", "VG_ALPHA_FORMAT_PRE_BIT", "VG_COLORSPACE_LINEAR_BIT", "LOCK_SURFACE_BIT_KHR", "OPTIMAL_FORMAT_BIT_KHR" ]) ] # Enum mapping ENUM_GROUPS = [ ("Boolean", ["TRUE", "FALSE"]), ("BoolDontCare", ["TRUE", "FALSE", "DONT_CARE"]), ("API", ["OPENGL_API", "OPENGL_ES_API", "OPENVG_API"]), ("Error", [ "SUCCESS", "NOT_INITIALIZED", "BAD_ACCESS", "BAD_ALLOC", "BAD_ATTRIBUTE", "BAD_CONFIG", "BAD_CONTEXT", "BAD_CURRENT_SURFACE", "BAD_DISPLAY", "BAD_MATCH", "BAD_NATIVE_PIXMAP", "BAD_NATIVE_WINDOW", "BAD_PARAMETER", "BAD_SURFACE", "CONTEXT_LOST" ]), ("ContextAttrib", [ "CONFIG_ID", "CONTEXT_CLIENT_TYPE", "CONTEXT_CLIENT_VERSION", "RENDER_BUFFER" ]), ("ConfigAttrib", [ "BUFFER_SIZE", "RED_SIZE", "GREEN_SIZE", "BLUE_SIZE", "LUMINANCE_SIZE", "ALPHA_SIZE", "ALPHA_MASK_SIZE", "BIND_TO_TEXTURE_RGB", "BIND_TO_TEXTURE_RGBA", "COLOR_BUFFER_TYPE", "CONFIG_CAVEAT", "CONFIG_ID", "CONFORMANT", "DEPTH_SIZE", "LEVEL", "MATCH_NATIVE_PIXMAP", "MAX_SWAP_INTERVAL", "MIN_SWAP_INTERVAL", "NATIVE_RENDERABLE", "NATIVE_VISUAL_TYPE", "RENDERABLE_TYPE", "SAMPLE_BUFFERS", "SAMPLES", "STENCIL_SIZE", "SURFACE_TYPE", "TRANSPARENT_TYPE", "TRANSPARENT_RED_VALUE", "TRANSPARENT_GREEN_VALUE", "TRANSPARENT_BLUE_VALUE", "COLOR_COMPONENT_TYPE_EXT" ]), ("SurfaceAttrib", [ "CONFIG_ID", "WIDTH", "HEIGHT", "HORIZONTAL_RESOLUTION", "VERTICAL_RESOLUTION", "LARGEST_PBUFFER", "MIPMAP_TEXTURE", "MIPMAP_LEVEL", "MULTISAMPLE_RESOLVE", "PIXEL_ASPECT_RATIO", "RENDER_BUFFER", "SWAP_BEHAVIOR", "TEXTURE_FORMAT", "TEXTURE_TARGET", "ALPHA_FORMAT", "COLORSPACE" ]), ("YuvOrder", [ "NONE", "YUV_ORDER_YUV_EXT", "YUV_ORDER_YVU_EXT", "YUV_ORDER_YUYV_EXT", "YUV_ORDER_UYVY_EXT", "YUV_ORDER_YVYU_EXT", "YUV_ORDER_VYUY_EXT", "YUV_ORDER_AYUV_EXT", ]), ("YuvPlaneBpp", [ "YUV_PLANE_BPP_0_EXT", "YUV_PLANE_BPP_8_EXT", "YUV_PLANE_BPP_10_EXT", ]), ("ColorComponentType", ["COLOR_COMPONENT_TYPE_FIXED_EXT", "COLOR_COMPONENT_TYPE_FLOAT_EXT"]), ("SurfaceTarget", ["READ", "DRAW"]), # ConfigAttrib values ("ColorBufferType", ["RGB_BUFFER", "LUMINANCE_BUFFER"]), ("ConfigCaveat", ["NONE", "SLOW_CONFIG", "NON_CONFORMANT_CONFIG"]), ("TransparentType", ["NONE", "TRANSPARENT_RGB"]), # SurfaceAttrib values ("MultisampleResolve", ["MULTISAMPLE_RESOLVE_DEFAULT", "MULTISAMPLE_RESOLVE_BOX"]), ("RenderBuffer", ["SINGLE_BUFFER", "BACK_BUFFER"]), ("SwapBehavior", ["BUFFER_DESTROYED", "BUFFER_PRESERVED"]), ("TextureFormat", ["NO_TEXTURE", "TEXTURE_RGB", "TEXTURE_RGBA"]), ("TextureTarget", ["NO_TEXTURE", "TEXTURE_2D"]), ("AlphaFormat", ["ALPHA_FORMAT_NONPRE", "ALPHA_FORMAT_PRE"]), ("Colorspace", ["COLORSPACE_sRGB", "COLORSPACE_LINEAR"]) ] def gen (iface): enumGroups = addValuePrefix(ENUM_GROUPS, "EGL_") bitfieldGroups = addValuePrefix(BITFIELD_GROUPS, "EGL_") prototypeFile = os.path.join(EGL_DIR, "egluStrUtilPrototypes.inl") implFile = os.path.join(EGL_DIR, "egluStrUtil.inl") writeInlFile(prototypeFile, indentLines(genStrUtilProtos(iface, enumGroups, bitfieldGroups))) writeInlFile(implFile, genStrUtilImpls(iface, enumGroups, bitfieldGroups))