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 from src_util import * 24 25 # Functions that have special implementation 26 OVERRIDE_FUNCS = set([ 27 "glGetError", 28 "glGetIntegerv", 29 "glGetBooleanv", 30 "glGetFloatv", 31 "glGetString", 32 "glGetStringi", 33 "glCreateShader", 34 "glCreateProgram", 35 "glGetShaderiv", 36 "glGetProgramiv", 37 "glGenTextures", 38 "glGenQueries", 39 "glGenBuffers", 40 "glGenRenderbuffers", 41 "glGenFramebuffers", 42 "glGenVertexArrays", 43 "glGenSamplers", 44 "glGenTransformFeedbacks", 45 "glGenProgramPipelines", 46 "glGetInternalformativ", 47 "glMapBufferRange", 48 "glCheckFramebufferStatus", 49 "glReadPixels", 50 "glBindBuffer", 51 "glDeleteBuffers", 52 "glGetAttribLocation", 53 ]) 54 55 NULL_PLATFORM_DIR = os.path.normpath(os.path.join(SCRIPTS_DIR, "..", "..", "framework", "platform", "null")) 56 57 def commandDummyImpl (command): 58 if command.name in OVERRIDE_FUNCS: 59 return None 60 template = """ 61 GLW_APICALL {returnType} GLW_APIENTRY {commandName} ({paramDecls}) 62 {{ 63 {body}{maybeReturn} 64 }}""" 65 return template.format( 66 returnType = command.type, 67 commandName = command.name, 68 paramDecls = commandParams(command), 69 body = ''.join("\tDE_UNREF(%s);\n" % p.name for p in command.params), 70 maybeReturn = "\n\treturn (%s)0;" % command.type if command.type != 'void' else "") 71 72 def commandInitStatement (command): 73 return "gl->%s\t= %s;" % (getFunctionMemberName(command.name), command.name) 74 75 def genNullRenderContext (iface): 76 genCommandList(iface, commandInitStatement, 77 directory = NULL_PLATFORM_DIR, 78 filename = "tcuNullRenderContextInitFuncs.inl", 79 align = True) 80 genCommandList(iface, commandDummyImpl, 81 directory = NULL_PLATFORM_DIR, 82 filename = "tcuNullRenderContextFuncs.inl") 83 84 if __name__ == "__main__": 85 genNullRenderContext(getHybridInterface()) 86