[mutter] cogl: Require {EXT,ARB}_framebuffer_object in the GL driver



commit 452325184925cd8f613d54142001644737715fce
Author: Adam Jackson <ajax redhat com>
Date:   Thu Oct 17 17:24:14 2019 -0400

    cogl: Require {EXT,ARB}_framebuffer_object in the GL driver
    
    This was only promoted to core in 3.0, but Mesa's supported it
    unconditionally since around 7.0 even in 2.1 contexts, so this is not a
    particularly onerous requirement.
    
    https://gitlab.gnome.org/GNOME/mutter/merge_requests/866

 cogl/cogl/driver/gl/gl/cogl-driver-gl.c | 17 +++++++++++------
 1 file changed, 11 insertions(+), 6 deletions(-)
---
diff --git a/cogl/cogl/driver/gl/gl/cogl-driver-gl.c b/cogl/cogl/driver/gl/gl/cogl-driver-gl.c
index 05161824c..d39b986a3 100644
--- a/cogl/cogl/driver/gl/gl/cogl-driver-gl.c
+++ b/cogl/cogl/driver/gl/gl/cogl-driver-gl.c
@@ -407,14 +407,19 @@ _cogl_driver_update_features (CoglContext *ctx,
     COGL_FLAGS_SET (private_features,
                     COGL_PRIVATE_FEATURE_MESA_PACK_INVERT, TRUE);
 
-  if (ctx->glGenRenderbuffers)
+  if (!ctx->glGenRenderbuffers)
     {
-      flags |= COGL_FEATURE_OFFSCREEN;
-      COGL_FLAGS_SET (ctx->features, COGL_FEATURE_ID_OFFSCREEN, TRUE);
-      COGL_FLAGS_SET (private_features,
-                      COGL_PRIVATE_FEATURE_QUERY_FRAMEBUFFER_BITS,
-                      TRUE);
+      g_set_error (error,
+                   COGL_DRIVER_ERROR,
+                   COGL_DRIVER_ERROR_NO_SUITABLE_DRIVER_FOUND,
+                   "Framebuffer objects are required to use the GL driver");
+      return FALSE;
     }
+  flags |= COGL_FEATURE_OFFSCREEN;
+  COGL_FLAGS_SET (ctx->features, COGL_FEATURE_ID_OFFSCREEN, TRUE);
+  COGL_FLAGS_SET (private_features,
+                  COGL_PRIVATE_FEATURE_QUERY_FRAMEBUFFER_BITS,
+                  TRUE);
 
   if (ctx->glBlitFramebuffer)
     COGL_FLAGS_SET (private_features,


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]