gbm: cleanup __DRI*extension handling

Use designated initialisers, store all extension pointers as const and use
a const __DRIextensions array over assigning each element individually.

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
This commit is contained in:
Emil Velikov 2014-03-16 00:26:53 +00:00
parent c812557a0e
commit 5457caa58c
2 changed files with 18 additions and 14 deletions

View file

@ -125,12 +125,13 @@ image_get_buffers(__DRIdrawable *driDrawable,
}
static const __DRIuseInvalidateExtension use_invalidate = {
{ __DRI_USE_INVALIDATE, 1 }
.base = { __DRI_USE_INVALIDATE, 1 }
};
static const __DRIimageLookupExtension image_lookup_extension = {
{ __DRI_IMAGE_LOOKUP, 1 },
dri_lookup_egl_image
.base = { __DRI_IMAGE_LOOKUP, 1 },
.lookupEGLImage = dri_lookup_egl_image
};
static const __DRIdri2LoaderExtension dri2_loader_extension = {
@ -148,6 +149,13 @@ static const __DRIimageLoaderExtension image_loader_extension = {
.flushFrontBuffer = dri_flush_front_buffer,
};
static const __DRIextension *gbm_dri_screen_extensions[] = {
&image_lookup_extension.base,
&use_invalidate.base,
&dri2_loader_extension.base,
&image_loader_extension.base,
NULL,
};
struct dri_extension_match {
const char *name;
@ -285,11 +293,7 @@ dri_screen_create(struct gbm_dri_device *dri)
return ret;
};
dri->extensions[0] = &image_lookup_extension.base;
dri->extensions[1] = &use_invalidate.base;
dri->extensions[2] = &dri2_loader_extension.base;
dri->extensions[3] = &image_loader_extension.base;
dri->extensions[4] = NULL;
dri->extensions = gbm_dri_screen_extensions;
if (dri->dri2 == NULL)
return -1;

View file

@ -44,14 +44,14 @@ struct gbm_dri_device {
__DRIscreen *screen;
__DRIcoreExtension *core;
__DRIdri2Extension *dri2;
__DRIimageExtension *image;
__DRI2flushExtension *flush;
__DRIdri2LoaderExtension *loader;
const __DRIcoreExtension *core;
const __DRIdri2Extension *dri2;
const __DRIimageExtension *image;
const __DRI2flushExtension *flush;
const __DRIdri2LoaderExtension *loader;
const __DRIconfig **driver_configs;
const __DRIextension *extensions[5];
const __DRIextension **extensions;
const __DRIextension **driver_extensions;
__DRIimage *(*lookup_image)(__DRIscreen *screen, void *image, void *data);