Add CTS_ARB_gl_spirv test implementation
[platform/upstream/VK-GL-CTS.git] / scripts / opengl / gen_null_render_context.py
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())