Switch to GL_ARB_framebuffer_object
GTK+ 3.0 was currently using GL_EXT_framebuffer_object, which is deprecated as the ARB version has been merged into OpenGL 3.0 as well as OpenGL ES 2.0, and provides laxer requirements.
This commit is contained in:
		| @ -391,7 +391,7 @@ gtk_gl_area_ensure_buffers (GtkGLArea *area) | ||||
|  | ||||
|   priv->have_buffers = TRUE; | ||||
|  | ||||
|   glGenFramebuffersEXT (1, &priv->frame_buffer); | ||||
|   glGenFramebuffers (1, &priv->frame_buffer); | ||||
|  | ||||
|   if (priv->has_alpha) | ||||
|     { | ||||
| @ -402,7 +402,7 @@ gtk_gl_area_ensure_buffers (GtkGLArea *area) | ||||
|       /* Delete old render buffer if any */ | ||||
|       if (priv->render_buffer != 0) | ||||
|         { | ||||
|           glDeleteRenderbuffersEXT(1, &priv->render_buffer); | ||||
|           glDeleteRenderbuffers (1, &priv->render_buffer); | ||||
|           priv->render_buffer = 0; | ||||
|         } | ||||
|     } | ||||
| @ -410,7 +410,7 @@ gtk_gl_area_ensure_buffers (GtkGLArea *area) | ||||
|     { | ||||
|     /* For non-alpha we use render buffers so we can blit instead of texture the result */ | ||||
|       if (priv->render_buffer == 0) | ||||
|         glGenRenderbuffersEXT (1, &priv->render_buffer); | ||||
|         glGenRenderbuffers (1, &priv->render_buffer); | ||||
|  | ||||
|       /* Delete old texture if any */ | ||||
|       if (priv->texture != 0) | ||||
| @ -423,12 +423,12 @@ gtk_gl_area_ensure_buffers (GtkGLArea *area) | ||||
|   if ((priv->has_depth_buffer || priv->has_stencil_buffer)) | ||||
|     { | ||||
|       if (priv->depth_stencil_buffer == 0) | ||||
|         glGenRenderbuffersEXT (1, &priv->depth_stencil_buffer); | ||||
|         glGenRenderbuffers (1, &priv->depth_stencil_buffer); | ||||
|     } | ||||
|   else if (priv->depth_stencil_buffer != 0) | ||||
|     { | ||||
|       /* Delete old depth/stencil buffer */ | ||||
|       glDeleteRenderbuffersEXT (1, &priv->depth_stencil_buffer); | ||||
|       glDeleteRenderbuffers (1, &priv->depth_stencil_buffer); | ||||
|       priv->depth_stencil_buffer = 0; | ||||
|     } | ||||
|  | ||||
| @ -515,23 +515,23 @@ gtk_gl_area_attach_buffers (GtkGLArea *area) | ||||
|   else if (priv->needs_resize) | ||||
|     gtk_gl_area_allocate_buffers (area); | ||||
|  | ||||
|   glBindFramebufferEXT (GL_FRAMEBUFFER_EXT, priv->frame_buffer); | ||||
|   glBindFramebuffer (GL_FRAMEBUFFER, priv->frame_buffer); | ||||
|  | ||||
|   if (priv->texture) | ||||
|     glFramebufferTexture2D (GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, | ||||
|     glFramebufferTexture2D (GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, | ||||
|                             GL_TEXTURE_2D, priv->texture, 0); | ||||
|   else if (priv->render_buffer) | ||||
|     glFramebufferRenderbufferEXT (GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, | ||||
|                                   GL_RENDERBUFFER_EXT, priv->render_buffer); | ||||
|     glFramebufferRenderbuffer (GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, | ||||
|                                GL_RENDERBUFFER, priv->render_buffer); | ||||
|  | ||||
|   if (priv->depth_stencil_buffer) | ||||
|     { | ||||
|       if (priv->has_depth_buffer) | ||||
|         glFramebufferRenderbufferEXT (GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT, | ||||
|                                       GL_RENDERBUFFER_EXT, priv->depth_stencil_buffer); | ||||
|         glFramebufferRenderbuffer (GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, | ||||
|                                    GL_RENDERBUFFER, priv->depth_stencil_buffer); | ||||
|       if (priv->has_stencil_buffer) | ||||
|         glFramebufferRenderbufferEXT (GL_FRAMEBUFFER_EXT, GL_STENCIL_ATTACHMENT_EXT, | ||||
|                                       GL_RENDERBUFFER_EXT, priv->depth_stencil_buffer); | ||||
|         glFramebufferRenderbuffer (GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT, | ||||
|                                    GL_RENDERBUFFER, priv->depth_stencil_buffer); | ||||
|     } | ||||
| } | ||||
|  | ||||
| @ -547,7 +547,7 @@ gtk_gl_area_delete_buffers (GtkGLArea *area) | ||||
|  | ||||
|   if (priv->render_buffer != 0) | ||||
|     { | ||||
|       glDeleteRenderbuffersEXT (1, &priv->render_buffer); | ||||
|       glDeleteRenderbuffers (1, &priv->render_buffer); | ||||
|       priv->render_buffer = 0; | ||||
|     } | ||||
|  | ||||
| @ -559,14 +559,14 @@ gtk_gl_area_delete_buffers (GtkGLArea *area) | ||||
|  | ||||
|   if (priv->depth_stencil_buffer != 0) | ||||
|     { | ||||
|       glDeleteRenderbuffersEXT (1, &priv->depth_stencil_buffer); | ||||
|       glDeleteRenderbuffers (1, &priv->depth_stencil_buffer); | ||||
|       priv->depth_stencil_buffer = 0; | ||||
|     } | ||||
|  | ||||
|   if (priv->frame_buffer != 0) | ||||
|     { | ||||
|       glBindFramebufferEXT (GL_FRAMEBUFFER_EXT, 0); | ||||
|       glDeleteFramebuffersEXT (1, &priv->frame_buffer); | ||||
|       glBindFramebuffer (GL_FRAMEBUFFER, 0); | ||||
|       glDeleteFramebuffers (1, &priv->frame_buffer); | ||||
|       priv->frame_buffer = 0; | ||||
|     } | ||||
| } | ||||
| @ -707,8 +707,8 @@ gtk_gl_area_draw (GtkWidget *widget, | ||||
|   w = gtk_widget_get_allocated_width (widget) * scale; | ||||
|   h = gtk_widget_get_allocated_height (widget) * scale; | ||||
|  | ||||
|   status = glCheckFramebufferStatusEXT (GL_FRAMEBUFFER_EXT); | ||||
|   if (status == GL_FRAMEBUFFER_COMPLETE_EXT) | ||||
|   status = glCheckFramebufferStatus (GL_FRAMEBUFFER); | ||||
|   if (status == GL_FRAMEBUFFER_COMPLETE) | ||||
|     { | ||||
|       if (priv->needs_render || priv->auto_render) | ||||
|         { | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 Emmanuel Gil Peyrot
					Emmanuel Gil Peyrot