diff options
author | Adam Jackson <ajax@redhat.com> | 2021-08-06 17:53:38 -0400 |
---|---|---|
committer | Marge Bot <eric+marge@anholt.net> | 2021-08-18 21:11:02 +0000 |
commit | bfad9e75c0421b6665e35ee9731a71bd50366c68 (patch) | |
tree | 24d3b9f57fa795b991501c69c8967941ba5f5c2e /src/glx | |
parent | 145992890caeb24c02bd358f7a96dc1d8b730626 (diff) | |
download | mesa-bfad9e75c0421b6665e35ee9731a71bd50366c68.tar.gz |
glx: Store the context vtable on the glx screen
Again this is rewriting part of driX_create_context_attribs to be
caller-agnostic, so that we can eventually unify it among the DRI
backends.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12456>
Diffstat (limited to 'src/glx')
-rw-r--r-- | src/glx/dri2_glx.c | 3 | ||||
-rw-r--r-- | src/glx/dri3_glx.c | 3 | ||||
-rw-r--r-- | src/glx/drisw_glx.c | 3 | ||||
-rw-r--r-- | src/glx/glxclient.h | 1 |
4 files changed, 7 insertions, 3 deletions
diff --git a/src/glx/dri2_glx.c b/src/glx/dri2_glx.c index 4247cb7b32c..a3ad50941c9 100644 --- a/src/glx/dri2_glx.c +++ b/src/glx/dri2_glx.c @@ -287,7 +287,7 @@ dri2_create_context_attribs(struct glx_screen *base, if (pcp->driContext == NULL) goto error_exit; - pcp->base.vtable = &dri2_context_vtable; + pcp->base.vtable = base->context_vtable; return &pcp->base; @@ -1275,6 +1275,7 @@ dri2CreateScreen(int screen, struct glx_display * priv) psc->driver_configs = driver_configs; psc->base.vtable = &dri2_screen_vtable; + psc->base.context_vtable = &dri2_context_vtable; psp = &psc->vtable; psc->base.driScreen = psp; psp->destroyScreen = dri2DestroyScreen; diff --git a/src/glx/dri3_glx.c b/src/glx/dri3_glx.c index e73cba6028c..0bccefdb041 100644 --- a/src/glx/dri3_glx.c +++ b/src/glx/dri3_glx.c @@ -330,7 +330,7 @@ dri3_create_context_attribs(struct glx_screen *base, if (pcp->driContext == NULL) goto error_exit; - pcp->base.vtable = &dri3_context_vtable; + pcp->base.vtable = base->context_vtable; return &pcp->base; @@ -988,6 +988,7 @@ dri3_create_screen(int screen, struct glx_display * priv) psc->driver_configs = driver_configs; psc->base.vtable = &dri3_screen_vtable; + psc->base.context_vtable = &dri3_context_vtable; psp = &psc->vtable; psc->base.driScreen = psp; psp->destroyScreen = dri3_destroy_screen; diff --git a/src/glx/drisw_glx.c b/src/glx/drisw_glx.c index 02fd2d5aad7..8c48165bb24 100644 --- a/src/glx/drisw_glx.c +++ b/src/glx/drisw_glx.c @@ -602,7 +602,7 @@ drisw_create_context_attribs(struct glx_screen *base, return NULL; } - pcp->base.vtable = &drisw_context_vtable; + pcp->base.vtable = base->context_vtable; return &pcp->base; } @@ -902,6 +902,7 @@ driswCreateScreen(int screen, struct glx_display *priv) psc->driver_configs = driver_configs; psc->base.vtable = &drisw_screen_vtable; + psc->base.context_vtable = &drisw_context_vtable; psp = &psc->vtable; psc->base.driScreen = psp; psp->destroyScreen = driswDestroyScreen; diff --git a/src/glx/glxclient.h b/src/glx/glxclient.h index 68df42f53b0..9e304b75761 100644 --- a/src/glx/glxclient.h +++ b/src/glx/glxclient.h @@ -502,6 +502,7 @@ struct glx_screen_vtable { struct glx_screen { const struct glx_screen_vtable *vtable; + const struct glx_context_vtable *context_vtable; /** * \name Storage for the GLX vendor, version, and extension strings |