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 "glGetInternalformativ", 47 "glMapBufferRange", 48 "glCheckFramebufferStatus", 49 "glReadPixels", 50 "glBindBuffer", 51 "glDeleteBuffers", 52 "glGetAttribLocation", 53]) 54 55NULL_PLATFORM_DIR = os.path.normpath(os.path.join(SCRIPTS_DIR, "..", "..", "framework", "platform", "null")) 56 57def commandDummyImpl (command): 58 if command.name in OVERRIDE_FUNCS: 59 return None 60 template = """ 61GLW_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 72def commandInitStatement (command): 73 return "gl->%s\t= %s;" % (getFunctionMemberName(command.name), command.name) 74 75def 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 84if __name__ == "__main__": 85 genNullRenderContext(getHybridInterface()) 86