Revert "xfree86: Remove -flippixels"

This reverts commit d1c00c859c except
hw/xfree86/common/xf86str.h that was not used by -flipPixels option.
This commit is contained in:
Izumi Tsutsui 2023-04-20 01:17:41 +09:00 committed by Matt Turner
parent 3268a83ae1
commit 15624bb5bc
8 changed files with 62 additions and 3 deletions

View File

@ -79,6 +79,14 @@ extern _X_EXPORT Bool xf86DRI2Enabled(void);
#define XF86SCRNINFO(p) xf86ScreenToScrn(p)
#define XF86FLIP_PIXELS() \
do { \
if (xf86GetFlipPixels()) { \
pScreen->whitePixel = (pScreen->whitePixel) ? 0 : 1; \
pScreen->blackPixel = (pScreen->blackPixel) ? 0 : 1; \
} \
while (0)
#define BOOLTOSTRING(b) ((b) ? "TRUE" : "FALSE")
/* Compatibility functions for pre-input-thread drivers */
@ -278,6 +286,8 @@ xf86GetWeight(void);
extern _X_EXPORT Gamma
xf86GetGamma(void);
extern _X_EXPORT Bool
xf86GetFlipPixels(void);
extern _X_EXPORT Bool
xf86ServerIsExiting(void);
extern _X_EXPORT Bool
xf86ServerIsResetting(void);

View File

@ -188,6 +188,7 @@ int xf86FbBpp = -1;
int xf86Depth = -1;
rgb xf86Weight = { 0, 0, 0 };
Bool xf86FlipPixels = FALSE;
Gamma xf86Gamma = { 0.0, 0.0, 0.0 };
Bool xf86AllowMouseOpenFail = FALSE;

View File

@ -952,8 +952,14 @@ xf86SetDpi(ScrnInfoPtr pScrn, int x, int y)
void
xf86SetBlackWhitePixels(ScreenPtr pScreen)
{
if (xf86FlipPixels) {
pScreen->whitePixel = 0;
pScreen->blackPixel = 1;
}
else {
pScreen->whitePixel = 1;
pScreen->blackPixel = 0;
}
}
/*
@ -1394,6 +1400,12 @@ xf86GetGamma(void)
return xf86Gamma;
}
Bool
xf86GetFlipPixels(void)
{
return xf86FlipPixels;
}
Bool
xf86ServerIsExiting(void)
{

View File

@ -954,6 +954,10 @@ ddxProcessArgument(int argc, char **argv, int i)
xf86ConfigDir = argv[i + 1];
return 2;
}
if (!strcmp(argv[i], "-flipPixels")) {
xf86FlipPixels = TRUE;
return 1;
}
#ifdef XF86VIDMODE
if (!strcmp(argv[i], "-disableVidMode")) {
xf86VidModeDisabled = TRUE;
@ -1233,6 +1237,7 @@ ddxUseMsg(void)
ErrorF
("-pointer name specify the core pointer InputDevice name\n");
ErrorF("-nosilk disable Silken Mouse\n");
ErrorF("-flipPixels swap default black/white Pixel values\n");
#ifdef XF86VIDMODE
ErrorF("-disableVidMode disable mode adjustments with xvidtune\n");
ErrorF

View File

@ -69,6 +69,7 @@ extern _X_EXPORT char *xf86KeyboardName;
extern _X_EXPORT int xf86FbBpp;
extern _X_EXPORT int xf86Depth;
extern _X_EXPORT rgb xf86Weight;
extern _X_EXPORT Bool xf86FlipPixels;
extern _X_EXPORT Gamma xf86Gamma;
/* Other parameters */

View File

@ -1833,6 +1833,7 @@ Some of them are:
xf86Depth -depth from the command line
xf86Weight -weight from the command line
xf86Gamma -{r,g,b,}gamma from the command line
xf86FlipPixels -flippixels from the command line
xf86ProbeOnly -probeonly from the command line
defaultColorVisualClass -cc from the command line
</literallayout>
@ -1893,6 +1894,17 @@ functions:
</para></blockquote>
<blockquote><para>
<programlisting>
Bool xf86GetFlipPixels();
</programlisting>
<blockquote><para>
Returns <constant>TRUE</constant> if <option>-flippixels</option> is
present on the command line, and <constant>FALSE</constant> otherwise.
</para></blockquote>
</para></blockquote>
</sect2>
<sect2>
@ -6002,6 +6014,19 @@ strongly encouraged to improve the consistency of driver behaviour.
</blockquote></para></blockquote>
<blockquote><para>
<programlisting>
void xf86SetBlackWhitePixels(ScrnInfoPtr pScrn);
</programlisting>
<blockquote><para>
This functions sets the <structfield>blackPixel</structfield> and
<structfield>whitePixel</structfield> fields of the <structname>ScrnInfoRec</structname>
according to whether or not the <option>-flipPixels</option> command
line options is present.
</para>
</blockquote></para></blockquote>
<blockquote><para>
<programlisting>
const char *xf86GetVisualName(int visual);

View File

@ -171,6 +171,9 @@ bpp framebuffer rather than the (possibly default) 32 bpp framebuffer
(or vice versa). Legal values are 1, 8, 16, 24, 32. Not all drivers
support all values.
.TP 8
.B \-flipPixels
Swap the default values for the black and white pixels.
.TP 8
.BI \-gamma " value"
Set the gamma correction.
.I value

View File

@ -1314,8 +1314,10 @@ vgaHWInit(ScrnInfoPtr scrninfp, DisplayModePtr mode)
if (depth == 1) {
/* Initialise the Mono map according to which bit-plane gets used */
Bool flipPixels = xf86GetFlipPixels();
for (i = 0; i < 16; i++)
if ((i & (1 << BIT_PLANE)) != 0)
if (((i & (1 << BIT_PLANE)) != 0) != flipPixels)
regp->Attribute[i] = WHITE_VALUE;
else
regp->Attribute[i] = BLACK_VALUE;