On 04/27/2013 04:37 PM, Jordan Justen wrote:
Signed-off-by: Jordan Justen <jordan.l.jus...@intel.com>
---
  src/mapi/glapi/gen/GL3x.xml |    2 +-
  src/mesa/main/fbobject.c    |   17 +++++++++++++++++
  src/mesa/main/fbobject.h    |    4 ++++
  3 files changed, 22 insertions(+), 1 deletion(-)

diff --git a/src/mapi/glapi/gen/GL3x.xml b/src/mapi/glapi/gen/GL3x.xml
index 9ca3d47..5078f7b 100644
--- a/src/mapi/glapi/gen/GL3x.xml
+++ b/src/mapi/glapi/gen/GL3x.xml
@@ -607,7 +607,7 @@
      <param name="params" type="GLint64 *"/>
    </function>

-  <function name="FramebufferTexture" offset="assign" exec="skip">
+  <function name="FramebufferTexture" offset="assign">
      <param name="target" type="GLenum"/>
      <param name="attachment" type="GLenum"/>
      <param name="texture" type="GLuint"/>
diff --git a/src/mesa/main/fbobject.c b/src/mesa/main/fbobject.c
index 419e871..32dcc75 100644
--- a/src/mesa/main/fbobject.c
+++ b/src/mesa/main/fbobject.c
@@ -2402,6 +2402,23 @@ _mesa_FramebufferTextureLayer(GLenum target, GLenum 
attachment,


  void GLAPIENTRY
+_mesa_FramebufferTexture(GLenum target, GLenum attachment,
+                         GLuint texture, GLint level)
+{
+   GET_CURRENT_CONTEXT(ctx);
+
+   if ((_mesa_is_desktop_gl(ctx) && ctx->Version >= 32) ||
+       ctx->Extensions.ARB_geometry_shader4) {

This should be

    if (_mesa_is_desktop_gl(ctx) && (ctx->Version >= 32 ||
         ctx->Extensions.ARB_geometry_shader4))

If a driver sets the ARB_geometry_shader4 bit in an ES context, this function should still generate GL_INVALID_OPERATION.

Actually... is the _mesa_is_desktop_gl check even necessary? This function shouldn't get put in the dispatch table for an ES context at all. Right?

+      framebuffer_texture(ctx, "Layer", target, attachment, 0, texture,
+                          level, 0, GL_TRUE);
+   } else {
+      _mesa_error(ctx, GL_INVALID_OPERATION,
+                  "unsupported function (glFramebufferTexture) called");
+   }
+}
+
+
+void GLAPIENTRY
  _mesa_FramebufferRenderbuffer(GLenum target, GLenum attachment,
                                   GLenum renderbufferTarget,
                                   GLuint renderbuffer)
diff --git a/src/mesa/main/fbobject.h b/src/mesa/main/fbobject.h
index ba013fd..2d88001 100644
--- a/src/mesa/main/fbobject.h
+++ b/src/mesa/main/fbobject.h
@@ -192,6 +192,10 @@ _mesa_FramebufferTextureLayer(GLenum target, GLenum 
attachment,
                                   GLuint texture, GLint level, GLint layer);

  extern void GLAPIENTRY
+_mesa_FramebufferTexture(GLenum target, GLenum attachment,
+                         GLuint texture, GLint level);
+
+extern void GLAPIENTRY
  _mesa_FramebufferRenderbuffer(GLenum target, GLenum attachment,
                                   GLenum renderbuffertarget,
                                   GLuint renderbuffer);


_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to