mirror of
https://github.com/JorjBauer/aiie.git
synced 2024-11-22 15:31:41 +00:00
tweak handling of B&W for GEOS. Not perfect on a scaled display.
This commit is contained in:
parent
b6cd790fa9
commit
766e04a820
@ -216,9 +216,12 @@ inline void AppleDisplay::Draw14DoubleHiresPixelsAt(uint16_t addr)
|
||||
drawApplePixel(bitTrain & 0x0F, col+xoff+1,row);
|
||||
} else {
|
||||
// Perfect color, B&W, monochrome. Draw an exact version of the pixels, and let
|
||||
// the physical display figure out if they need to be reduced to B&W or not.
|
||||
// the physical display figure out if they need to be reduced to B&W or not
|
||||
// (for the most part - the m_blackAndWhite piece here allows full-res displays
|
||||
// to give the crispest resolution.)
|
||||
|
||||
uint8_t color = bitTrain & 0x0F;
|
||||
if (g_displayType == m_blackAndWhite) { color = c_white; }
|
||||
|
||||
g_display->cachePixel((col*2)+(xoff*2), row,
|
||||
((bitTrain & 0x01) ? color : c_black));
|
||||
|
@ -345,10 +345,14 @@ void TeensyDisplay::cachePixel(uint16_t x, uint16_t y, uint8_t color)
|
||||
// with a color between the two.
|
||||
|
||||
#if 1
|
||||
// This is straight blending, R/G/B average
|
||||
// This is straight blending, R/G/B average, except in B&W mode
|
||||
uint16_t origColor = dmaBuffer[y+VOFFSET][(x>>1)+HOFFSET];
|
||||
uint16_t newColor = loresPixelColors[color];
|
||||
if (g_displayType == m_blackAndWhite) {
|
||||
cacheDoubleWidePixel(x>>1, y, (origColor && newColor) ? 0xFFFF : 0x0000);
|
||||
} else {
|
||||
cacheDoubleWidePixel(x>>1, y, blendColors(origColor, newColor));
|
||||
}
|
||||
#endif
|
||||
|
||||
#if 0
|
||||
|
Loading…
Reference in New Issue
Block a user