summaryrefslogtreecommitdiff
path: root/include/GL/internal/dri_interface.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/GL/internal/dri_interface.h')
-rw-r--r--include/GL/internal/dri_interface.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/include/GL/internal/dri_interface.h b/include/GL/internal/dri_interface.h
index aa2b1cf805..ee73233771 100644
--- a/include/GL/internal/dri_interface.h
+++ b/include/GL/internal/dri_interface.h
@@ -56,10 +56,25 @@ typedef struct __DRIdriverRec __DRIdriver;
typedef struct __DRIframebufferRec __DRIframebuffer;
typedef struct __DRIversionRec __DRIversion;
typedef struct __DRIinterfaceMethodsRec __DRIinterfaceMethods;
+
+typedef struct __DRIextensionRec __DRIextension;
/*@}*/
/**
+ * Extension struct. Drivers 'inherit' from this struct by embedding
+ * it as the first element in the extension struct. The
+ * __DRIscreen::getExtensions entry point will return a list of these
+ * structs and the loader can use the extensions it knows about by
+ * casting it to a more specific extension and optionally advertising
+ * the GLX extension. See below for examples.
+ */
+struct __DRIextensionRec {
+ const char *name;
+};
+
+
+/**
* \name Functions provided by the driver loader.
*/
/*@{*/
@@ -275,6 +290,11 @@ struct __DRIscreenRec {
void (*destroyScreen)(__DRIscreen *screen);
/**
+ * Method to get screen extensions.
+ */
+ const __DRIextension **(*getExtensions)(__DRIscreen *screen);
+
+ /**
* Method to create the private DRI drawable data and initialize the
* drawable dependent methods.
*/