OSDN Git Service

Create EGL image targets from client objects.
authorNicolas Capens <capn@google.com>
Mon, 23 Nov 2015 22:13:00 +0000 (17:13 -0500)
committerNicolas Capens <capn@google.com>
Fri, 27 Nov 2015 21:57:25 +0000 (16:57 -0500)
Bug 24517776

Change-Id: I90c724e8c882c8686391d5cfb7a6e1977edbaf21

system/GLESv1/gl.cpp
system/GLESv1_enc/GLEncoder.h
system/GLESv2/gl2.cpp
system/GLESv2_enc/GL2Encoder.h

index 1e51e52..77db3fc 100644 (file)
@@ -76,13 +76,12 @@ void glEGLImageTargetTexture2DOES(void * self, GLenum target, GLeglImageOES img)
         rcEnc->rcBindTexture(rcEnc,
                 ((cb_handle_t *)(native_buffer->handle))->hostHandle);
         ctx->restore2DTextureTarget();
-
-        return;
     }
     else if (image->target == EGL_GL_TEXTURE_2D_KHR) {
-        // TODO
-
-        return;
+        GET_CONTEXT;
+        ctx->override2DTextureTarget(target);
+        ctx->m_glEGLImageTargetTexture2DOES_enc(self, target, (GLeglImageOES)image->host_egl_image);
+        ctx->restore2DTextureTarget();
     }
 }
 
@@ -140,6 +139,7 @@ const GLubyte *my_glGetString (void *self, GLenum name)
 void init()
 {
     GET_CONTEXT;
+    ctx->m_glEGLImageTargetTexture2DOES_enc = ctx->glEGLImageTargetTexture2DOES;
     ctx->glEGLImageTargetTexture2DOES = &glEGLImageTargetTexture2DOES;
     ctx->glEGLImageTargetRenderbufferStorageOES = &glEGLImageTargetRenderbufferStorageOES;
     ctx->glGetString = &my_glGetString;
index 3c794f2..6db318f 100644 (file)
@@ -145,5 +145,9 @@ private:
     static void s_glTexParameterx(void* self, GLenum target, GLenum pname, GLfixed param);
     static void s_glTexParameteriv(void* self, GLenum target, GLenum pname, const GLint* params);
     static void s_glTexParameterxv(void* self, GLenum target, GLenum pname, const GLfixed* params);
+
+public:
+    glEGLImageTargetTexture2DOES_client_proc_t m_glEGLImageTargetTexture2DOES_enc;
+
 };
 #endif
index 836c824..29a662b 100644 (file)
@@ -76,13 +76,12 @@ void glEGLImageTargetTexture2DOES(void * self, GLenum target, GLeglImageOES img)
         ctx->override2DTextureTarget(target);
         rcEnc->rcBindTexture(rcEnc, ((cb_handle_t *)(native_buffer->handle))->hostHandle);
         ctx->restore2DTextureTarget();
-
-        return;
     }
     else if (image->target == EGL_GL_TEXTURE_2D_KHR) {
-        // TODO
-
-        return;
+        GET_CONTEXT;
+        ctx->override2DTextureTarget(target);
+        ctx->m_glEGLImageTargetTexture2DOES_enc(self, target, (GLeglImageOES)image->host_egl_image);
+        ctx->restore2DTextureTarget();
     }
 }
 
@@ -138,6 +137,7 @@ const GLubyte *my_glGetString (void *self, GLenum name)
 void init()
 {
     GET_CONTEXT;
+    ctx->m_glEGLImageTargetTexture2DOES_enc = ctx->glEGLImageTargetTexture2DOES;
     ctx->glEGLImageTargetTexture2DOES = &glEGLImageTargetTexture2DOES;
     ctx->glEGLImageTargetRenderbufferStorageOES = &glEGLImageTargetRenderbufferStorageOES;
     ctx->glGetString = &my_glGetString;
index 21e7932..94aca3b 100644 (file)
@@ -235,5 +235,8 @@ private:
             GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type,
             const GLvoid* pixels);
 
+public:
+    glEGLImageTargetTexture2DOES_client_proc_t m_glEGLImageTargetTexture2DOES_enc;
+
 };
 #endif