From 5d871996431e33b0d64ad9158e040e46770b6ee4 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Thu, 26 Sep 2002 02:56:48 +0000 Subject: [PATCH] Add image transformation and sub-pixel ordering to Render --- hw/kdrive/src/kdrive.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/hw/kdrive/src/kdrive.c b/hw/kdrive/src/kdrive.c index e54eab7fb..e068fd18b 100644 --- a/hw/kdrive/src/kdrive.c +++ b/hw/kdrive/src/kdrive.c @@ -49,6 +49,7 @@ unsigned long kdVideoTestTime; Bool kdEmulateMiddleButton; Bool kdDisableZaphod; Bool kdEnabled; +int kdSubpixelOrder; Bool kdSwitchPending; DDXPointRec kdOrigin; @@ -583,6 +584,23 @@ KdParseMouse (char *arg) } } +void +KdParseRgba (char *rgba) +{ + if (!strcmp (rgba, "rgb")) + kdSubpixelOrder = SubPixelHorizontalRGB; + else if (!strcmp (rgba, "bgr")) + kdSubpixelOrder = SubPixelHorizontalBGR; + else if (!strcmp (rgba, "vrgb")) + kdSubpixelOrder = SubPixelVerticalRGB; + else if (!strcmp (rgba, "vbgr")) + kdSubpixelOrder = SubPixelVerticalBGR; + else if (!strcmp (rgba, "none")) + kdSubpixelOrder = SubPixelNone; + else + kdSubpixelOrder = SubPixelUnknown; +} + int KdProcessArgument (int argc, char **argv, int i) { @@ -674,6 +692,14 @@ KdProcessArgument (int argc, char **argv, int i) UseMsg (); return 2; } + if (!strcmp (argv[i], "-rgba")) + { + if ((i+1) < argc) + KdParseRgba (argv[i+1]); + else + UseMsg (); + return 2; + } #ifdef PSEUDO8 return p8ProcessArgument (argc, argv, i); #else @@ -999,6 +1025,8 @@ KdScreenInit(int index, ScreenPtr pScreen, int argc, char **argv) return FALSE; } + PictureSetSubpixelOrder (pScreen, kdSubpixelOrder); + /* * Enable the hardware */