blob: 36934335035cb30c86aa5bb716e1171ffb3c14d4 [file] [log] [blame]
Pyry Haulos1abab602014-11-05 17:41:42 -08001# -*- coding: utf-8 -*-
2
Jarkko Pöyry3c77ed42015-01-06 12:54:34 -08003#-------------------------------------------------------------------------
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
Pyry Haulos1abab602014-11-05 17:41:42 -080023from 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",
Jarkko Pöyry48fa5c42015-04-22 19:05:49 -070046 "glGetInternalformativ",
Pyry Haulos1abab602014-11-05 17:41:42 -080047 "glMapBufferRange",
48 "glCheckFramebufferStatus",
49 "glReadPixels",
50 "glBindBuffer",
Jarkko Pöyry48fa5c42015-04-22 19:05:49 -070051 "glDeleteBuffers",
52 "glGetAttribLocation",
Pyry Haulos1abab602014-11-05 17:41:42 -080053])
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())