X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=wrappers%2Fegltrace.py;h=0c7ebb6b1937acedfd657d0bdabdc29e857b5947;hb=48c661ea6c0f2bd9b76a3385cd946b7d07bc9b5f;hp=18058468049154acf0eb2d78d77a9d13368424ed;hpb=ba3756bb4b57746e6c811e4194504e4aae004e3e;p=apitrace diff --git a/wrappers/egltrace.py b/wrappers/egltrace.py index 1805846..0c7ebb6 100644 --- a/wrappers/egltrace.py +++ b/wrappers/egltrace.py @@ -33,7 +33,7 @@ from gltrace import GlTracer -from specs.stdapi import API +from specs.stdapi import Module, API from specs.glapi import glapi from specs.eglapi import eglapi from specs.glesapi import glesapi @@ -81,6 +81,34 @@ class EglTracer(GlTracer): print ' gltrace::releaseContext((uintptr_t)ctx);' print ' }' + if function.name == 'glEGLImageTargetTexture2DOES': + print ' image_info *info = _EGLImageKHR_get_image_info(target, image);' + print ' if (info) {' + print ' GLint level = 0;' + print ' GLint internalformat = info->internalformat;' + print ' GLsizei width = info->width;' + print ' GLsizei height = info->height;' + print ' GLint border = 0;' + print ' GLenum format = info->format;' + print ' GLenum type = info->type;' + print ' const GLvoid * pixels = info->pixels;' + self.emitFakeTexture2D() + print ' _EGLImageKHR_free_image_info(info);' + print ' }' + + def emitFakeTexture2D(self): + function = glapi.getFunctionByName('glTexImage2D') + instances = function.argNames() + print ' unsigned _fake_call = trace::localWriter.beginEnter(&_%s_sig);' % (function.name,) + for arg in function.args: + assert not arg.output + self.serializeArg(function, arg) + print ' trace::localWriter.endEnter();' + print ' trace::localWriter.beginLeave(_fake_call);' + print ' trace::localWriter.endLeave();' + + + if __name__ == '__main__': print '#include ' print '#include ' @@ -94,12 +122,15 @@ if __name__ == '__main__': print print '#include "glproc.hpp"' print '#include "glsize.hpp"' + print '#include "eglsize.hpp"' print + module = Module() + module.mergeModule(eglapi) + module.mergeModule(glapi) + module.mergeModule(glesapi) api = API() - api.addApi(eglapi) - api.addApi(glapi) - api.addApi(glesapi) + api.addModule(module) tracer = EglTracer() tracer.traceApi(api)