gallium/osmesa: Fix the inability to set no context as current.
authorHal Gentz <zegentzy@protonmail.com>
Sun, 15 Sep 2019 21:29:50 +0000 (15:29 -0600)
committerHal Gentz <zegentzy@protonmail.com>
Fri, 20 Sep 2019 20:04:12 +0000 (14:04 -0600)
Currently there is no way to make no context current w/gallium + osmesa.
The non-gallium version of osmesa does this if the context and buffer
passed to `OSMesaMakeCurrent` are both null. This small change makes it
so that this is also the case with the gallium version.

Cc: mesa-stable@lists.freedesktop.org
Signed-off-by: Hal Gentz <zegentzy@protonmail.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
src/gallium/state_trackers/osmesa/osmesa.c

index 4660a53bfd23c18408abac8caa8d48612e8fd66d..8225860dfa8cae1bf01ecc401359c5c0c6e82fe2 100644 (file)
@@ -770,6 +770,11 @@ OSMesaMakeCurrent(OSMesaContext osmesa, void *buffer, GLenum type,
    struct osmesa_buffer *osbuffer;
    enum pipe_format color_format;
 
+   if (!osmesa && !buffer) {
+      stapi->make_current(stapi, NULL, NULL, NULL);
+      return GL_TRUE;
+   }
+
    if (!osmesa || !buffer || width < 1 || height < 1) {
       return GL_FALSE;
    }