liyujie
2025-08-28 786ff4f4ca2374bdd9177f2e24b503d43e7a3b93
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# -*- coding: utf-8 -*-
 
#-------------------------------------------------------------------------
# drawElements Quality Program utilities
# --------------------------------------
#
# Copyright 2015 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
#-------------------------------------------------------------------------
 
from src_util import *
 
# Functions that have special implementation
OVERRIDE_FUNCS = set([
   "glGetError",
   "glGetIntegerv",
   "glGetBooleanv",
   "glGetFloatv",
   "glGetString",
   "glGetStringi",
   "glCreateShader",
   "glCreateProgram",
   "glGetShaderiv",
   "glGetProgramiv",
   "glGenTextures",
   "glGenQueries",
   "glGenBuffers",
   "glGenRenderbuffers",
   "glGenFramebuffers",
   "glGenVertexArrays",
   "glGenSamplers",
   "glGenTransformFeedbacks",
   "glGenProgramPipelines",
   "glGetInternalformativ",
   "glMapBufferRange",
   "glCheckFramebufferStatus",
   "glReadPixels",
   "glBindBuffer",
   "glDeleteBuffers",
   "glGetAttribLocation",
])
 
NULL_PLATFORM_DIR = os.path.normpath(os.path.join(SCRIPTS_DIR, "..", "..", "framework", "platform", "null"))
 
def commandDummyImpl (command):
   if command.name in OVERRIDE_FUNCS:
       return None
   template = """
GLW_APICALL {returnType} GLW_APIENTRY {commandName} ({paramDecls})
{{
{body}{maybeReturn}
}}"""
   return template.format(
       returnType    = command.type,
       commandName    = command.name,
       paramDecls    = commandParams(command),
       body        = ''.join("\tDE_UNREF(%s);\n" % p.name for p in command.params),
       maybeReturn = "\n\treturn (%s)0;" % command.type if command.type != 'void' else "")
 
def commandInitStatement (command):
   return "gl->%s\t= %s;" % (getFunctionMemberName(command.name), command.name)
 
def genNullRenderContext (iface):
   genCommandList(iface, commandInitStatement,
                  directory    = NULL_PLATFORM_DIR,
                  filename        = "tcuNullRenderContextInitFuncs.inl",
                  align        = True)
   genCommandList(iface, commandDummyImpl,
                  directory    = NULL_PLATFORM_DIR,
                  filename        = "tcuNullRenderContextFuncs.inl")
 
if __name__ == "__main__":
   genNullRenderContext(getHybridInterface())