[Scummvm-git-logs] scummvm master -> ff49cb2303538e090101f2f509e77c43ac46da79
sev-
sev at scummvm.org
Sat Aug 15 12:51:55 UTC 2020
This automated email contains information about 6 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
29533d9c5e GRAPHICS: MACGUI: Fix typo in findBestColor
5ea23f666f DIRECTOR: Make rendering tests work in 32bpp
c03149d87f DIRECTOR: Blit images directly to 32-bit in 32bpp mode
6d72ebd1e2 GRAPHICS: MACGUI: Made MacButtons and desktop render in 32bpp
56fddcb965 GRAPHICS: MACGUI: Tidy up code
ff49cb2303 GRAPHICS: MACGUI: Make pattern drawing 32bpp-aware
Commit: 29533d9c5e55362e47ce661c64385342071377a3
https://github.com/scummvm/scummvm/commit/29533d9c5e55362e47ce661c64385342071377a3
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-08-15T14:50:26+02:00
Commit Message:
GRAPHICS: MACGUI: Fix typo in findBestColor
Changed paths:
graphics/macgui/macwindowmanager.cpp
diff --git a/graphics/macgui/macwindowmanager.cpp b/graphics/macgui/macwindowmanager.cpp
index 950f016f8a..b996d4644d 100644
--- a/graphics/macgui/macwindowmanager.cpp
+++ b/graphics/macgui/macwindowmanager.cpp
@@ -943,7 +943,7 @@ uint MacWindowManager::findBestColor(byte cr, byte cg, byte cb) {
uint bestColor = 0;
double min = 0xFFFFFFFF;
- if (_pixelformat.bytesPerPixel == 24)
+ if (_pixelformat.bytesPerPixel == 4)
return cr << 24 | cg << 16 | cb << 8 | 0xff;
uint32 color = cr << 16 | cg << 8 | cb;
Commit: 5ea23f666f32d5a0973672d809fdcac6dfe80d21
https://github.com/scummvm/scummvm/commit/5ea23f666f32d5a0973672d809fdcac6dfe80d21
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-08-15T14:50:26+02:00
Commit Message:
DIRECTOR: Make rendering tests work in 32bpp
Changed paths:
engines/director/graphics.cpp
engines/director/tests.cpp
diff --git a/engines/director/graphics.cpp b/engines/director/graphics.cpp
index a9cf04927d..23d1416de0 100644
--- a/engines/director/graphics.cpp
+++ b/engines/director/graphics.cpp
@@ -725,7 +725,12 @@ static const byte mouseDown[] = {
* All other color ids can be converted with: 255 - colorId.
**/
uint32 DirectorEngine::transformColor(uint32 color) {
- return 255 - color;
+ if (_pixelformat.bytesPerPixel == 1)
+ return 255 - color;
+
+ color = 255 - color;
+
+ return _wm->findBestColor(_currentPalette[color * 3], _currentPalette[color * 3 + 1], _currentPalette[color * 3 + 2]);
}
void DirectorEngine::loadPatterns() {
diff --git a/engines/director/tests.cpp b/engines/director/tests.cpp
index 5e54cbe865..dde632f9c9 100644
--- a/engines/director/tests.cpp
+++ b/engines/director/tests.cpp
@@ -54,8 +54,8 @@ void Window::testFontScaling() {
Graphics::ManagedSurface surface;
- surface.create(w, h);
- surface.clear(255);
+ surface.create(w, h, _wm->_pixelformat);
+ surface.clear(_wm->_colorWhite);
Graphics::MacFont origFont(Graphics::kMacFontNewYork, 18);
@@ -93,7 +93,10 @@ void Window::testFontScaling() {
for (x = x1; x < x1 + 6; x++)
for (y = y1; y < y1 + 6; y++)
- *((byte *)surface.getBasePtr(x, y)) = _vm->transformColor(i * 16 + j);
+ if (_wm->_pixelformat.bytesPerPixel == 1)
+ *((byte *)surface.getBasePtr(x, y)) = _vm->transformColor(i * 16 + j);
+ else
+ *((uint32 *)surface.getBasePtr(x, y)) = _vm->transformColor(i * 16 + j);
}
}
Commit: c03149d87fc219e3755ae45045df44c8e22e01ed
https://github.com/scummvm/scummvm/commit/c03149d87fc219e3755ae45045df44c8e22e01ed
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-08-15T14:50:26+02:00
Commit Message:
DIRECTOR: Blit images directly to 32-bit in 32bpp mode
Changed paths:
engines/director/images.cpp
diff --git a/engines/director/images.cpp b/engines/director/images.cpp
index f5f4ecc066..517fd62946 100644
--- a/engines/director/images.cpp
+++ b/engines/director/images.cpp
@@ -21,6 +21,7 @@
*/
#include "common/substream.h"
+#include "graphics/macgui/macwindowmanager.h"
#include "image/codecs/bmp_raw.h"
#include "director/director.h"
@@ -241,14 +242,18 @@ bool BITDDecoder::loadStream(Common::SeekableReadStream &stream) {
if (paletted) {
*((byte *)_surface->getBasePtr(x, y)) = color;
} else {
- *((uint32 *)_surface->getBasePtr(x, y)) = color ? 0xffffff : 0;
+ *((uint32 *)_surface->getBasePtr(x, y)) = color ? g_director->_wm->_colorWhite : g_director->_wm->_colorBlack;
}
}
break;
case 8:
// this calculation is wrong.. need a demo with colours.
- *((byte *)_surface->getBasePtr(x, y)) = g_director->transformColor(pixels[(y * _surface->w) + x + (y * offset)]);
+ if (paletted) {
+ *((byte *)_surface->getBasePtr(x, y)) = g_director->transformColor(pixels[(y * _surface->w) + x + (y * offset)]);
+ } else {
+ *((uint32 *)_surface->getBasePtr(x, y)) = g_director->transformColor(pixels[(y * _surface->w) + x + (y * offset)]);
+ }
x++;
break;
Commit: 6d72ebd1e2febeda4ff137ddcf28c61cdf2526e3
https://github.com/scummvm/scummvm/commit/6d72ebd1e2febeda4ff137ddcf28c61cdf2526e3
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-08-15T14:50:26+02:00
Commit Message:
GRAPHICS: MACGUI: Made MacButtons and desktop render in 32bpp
Changed paths:
graphics/macgui/macbutton.cpp
graphics/macgui/macwindowmanager.cpp
diff --git a/graphics/macgui/macbutton.cpp b/graphics/macgui/macbutton.cpp
index 84afd158b6..33e3c1a55f 100644
--- a/graphics/macgui/macbutton.cpp
+++ b/graphics/macgui/macbutton.cpp
@@ -55,7 +55,7 @@ MacButton::MacButton(MacButtonType buttonType, TextAlign textAlignment, MacWidge
break;
}
- _composeSurface->create(_dims.width(), _dims.height());
+ _composeSurface->create(_dims.width(), _dims.height(), _wm->_pixelformat);
_composeSurface->clear(_bgcolor);
}
diff --git a/graphics/macgui/macwindowmanager.cpp b/graphics/macgui/macwindowmanager.cpp
index b996d4644d..a5723a4932 100644
--- a/graphics/macgui/macwindowmanager.cpp
+++ b/graphics/macgui/macwindowmanager.cpp
@@ -464,11 +464,15 @@ void MacWindowManager::drawDesktop() {
if (_desktopBmp) {
for (uint i = 0; i < _desktop->w; ++i) {
for (uint j = 0; j < _desktop->h; ++j) {
- uint32 color = *(uint32*)_desktopBmp->getBasePtr(i % _desktopBmp->w, j % _desktopBmp->h);
- byte r, g, b;
- _desktopBmp->format.colorToRGB(color, r, g, b);
- if (color > 0) {
- *((byte *)_desktop->getBasePtr(i, j)) = findBestColor(r, g, b);
+ uint32 color = *(uint32 *)_desktopBmp->getBasePtr(i % _desktopBmp->w, j % _desktopBmp->h);
+ if (_pixelformat.bytesPerPixel == 1) {
+ byte r, g, b;
+ _desktopBmp->format.colorToRGB(color, r, g, b);
+ if (color > 0) {
+ *((byte *)_desktop->getBasePtr(i, j)) = findBestColor(r, g, b);
+ }
+ } else {
+ *((uint32 *)_desktop->getBasePtr(i, j)) = color;
}
}
}
Commit: 56fddcb965652bf9fdd274d05601fd1ea2d94cfa
https://github.com/scummvm/scummvm/commit/56fddcb965652bf9fdd274d05601fd1ea2d94cfa
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-08-15T14:50:27+02:00
Commit Message:
GRAPHICS: MACGUI: Tidy up code
Changed paths:
graphics/macgui/macwindowmanager.cpp
diff --git a/graphics/macgui/macwindowmanager.cpp b/graphics/macgui/macwindowmanager.cpp
index a5723a4932..1a538cafab 100644
--- a/graphics/macgui/macwindowmanager.cpp
+++ b/graphics/macgui/macwindowmanager.cpp
@@ -921,6 +921,8 @@ void MacWindowManager::popCursor() {
///////////////////
// Palette stuff
///////////////////
+#define LOOKUPCOLOR(x) _color ## x = findBestColor(palette[kColor ## x * 3], palette[kColor ## x * 3 + 1], palette[kColor ## x * 3 + 2]);
+
void MacWindowManager::passPalette(const byte *pal, uint size) {
if (_palette)
free(_palette);
@@ -931,25 +933,25 @@ void MacWindowManager::passPalette(const byte *pal, uint size) {
_colorHash.clear();
- _colorWhite = findBestColor(palette[kColorWhite * 3], palette[kColorWhite * 3 + 1], palette[kColorWhite * 3 + 2]);
- _colorGray80 = findBestColor(palette[kColorGray80 * 3], palette[kColorGray80 * 3 + 1], palette[kColorGray80 * 3 + 2]);
- _colorGray88 = findBestColor(palette[kColorGray88 * 3], palette[kColorGray88 * 3 + 1], palette[kColorGray88 * 3 + 2]);
- _colorGrayEE = findBestColor(palette[kColorGrayEE * 3], palette[kColorGrayEE * 3 + 1], palette[kColorGrayEE * 3 + 2]);
- _colorBlack = findBestColor(palette[kColorBlack * 3], palette[kColorBlack * 3 + 1], palette[kColorBlack * 3 + 2]);
- _colorGreen = findBestColor(palette[kColorGreen * 3], palette[kColorGreen * 3 + 1], palette[kColorGreen * 3 + 2]);
- _colorGreen2 = findBestColor(palette[kColorGreen2 * 3], palette[kColorGreen2 * 3 + 1], palette[kColorGreen2 * 3 + 2]);
+ LOOKUPCOLOR(White);
+ LOOKUPCOLOR(Gray80);
+ LOOKUPCOLOR(Gray88);
+ LOOKUPCOLOR(GrayEE);
+ LOOKUPCOLOR(Black);
+ LOOKUPCOLOR(Green);
+ LOOKUPCOLOR(Green2);
drawDesktop();
setFullRefresh(true);
}
uint MacWindowManager::findBestColor(byte cr, byte cg, byte cb) {
- uint bestColor = 0;
- double min = 0xFFFFFFFF;
-
if (_pixelformat.bytesPerPixel == 4)
return cr << 24 | cg << 16 | cb << 8 | 0xff;
+ uint bestColor = 0;
+ double min = 0xFFFFFFFF;
+
uint32 color = cr << 16 | cg << 8 | cb;
if (_colorHash.contains(color))
Commit: ff49cb2303538e090101f2f509e77c43ac46da79
https://github.com/scummvm/scummvm/commit/ff49cb2303538e090101f2f509e77c43ac46da79
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-08-15T14:50:27+02:00
Commit Message:
GRAPHICS: MACGUI: Make pattern drawing 32bpp-aware
Changed paths:
graphics/macgui/macwindow.cpp
diff --git a/graphics/macgui/macwindow.cpp b/graphics/macgui/macwindow.cpp
index bd58ae701c..e7a333c600 100644
--- a/graphics/macgui/macwindow.cpp
+++ b/graphics/macgui/macwindow.cpp
@@ -380,11 +380,19 @@ void MacWindow::drawPattern() {
byte *pat = _wm->getPatterns()[_pattern - 1];
for (int y = 0; y < _composeSurface->h; y++) {
for (int x = 0; x < _composeSurface->w; x++) {
- byte *dst = (byte *)_composeSurface->getBasePtr(x, y);
- if (pat[y % 8] & (1 << (7 - (x % 8))))
- *dst = _wm->_colorBlack;
- else
- *dst = _wm->_colorWhite;
+ if (_wm->_pixelformat.bytesPerPixel == 1) {
+ byte *dst = (byte *)_composeSurface->getBasePtr(x, y);
+ if (pat[y % 8] & (1 << (7 - (x % 8))))
+ *dst = _wm->_colorBlack;
+ else
+ *dst = _wm->_colorWhite;
+ } else {
+ uint32 *dst = (uint32 *)_composeSurface->getBasePtr(x, y);
+ if (pat[y % 8] & (1 << (7 - (x % 8))))
+ *dst = _wm->_colorBlack;
+ else
+ *dst = _wm->_colorWhite;
+ }
}
}
}
More information about the Scummvm-git-logs
mailing list