summaryrefslogtreecommitdiffstats
path: root/src/egl/drivers/dri2/platform_wayland.c
diff options
context:
space:
mode:
authorChad Versace <chad.versace@linux.intel.com>2014-01-28 11:41:46 -0800
committerChad Versace <chad.versace@linux.intel.com>2014-03-17 15:36:03 -0700
commit90502b18b2b868250ab7e9189810ca42b3c812a1 (patch)
treed8c18fecf90bdf2665c1cb6e1d14e3e2a81aea0a /src/egl/drivers/dri2/platform_wayland.c
parent38848b6217377064665e28441648352c2688edf3 (diff)
downloadexternal_mesa3d-90502b18b2b868250ab7e9189810ca42b3c812a1.zip
external_mesa3d-90502b18b2b868250ab7e9189810ca42b3c812a1.tar.gz
external_mesa3d-90502b18b2b868250ab7e9189810ca42b3c812a1.tar.bz2
egl/dri2: Move dri2_egl_display virtual funcs to vtbl
dri2_egl_display has only one virtual function, 'authenticate'. Define dri2_egl_display::vtbl and move 'authenticate' there. This prepares for the EGL platform extensions, which will add many more virtual functions to dri2_egl_display. Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
Diffstat (limited to 'src/egl/drivers/dri2/platform_wayland.c')
-rw-r--r--src/egl/drivers/dri2/platform_wayland.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/egl/drivers/dri2/platform_wayland.c b/src/egl/drivers/dri2/platform_wayland.c
index a9c067f..d56630c 100644
--- a/src/egl/drivers/dri2/platform_wayland.c
+++ b/src/egl/drivers/dri2/platform_wayland.c
@@ -952,6 +952,10 @@ dri2_setup_swap_interval(struct dri2_egl_display *dri2_dpy)
}
}
+static struct dri2_egl_display_vtbl dri2_wl_display_vtbl = {
+ .authenticate = dri2_wayland_authenticate,
+};
+
EGLBoolean
dri2_initialize_wayland(_EGLDriver *drv, _EGLDisplay *disp)
{
@@ -1062,7 +1066,6 @@ dri2_initialize_wayland(_EGLDriver *drv, _EGLDisplay *disp)
disp->Extensions.WL_bind_wayland_display = EGL_TRUE;
disp->Extensions.WL_create_wayland_buffer_from_image = EGL_TRUE;
disp->Extensions.EXT_buffer_age = EGL_TRUE;
- dri2_dpy->authenticate = dri2_wayland_authenticate;
disp->Extensions.EXT_swap_buffers_with_damage = EGL_TRUE;
@@ -1070,6 +1073,11 @@ dri2_initialize_wayland(_EGLDriver *drv, _EGLDisplay *disp)
disp->VersionMajor = 1;
disp->VersionMinor = 4;
+ /* Fill vtbl last to prevent accidentally calling virtual function during
+ * initialization.
+ */
+ dri2_dpy->vtbl = &dri2_wl_display_vtbl;
+
return EGL_TRUE;
cleanup_driver: