summaryrefslogtreecommitdiffstats
path: root/src/egl/drivers/dri2/platform_x11_dri3.c
diff options
context:
space:
mode:
authorMartin Peres <martin.peres@linux.intel.com>2016-10-06 17:07:22 +0300
committerMartin Peres <martin.peres@linux.intel.com>2016-10-07 11:11:44 +0300
commit0247e5ee3edd546b8598082d5b45d110f61853d0 (patch)
tree428c1747d1b7fb8a49569c9bde6a0e2ffec63e96 /src/egl/drivers/dri2/platform_x11_dri3.c
parent82b4f1c47b1d6ca326dbd863253d89337f565309 (diff)
downloadexternal_mesa3d-0247e5ee3edd546b8598082d5b45d110f61853d0.zip
external_mesa3d-0247e5ee3edd546b8598082d5b45d110f61853d0.tar.gz
external_mesa3d-0247e5ee3edd546b8598082d5b45d110f61853d0.tar.bz2
loader/dri3: add get_dri_screen() to the vtable
This allows querying the current active screen from the loader's common code. Cc: mesa-stable@lists.freedesktop.org Reviewed-by: Emil Velikov <emil.velikov@collabora.com> Signed-off-by: Martin Peres <martin.peres@linux.intel.com>
Diffstat (limited to 'src/egl/drivers/dri2/platform_x11_dri3.c')
-rw-r--r--src/egl/drivers/dri2/platform_x11_dri3.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/egl/drivers/dri2/platform_x11_dri3.c b/src/egl/drivers/dri2/platform_x11_dri3.c
index 31649fe..d93f5bc 100644
--- a/src/egl/drivers/dri2/platform_x11_dri3.c
+++ b/src/egl/drivers/dri2/platform_x11_dri3.c
@@ -103,6 +103,17 @@ egl_dri3_get_dri_context(struct loader_dri3_drawable *draw)
return dri2_ctx->dri_context;
}
+static __DRIscreen *
+egl_dri3_get_dri_screen(struct loader_dri3_drawable *draw)
+{
+ _EGLContext *ctx = _eglGetCurrentContext();
+ struct dri2_egl_context *dri2_ctx;
+ if (!ctx)
+ return NULL;
+ dri2_ctx = dri2_egl_context(ctx);
+ return dri2_egl_display(dri2_ctx->base.Resource.Display)->dri_screen;
+}
+
static void
egl_dri3_flush_drawable(struct loader_dri3_drawable *draw, unsigned flags)
{
@@ -119,6 +130,7 @@ static struct loader_dri3_vtable egl_dri3_vtable = {
.set_drawable_size = egl_dri3_set_drawable_size,
.in_current_context = egl_dri3_in_current_context,
.get_dri_context = egl_dri3_get_dri_context,
+ .get_dri_screen = egl_dri3_get_dri_screen,
.flush_drawable = egl_dri3_flush_drawable,
.show_fps = NULL,
};