]> git.cworth.org Git - apitrace/blobdiff - retrace/glretrace_egl.cpp
egl: EGL image trace support
[apitrace] / retrace / glretrace_egl.cpp
index 70fe3546835e704aa00ec1687025758a864fdf5d..72368a9ccfe1ee7b19c8bd6006c2189f690548a0 100644 (file)
@@ -32,6 +32,7 @@
 #include "retrace.hpp"
 #include "glretrace.hpp"
 #include "os.hpp"
+#include "eglsize.hpp"
 
 #ifndef EGL_OPENGL_ES_API
 #define EGL_OPENGL_ES_API              0x30A0
@@ -224,6 +225,23 @@ static void retrace_eglSwapBuffers(trace::Call &call) {
     }
 }
 
+static void retrace_glEGLImageTargetTexture2DOES(trace::Call &call)
+{
+    EGLenum target = call.arg(0).toUInt();
+    struct image_blob *iblob;
+    struct image_info *info;
+
+    if (target != GL_TEXTURE_2D) {
+        os::log("%s: target %d not supported\n", __func__, target);
+        return;
+    }
+    iblob = static_cast<struct image_blob *>((call.arg(1)).toPointer());
+    info = &iblob->info;
+
+    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, info->width, info->height, 0,
+                 GL_RGBA, GL_UNSIGNED_BYTE, iblob->data);
+}
+
 const retrace::Entry glretrace::egl_callbacks[] = {
     {"eglGetError", &retrace::ignore},
     {"eglGetDisplay", &retrace::ignore},
@@ -259,5 +277,7 @@ const retrace::Entry glretrace::egl_callbacks[] = {
     {"eglSwapBuffers", &retrace_eglSwapBuffers},
     //{"eglCopyBuffers", &retrace::ignore},
     {"eglGetProcAddress", &retrace::ignore},
+    {"eglCreateImageKHR", &retrace::ignore},
+    {"glEGLImageTargetTexture2DOES", &retrace_glEGLImageTargetTexture2DOES},
     {NULL, NULL},
 };