From 1c6f660c604fba7cac82e35a368aac01f5b813b6 Mon Sep 17 00:00:00 2001 From: David Reveman Date: Fri, 30 May 2008 23:45:21 -0400 Subject: [PATCH] Make number of RANDR outputs and crtcs for each back-end display configurable. --- hw/dmx/dmx.h | 4 ++++ hw/dmx/dmxinit.c | 17 +++++++++++++++++ hw/dmx/dmxscrinit.c | 2 -- 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/hw/dmx/dmx.h b/hw/dmx/dmx.h index 8648d4d7f..80908b8d0 100644 --- a/hw/dmx/dmx.h +++ b/hw/dmx/dmx.h @@ -330,6 +330,10 @@ extern Bool dmxIgnoreBadFontPaths; /**< True if bad font extern Bool dmxAddRemoveScreens; /**< True if add and * remove screens support * is enabled */ +#ifdef RANDR +extern int xRROutputsPerScreen; +extern int xRRCrtcsPerScreen; +#endif /** Wrap screen or GC function pointer */ #define DMX_WRAP(_entry, _newfunc, _saved, _actual) \ diff --git a/hw/dmx/dmxinit.c b/hw/dmx/dmxinit.c index 4b6cba09b..25f6e5c45 100644 --- a/hw/dmx/dmxinit.c +++ b/hw/dmx/dmxinit.c @@ -126,6 +126,11 @@ int dmxLaunchIndex = 0; Bool dmxVnc = FALSE; #endif +#ifdef RANDR +int xRROutputsPerScreen = 2; +int xRRCrtcsPerScreen = 2; +#endif + #include static void @@ -1090,6 +1095,14 @@ int ddxProcessArgument(int argc, char *argv[], int i) } else if (!strcmp(argv[i], "-novnc")) { dmxVnc = FALSE; retval = 1; +#endif +#ifdef RANDR + } else if (!strcmp(argv[i], "-outputs")) { + if (++i < argc) xRROutputsPerScreen = atoi(argv[i]); + retval = 2; + } else if (!strcmp(argv[i], "-crtcs")) { + if (++i < argc) xRRCrtcsPerScreen = atoi(argv[i]); + retval = 2; #endif } else if (!strcmp(argv[i], "-param")) { if ((i += 2) < argc) { @@ -1153,6 +1166,10 @@ void ddxUseMsg(void) ErrorF("-noaddremovescreens Disable dynamic screen addition/removal\n"); #ifdef DMXVNC ErrorF("-vnc Enable VNC\n"); +#endif +#ifdef RANDR + ErrorF("-outputs num RANDR outputs for each back-end display\n"); + ErrorF("-crtcs num RANDR crtcs for each back-end display\n"); #endif ErrorF("-param ... Specify configuration parameters (e.g.,\n"); ErrorF(" XkbRules, XkbModel, XkbLayout, etc.)\n"); diff --git a/hw/dmx/dmxscrinit.c b/hw/dmx/dmxscrinit.c index 4b16d9076..d1b602a2a 100644 --- a/hw/dmx/dmxscrinit.c +++ b/hw/dmx/dmxscrinit.c @@ -94,8 +94,6 @@ DevPrivateKey dmxGlyphSetPrivateKey = &dmxGlyphSetPrivateKeyIndex; /**< Private #ifdef RANDR static int xRROutputsForFirstScreen = 1; static int xRRCrtcsForFirstScreen = 1; -static int xRROutputsPerScreen = 2; -static int xRRCrtcsPerScreen = 2; static DMXScreenInfo * dmxRRGetScreenForCrtc (ScreenPtr pScreen,