xref: /aosp_15_r20/external/deqp/scripts/opengl/gen_null_render_context.py (revision 35238bce31c2a825756842865a792f8cf7f89930)
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