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 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") #define BOOLTOSTRING(b) ((b) ? "TRUE" : "FALSE")
/* Compatibility functions for pre-input-thread drivers */ /* Compatibility functions for pre-input-thread drivers */
@ -278,6 +286,8 @@ xf86GetWeight(void);
extern _X_EXPORT Gamma extern _X_EXPORT Gamma
xf86GetGamma(void); xf86GetGamma(void);
extern _X_EXPORT Bool extern _X_EXPORT Bool
xf86GetFlipPixels(void);
extern _X_EXPORT Bool
xf86ServerIsExiting(void); xf86ServerIsExiting(void);
extern _X_EXPORT Bool extern _X_EXPORT Bool
xf86ServerIsResetting(void); xf86ServerIsResetting(void);

View File

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

View File

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

View File

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

View File

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

View File

@ -1833,6 +1833,7 @@ Some of them are:
xf86Depth -depth from the command line xf86Depth -depth from the command line
xf86Weight -weight from the command line xf86Weight -weight from the command line
xf86Gamma -{r,g,b,}gamma 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 xf86ProbeOnly -probeonly from the command line
defaultColorVisualClass -cc from the command line defaultColorVisualClass -cc from the command line
</literallayout> </literallayout>
@ -1893,6 +1894,17 @@ functions:
</para></blockquote> </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>
<sect2> <sect2>
@ -6002,6 +6014,19 @@ strongly encouraged to improve the consistency of driver behaviour.
</blockquote></para></blockquote> </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> <blockquote><para>
<programlisting> <programlisting>
const char *xf86GetVisualName(int visual); 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 (or vice versa). Legal values are 1, 8, 16, 24, 32. Not all drivers
support all values. support all values.
.TP 8 .TP 8
.B \-flipPixels
Swap the default values for the black and white pixels.
.TP 8
.BI \-gamma " value" .BI \-gamma " value"
Set the gamma correction. Set the gamma correction.
.I value .I value

View File

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