Home | History | Annotate | Download | only in egl
      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 
     23 import os
     24 import string
     25 
     26 from common import *
     27 from khr_util.format import indentLines, normalizeConstant
     28 
     29 TYPED_VALUES = [
     30 	"EGL_DONT_CARE",
     31 	"EGL_UNKNOWN",
     32 	"EGL_NO_CONTEXT",
     33 	"EGL_NO_DISPLAY",
     34 	"EGL_DEFAULT_DISPLAY",
     35 	"EGL_NO_SURFACE",
     36 	"EGL_NO_IMAGE",
     37 	"EGL_NO_SYNC",
     38 	"EGL_NO_IMAGE_KHR",
     39 	"EGL_NO_SYNC_KHR"
     40 ]
     41 
     42 def enumValue (enum, typePrefix = ""):
     43 	if enum.name in TYPED_VALUES:
     44           # incoming is EGL_CAST(<type>, <value>)
     45           n,v = enum.value.split(",", 1)
     46           # output is ((<typePrefix>::<type>)<value>)
     47           return "((%s%s)%s" % (typePrefix, n.replace("EGL_CAST(", ""), v)
     48 
     49 	else:
     50 		return normalizeConstant(enum.value)
     51 
     52 def enumDefinition (enum):
     53 	return "#define %s\t%s" % (enum.name, enumValue(enum, "eglw::"))
     54 
     55 def gen (iface):
     56 	writeInlFile(os.path.join(EGL_WRAPPER_DIR, "eglwEnums.inl"), indentLines(map(enumDefinition, iface.enums)))
     57