Home | History | Annotate | Download | only in opengl
      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