diff options
author | Matthew Allum <mallum@polystyrene.(none)> | 2006-07-08 21:10:58 +0100 |
---|---|---|
committer | Matthew Allum <mallum@polystyrene.(none)> | 2006-07-08 21:10:58 +0100 |
commit | e8056218944e873135c93039d1e9646d51364467 (patch) | |
tree | 5b60e0e7bb9f9f6ab30ebb483a01b21c11e3655c /hw | |
parent | 5416f90e9c939027005fc01fa3ce3df56919ae0d (diff) |
Add support to Xephyr for simulating 8bit grayscale.
Diffstat (limited to 'hw')
-rw-r--r-- | hw/kdrive/ephyr/ephyr.c | 22 | ||||
-rw-r--r-- | hw/kdrive/ephyr/ephyrinit.c | 7 |
2 files changed, 22 insertions, 7 deletions
diff --git a/hw/kdrive/ephyr/ephyr.c b/hw/kdrive/ephyr/ephyr.c index a9ea0eb0c..fbb16a465 100644 --- a/hw/kdrive/ephyr/ephyr.c +++ b/hw/kdrive/ephyr/ephyr.c @@ -40,6 +40,8 @@ extern DeviceIntPtr pKdKeyboard; static int mouseState = 0; +Bool EphyrWantGrayScale = 0; + Bool ephyrInitialize (KdCardInfo *card, EphyrPriv *priv) { @@ -80,7 +82,10 @@ ephyrScreenInitialize (KdScreenInfo *screen, EphyrScrPriv *scrpriv) screen->width = width; screen->height = height; } - + + if (EphyrWantGrayScale) + screen->fb[0].depth = 8; + if (screen->fb[0].depth && screen->fb[0].depth != hostx_get_depth()) { if (screen->fb[0].depth < hostx_get_depth() @@ -98,12 +103,15 @@ ephyrScreenInitialize (KdScreenInfo *screen, EphyrScrPriv *scrpriv) if (screen->fb[0].depth <= 8) { - screen->fb[0].visuals = ((1 << StaticGray) | - (1 << GrayScale) | - (1 << StaticColor) | - (1 << PseudoColor) | - (1 << TrueColor) | - (1 << DirectColor)); + if (EphyrWantGrayScale) + screen->fb[0].visuals = ((1 << StaticGray) | (1 << GrayScale)); + else + screen->fb[0].visuals = ((1 << StaticGray) | + (1 << GrayScale) | + (1 << StaticColor) | + (1 << PseudoColor) | + (1 << TrueColor) | + (1 << DirectColor)); screen->fb[0].redMask = 0x00; screen->fb[0].greenMask = 0x00; diff --git a/hw/kdrive/ephyr/ephyrinit.c b/hw/kdrive/ephyr/ephyrinit.c index 58478e690..1aa608e93 100644 --- a/hw/kdrive/ephyr/ephyrinit.c +++ b/hw/kdrive/ephyr/ephyrinit.c @@ -29,6 +29,7 @@ #include "ephyr.h" extern Window EphyrPreExistingHostWin; +extern Bool EphyrWantGrayScale; void InitCard (char *name) @@ -62,6 +63,7 @@ ddxUseMsg (void) ErrorF("-parent XID Use existing window as Xephyr root win\n"); ErrorF("-host-cursor Re-use exisiting X host server cursor\n"); ErrorF("-fullscreen Attempt to run Xephyr fullscreen\n"); + ErrorF("-grayscale Simulate 8bit grayscale\n"); ErrorF("-fakexa Simulate acceleration using software rendering\n"); ErrorF("\n"); @@ -94,6 +96,11 @@ ddxProcessArgument (int argc, char **argv, int i) hostx_use_fullscreen(); return 1; } + else if (!strcmp (argv[i], "-grayscale")) + { + EphyrWantGrayScale = 1; + return 1; + } else if (!strcmp (argv[i], "-fakexa")) { ephyrFuncs.initAccel = ephyrDrawInit; |