• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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