OSDN Git Service

implement EGL_TEXTURE_EXTERNAL_OES in libagl
authorMathias Agopian <mathias@google.com>
Thu, 18 Aug 2011 23:26:21 +0000 (16:26 -0700)
committerMathias Agopian <mathias@google.com>
Thu, 18 Aug 2011 23:26:21 +0000 (16:26 -0700)
this allows the emulator to display some graphics

Change-Id: Ib4671ad70b8df598d02307f2b9c5b843421cea25

opengl/libagl/state.cpp
opengl/libagl/texture.cpp

index 8b4136a..90e9612 100644 (file)
@@ -191,6 +191,9 @@ static void enable_disable(ogles_context_t* c, GLenum cap, int enabled)
         // these need to fall through into the rasterizer
         c->rasterizer.procs.enableDisable(c, cap, enabled);
         break;
+    case GL_TEXTURE_EXTERNAL_OES:
+        c->rasterizer.procs.enableDisable(c, GL_TEXTURE_2D, enabled);
+        break;
 
     case GL_MULTISAMPLE:
     case GL_SAMPLE_ALPHA_TO_COVERAGE:
index 8eb17c4..88e8651 100644 (file)
@@ -633,7 +633,7 @@ void generateMipmap(ogles_context_t* c, GLint level)
 static void texParameterx(
         GLenum target, GLenum pname, GLfixed param, ogles_context_t* c)
 {
-    if (target != GL_TEXTURE_2D) {
+    if (target != GL_TEXTURE_2D && target != GL_TEXTURE_EXTERNAL_OES) {
         ogles_error(c, GL_INVALID_ENUM);
         return;
     }
@@ -866,7 +866,7 @@ void glActiveTexture(GLenum texture)
 void glBindTexture(GLenum target, GLuint texture)
 {
     ogles_context_t* c = ogles_context_t::get();
-    if (target != GL_TEXTURE_2D) {
+    if (target != GL_TEXTURE_2D && target != GL_TEXTURE_EXTERNAL_OES) {
         ogles_error(c, GL_INVALID_ENUM);
         return;
     }
@@ -1012,7 +1012,7 @@ void glTexParameteriv(
         GLenum target, GLenum pname, const GLint* params)
 {
     ogles_context_t* c = ogles_context_t::get();
-    if (target != GGL_TEXTURE_2D) {
+    if (target != GL_TEXTURE_2D && target != GL_TEXTURE_EXTERNAL_OES) {
         ogles_error(c, GL_INVALID_ENUM);
         return;
     }
@@ -1605,7 +1605,7 @@ void glDrawTexxOES(GLfixed x, GLfixed y, GLfixed z, GLfixed w, GLfixed h) {
 void glEGLImageTargetTexture2DOES(GLenum target, GLeglImageOES image)
 {
     ogles_context_t* c = ogles_context_t::get();
-    if (target != GL_TEXTURE_2D) {
+    if (target != GL_TEXTURE_2D && target != GL_TEXTURE_EXTERNAL_OES) {
         ogles_error(c, GL_INVALID_ENUM);
         return;
     }