| # -*- 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()) |