evas_gl: fix glGetFramebufferAttachmentParameteriv wrapper 94/151594/4
authorDaekwang Ryu <dkdk.ryu@samsung.com>
Thu, 21 Sep 2017 08:01:58 +0000 (17:01 +0900)
committerDaekwang Ryu <dkdk.ryu@samsung.com>
Wed, 11 Oct 2017 05:27:29 +0000 (14:27 +0900)
Change-Id: I6fd1a047310e0c692a20760200d9c19a1097d301

src/modules/evas/engines/gl_common/evas_gl_api.c

index 1ae715d..2aeb40d 100644 (file)
@@ -1214,21 +1214,35 @@ _evgl_glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GL
           }
         else if (ctx->version == EVAS_GL_GLES_3_X)
           {
-             if (target == GL_DRAW_FRAMEBUFFER || target == GL_FRAMEBUFFER)
+             if (((target == GL_DRAW_FRAMEBUFFER || target == GL_FRAMEBUFFER) && (ctx->current_draw_fbo == 0))
+                 || (target == GL_READ_FRAMEBUFFER && ctx->current_read_fbo == 0))
                {
-                  if (ctx->current_draw_fbo == 0 && attachment == GL_BACK)
+                  if (pname == GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME)
                     {
-                       EVGL_TH(glGetFramebufferAttachmentParameteriv, target, GL_COLOR_ATTACHMENT0, pname, params);
+                       SET_GL_ERROR(GL_INVALID_ENUM);
                        return;
                     }
-               }
-             else if (target == GL_READ_FRAMEBUFFER)
-               {
-                  if (ctx->current_read_fbo == 0 && attachment == GL_BACK)
+
+                  if (attachment == GL_BACK)
                     {
                        EVGL_TH(glGetFramebufferAttachmentParameteriv, target, GL_COLOR_ATTACHMENT0, pname, params);
                        return;
                     }
+                  else if (attachment == GL_DEPTH)
+                    {
+                       EVGL_TH(glGetFramebufferAttachmentParameteriv, target, GL_DEPTH_ATTACHMENT, pname, params);
+                       return;
+                    }
+                  else if (attachment == GL_STENCIL)
+                    {
+                       EVGL_TH(glGetFramebufferAttachmentParameteriv, target, GL_STENCIL_ATTACHMENT, pname, params);
+                       return;
+                    }
+                  else
+                    {
+                       SET_GL_ERROR(GL_INVALID_ENUM);
+                       return;
+                    }
                }
           }
      }