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 23from src_util import * 24 25# Functions that have special implementation 26OVERRIDE_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 "glMapBufferRange", 47 "glCheckFramebufferStatus", 48 "glReadPixels", 49 "glBindBuffer", 50 "glDeleteBuffers" 51]) 52 53NULL_PLATFORM_DIR = os.path.normpath(os.path.join(SCRIPTS_DIR, "..", "..", "framework", "platform", "null")) 54 55def commandDummyImpl (command): 56 if command.name in OVERRIDE_FUNCS: 57 return None 58 template = """ 59GLW_APICALL {returnType} GLW_APIENTRY {commandName} ({paramDecls}) 60{{ 61{body}{maybeReturn} 62}}""" 63 return template.format( 64 returnType = command.type, 65 commandName = command.name, 66 paramDecls = commandParams(command), 67 body = ''.join("\tDE_UNREF(%s);\n" % p.name for p in command.params), 68 maybeReturn = "\n\treturn (%s)0;" % command.type if command.type != 'void' else "") 69 70def commandInitStatement (command): 71 return "gl->%s\t= %s;" % (getFunctionMemberName(command.name), command.name) 72 73def genNullRenderContext (iface): 74 genCommandList(iface, commandInitStatement, 75 directory = NULL_PLATFORM_DIR, 76 filename = "tcuNullRenderContextInitFuncs.inl", 77 align = True) 78 genCommandList(iface, commandDummyImpl, 79 directory = NULL_PLATFORM_DIR, 80 filename = "tcuNullRenderContextFuncs.inl") 81 82if __name__ == "__main__": 83 genNullRenderContext(getHybridInterface()) 84