diff options
-rw-r--r-- | hw/xwin/InitOutput.c | 1 | ||||
-rw-r--r-- | include/ddxhooks.h | 1 | ||||
-rw-r--r-- | mi/miinitext.c | 11 |
3 files changed, 12 insertions, 1 deletions
diff --git a/hw/xwin/InitOutput.c b/hw/xwin/InitOutput.c index a86e452e1..7b4c835ed 100644 --- a/hw/xwin/InitOutput.c +++ b/hw/xwin/InitOutput.c @@ -216,6 +216,7 @@ ddxMain(void) { /* Initialize DDX-specific hooks */ ddxHooks.ddxBeforeReset = ddxBeforeReset; + ddxHooks.ddxPushProviders = ddxPushProviders; } /* See Porting Layer Definition - p. 57 */ diff --git a/include/ddxhooks.h b/include/ddxhooks.h index 40c87fa70..c67f9e05b 100644 --- a/include/ddxhooks.h +++ b/include/ddxhooks.h @@ -27,6 +27,7 @@ struct _DdxHooks { void (*ddxBeforeReset)(void); + void (*ddxPushProviders)(void); }; typedef struct _DdxHooks DdxHooks; diff --git a/mi/miinitext.c b/mi/miinitext.c index a7441c9a8..20e18687f 100644 --- a/mi/miinitext.c +++ b/mi/miinitext.c @@ -93,6 +93,7 @@ SOFTWARE. #include "extension.h" #include "micmap.h" #include "globals.h" +#include "ddxhooks.h" extern Bool noTestExtensions; @@ -469,7 +470,15 @@ InitExtensions(int argc, char *argv[]) #ifdef GLXEXT if (serverGeneration == 1) - GlxPushProvider(&__glXDRISWRastProvider); + { + GlxPushProvider(&__glXDRISWRastProvider); + + if (ddxHooks.ddxPushProviders) + { + /* a chance for DDX to install providers better than swrast... */ + ddxHooks.ddxPushProviders(); + } + } if (!noGlxExtension) GlxExtensionInit(); #endif } |