From 452325184925cd8f613d54142001644737715fce Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Thu, 17 Oct 2019 17:24:14 -0400 Subject: [PATCH] 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,