mirror of
https://github.com/AppleWin/AppleWin.git
synced 2025-01-11 21:29:43 +00:00
Tweaked Monochrome Half Pixel Fake
This commit is contained in:
parent
310814d1e4
commit
d341c692f2
@ -279,8 +279,8 @@ static bool bVideoScannerNTSC = true; // NTSC video scanning (or PAL)
|
|||||||
void DrawMonoLoResSource ();
|
void DrawMonoLoResSource ();
|
||||||
void DrawMonoTextSource (HDC dc);
|
void DrawMonoTextSource (HDC dc);
|
||||||
// Monochrome Half-Pixel Support
|
// Monochrome Half-Pixel Support
|
||||||
void CreateColorLookup_MonoHiResHalfPixel_50();
|
|
||||||
void CreateColorLookup_MonoHiResHalfPixel_75();
|
void CreateColorLookup_MonoHiResHalfPixel_75();
|
||||||
|
void CreateColorLookup_MonoHiResHalfPixel_95();
|
||||||
void CreateColorLookup_MonoHiResHalfPixel_Emboss();
|
void CreateColorLookup_MonoHiResHalfPixel_Emboss();
|
||||||
void CreateColorLookup_MonoHiResHalfPixel_Fake();
|
void CreateColorLookup_MonoHiResHalfPixel_Fake();
|
||||||
|
|
||||||
@ -609,9 +609,10 @@ void CreateDIBSections ()
|
|||||||
case VT_MONO_AMBER :
|
case VT_MONO_AMBER :
|
||||||
case VT_MONO_GREEN :
|
case VT_MONO_GREEN :
|
||||||
case VT_MONO_WHITE : DrawMonoHiResSource(); break;
|
case VT_MONO_WHITE : DrawMonoHiResSource(); break;
|
||||||
case VT_MONO_HALFPIXEL_50 : CreateColorLookup_MonoHiResHalfPixel_50(); break;
|
case VT_MONO_HALFPIXEL_75 : CreateColorLookup_MonoHiResHalfPixel_75(); break;
|
||||||
case VT_MONO_HALFPIXEL_95 : CreateColorLookup_MonoHiResHalfPixel_75(); break;
|
case VT_MONO_HALFPIXEL_95 : CreateColorLookup_MonoHiResHalfPixel_95(); break;
|
||||||
case VT_MONO_HALFPIXEL_EMBOSS: CreateColorLookup_MonoHiResHalfPixel_Emboss(); break;
|
case VT_MONO_HALFPIXEL_EMBOSS: CreateColorLookup_MonoHiResHalfPixel_Emboss(); break;
|
||||||
|
case VT_MONO_HALFPIXEL_FAKE : CreateColorLookup_MonoHiResHalfPixel_Fake(); break;
|
||||||
default: DrawMonoHiResSource();
|
default: DrawMonoHiResSource();
|
||||||
}
|
}
|
||||||
DrawMonoDHiResSource();
|
DrawMonoDHiResSource();
|
||||||
@ -1164,8 +1165,9 @@ void DrawMonoHiResSource ()
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// This matches half-pixel exactly
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
void CreateColorLookup_MonoHiResHalfPixel_50 ()
|
void CreateColorLookup_MonoHiResHalfPixel_75 ()
|
||||||
{
|
{
|
||||||
int iMonochrome = GetMonochromeIndex();
|
int iMonochrome = GetMonochromeIndex();
|
||||||
|
|
||||||
@ -1237,7 +1239,7 @@ void CreateColorLookup_MonoHiResHalfPixel_50 ()
|
|||||||
|
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
void CreateColorLookup_MonoHiResHalfPixel_75 ()
|
void CreateColorLookup_MonoHiResHalfPixel_95 ()
|
||||||
{
|
{
|
||||||
int iMonochrome = GetMonochromeIndex();
|
int iMonochrome = GetMonochromeIndex();
|
||||||
|
|
||||||
@ -1431,10 +1433,12 @@ void CreateColorLookup_MonoHiResHalfPixel_Fake ()
|
|||||||
int color1 = BLACK;
|
int color1 = BLACK;
|
||||||
int color2 = BLACK;
|
int color2 = BLACK;
|
||||||
|
|
||||||
|
#if 0
|
||||||
// Gumball Logo looks better with this, as we have solid whites, but the test pattern: 22 92 14 8C 08 08 08 is off
|
// Gumball Logo looks better with this, as we have solid whites, but the test pattern: 22 92 14 8C 08 08 08 is off
|
||||||
if (aPixels[iPixel])
|
if (aPixels[iPixel])
|
||||||
{
|
{
|
||||||
if (aPixels[iPixel-1] || aPixels[iPixel+1])
|
if (aPixels[iPixel-1] || aPixels[iPixel+1])
|
||||||
|
if (aPixels[iPixel-1])
|
||||||
{
|
{
|
||||||
color = CM_White;
|
color = CM_White;
|
||||||
}
|
}
|
||||||
@ -1444,7 +1448,30 @@ void CreateColorLookup_MonoHiResHalfPixel_Fake ()
|
|||||||
else if (aPixels[iPixel-1] && aPixels[iPixel+1])
|
else if (aPixels[iPixel-1] && aPixels[iPixel+1])
|
||||||
if (!(aPixels[iPixel-2] && aPixels[iPixel+2]))
|
if (!(aPixels[iPixel-2] && aPixels[iPixel+2]))
|
||||||
color = ((odd ^ !(iPixel&1)) << 1) | hibit;
|
color = ((odd ^ !(iPixel&1)) << 1) | hibit;
|
||||||
|
#endif
|
||||||
|
#if 0 // 100% luminance emboss
|
||||||
|
if (aPixels[iPixel])
|
||||||
|
{
|
||||||
|
color = ((odd ^ (iPixel&1)) << 1) | hibit;
|
||||||
|
if (aPixels[iPixel-1])
|
||||||
|
color = CM_White;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#if 1
|
||||||
|
if (aPixels[iPixel])
|
||||||
|
{
|
||||||
|
if (aPixels[iPixel-1])
|
||||||
|
color = CM_White;
|
||||||
|
else
|
||||||
|
if( hibit )
|
||||||
|
color = CM_Blue;
|
||||||
|
else
|
||||||
|
if (aPixels[iPixel+1])
|
||||||
|
color = CM_Blue;
|
||||||
|
else
|
||||||
|
color = CM_Magenta;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
switch(color)
|
switch(color)
|
||||||
{
|
{
|
||||||
case CM_Magenta: color1 = iMonochrome ; color2 = iMonochrome+1; break;
|
case CM_Magenta: color1 = iMonochrome ; color2 = iMonochrome+1; break;
|
||||||
@ -1453,7 +1480,7 @@ void CreateColorLookup_MonoHiResHalfPixel_Fake ()
|
|||||||
case CM_Orange : color1 = iMonochrome+1; color2 = iMonochrome ; break;
|
case CM_Orange : color1 = iMonochrome+1; color2 = iMonochrome ; break;
|
||||||
case CM_Black : color1 = BLACK ; color2 = BLACK ; break;
|
case CM_Black : color1 = BLACK ; color2 = BLACK ; break;
|
||||||
case CM_White : color1 = iMonochrome ; color2 = iMonochrome ; break;
|
case CM_White : color1 = iMonochrome ; color2 = iMonochrome ; break;
|
||||||
case NUM_COLOR_MAPPING: color1 = color2 = iMonochrome+1; break;
|
case NUM_COLOR_MAPPING: color1 = color2 = iMonochrome; break; // 100% luminance emboss
|
||||||
default: break;
|
default: break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
, VT_MONO_AMBER
|
, VT_MONO_AMBER
|
||||||
, VT_MONO_GREEN
|
, VT_MONO_GREEN
|
||||||
, VT_MONO_WHITE
|
, VT_MONO_WHITE
|
||||||
, VT_MONO_HALFPIXEL_50
|
, VT_MONO_HALFPIXEL_75
|
||||||
, VT_MONO_HALFPIXEL_95
|
, VT_MONO_HALFPIXEL_95
|
||||||
, VT_MONO_HALFPIXEL_EMBOSS
|
, VT_MONO_HALFPIXEL_EMBOSS
|
||||||
, VT_MONO_HALFPIXEL_FAKE
|
, VT_MONO_HALFPIXEL_FAKE
|
||||||
|
Loading…
x
Reference in New Issue
Block a user