[Scummvm-git-logs] scummvm master -> 88c46aefe344bce53a5dc9f72a85aac36d2078f4
sev-
sev at scummvm.org
Thu Aug 13 23:11:43 UTC 2020
This automated email contains information about 3 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
02b04d3de8 JANITORIAL: Whitespace fixes
d61eeb9880 GRAPHICS: MACGUI: Added 32bpp mode form MacWindowManager
88c46aefe3 DIRECTOR: Initial code for 32bpp rendering
Commit: 02b04d3de847c667b811cb3b2288937cf2bb66e2
https://github.com/scummvm/scummvm/commit/02b04d3de847c667b811cb3b2288937cf2bb66e2
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-08-14T00:52:34+02:00
Commit Message:
JANITORIAL: Whitespace fixes
Changed paths:
graphics/macgui/macwindowmanager.h
diff --git a/graphics/macgui/macwindowmanager.h b/graphics/macgui/macwindowmanager.h
index e38c5943b9..44f72ef97e 100644
--- a/graphics/macgui/macwindowmanager.h
+++ b/graphics/macgui/macwindowmanager.h
@@ -65,13 +65,13 @@ enum {
};
enum MacCursorType {
- kMacCursorArrow,
- kMacCursorBeam,
- kMacCursorCrossHair,
- kMacCursorCrossBar,
- kMacCursorWatch,
- kMacCursorCustom,
- kMacCursorOff
+ kMacCursorArrow,
+ kMacCursorBeam,
+ kMacCursorCrossHair,
+ kMacCursorCrossBar,
+ kMacCursorWatch,
+ kMacCursorCustom,
+ kMacCursorOff
};
enum {
Commit: d61eeb9880600f6cee475c360a87949e37c75f7c
https://github.com/scummvm/scummvm/commit/d61eeb9880600f6cee475c360a87949e37c75f7c
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-08-14T01:10:32+02:00
Commit Message:
GRAPHICS: MACGUI: Added 32bpp mode form MacWindowManager
Changed paths:
graphics/macgui/macwindow.cpp
graphics/macgui/macwindowmanager.cpp
graphics/macgui/macwindowmanager.h
diff --git a/graphics/macgui/macwindow.cpp b/graphics/macgui/macwindow.cpp
index b9dc94bff3..bd58ae701c 100644
--- a/graphics/macgui/macwindow.cpp
+++ b/graphics/macgui/macwindow.cpp
@@ -120,13 +120,13 @@ void MacWindow::resize(int w, int h, bool inner) {
}
_composeSurface->free();
- _composeSurface->create(_innerDims.width(), _innerDims.height(), PixelFormat::createFormatCLUT8());
+ _composeSurface->create(_innerDims.width(), _innerDims.height(), _wm->_pixelformat);
if (_hasPattern)
drawPattern();
_borderSurface.free();
- _borderSurface.create(_dims.width(), _dims.height(), PixelFormat::createFormatCLUT8());
+ _borderSurface.create(_dims.width(), _dims.height(), _wm->_pixelformat);
_contentIsDirty = true;
_borderIsDirty = true;
@@ -426,7 +426,7 @@ void MacWindow::loadBorder(Common::SeekableReadStream &file, bool active, Border
bmpDecoder.loadStream(file);
source = bmpDecoder.getSurface()->convertTo(surface->getSupportedPixelFormat(), bmpDecoder.getPalette());
- surface->create(source->w, source->h, surface->getSupportedPixelFormat());
+ surface->create(source->w, source->h, _wm->_pixelformat);
surface->copyFrom(*source);
source->free();
@@ -459,7 +459,7 @@ void MacWindow::setBorder(Graphics::TransparentSurface *surface, bool active, Bo
_macBorder.setOffsets(offsets);
updateOuterDims();
_borderSurface.free();
- _borderSurface.create(_dims.width(), _dims.height(), PixelFormat::createFormatCLUT8());
+ _borderSurface.create(_dims.width(), _dims.height(), _wm->_pixelformat);
}
_borderIsDirty = true;
diff --git a/graphics/macgui/macwindowmanager.cpp b/graphics/macgui/macwindowmanager.cpp
index 6978985a3f..b46b1970d6 100644
--- a/graphics/macgui/macwindowmanager.cpp
+++ b/graphics/macgui/macwindowmanager.cpp
@@ -192,6 +192,11 @@ MacWindowManager::MacWindowManager(uint32 mode, MacPatterns *patterns) {
_palette = nullptr;
_paletteSize = 0;
+ if (mode & kWMMode32bpp)
+ _pixelformat = Graphics::PixelFormat(4, 8, 8, 8, 8, 24, 16, 8, 0);
+ else
+ _pixelformat = PixelFormat::createFormatCLUT8();
+
if (patterns) {
_patterns = *patterns;
} else {
@@ -239,7 +244,7 @@ void MacWindowManager::setScreen(ManagedSurface *screen) {
else
_desktop = new ManagedSurface();
- _desktop->create(_screen->w, _screen->h, PixelFormat::createFormatCLUT8());
+ _desktop->create(_screen->w, _screen->h, _pixelformat);
drawDesktop();
}
@@ -250,7 +255,7 @@ void MacWindowManager::setScreen(int w, int h) {
_desktop = new ManagedSurface();
_screenDims = Common::Rect(w, h);
- _desktop->create(w, h, PixelFormat::createFormatCLUT8());
+ _desktop->create(w, h, _pixelformat);
drawDesktop();
}
@@ -485,7 +490,7 @@ void MacWindowManager::draw() {
Common::Rect screen = getScreenBounds();
if (_desktop->w != screen.width() || _desktop->h != screen.height()) {
_desktop->free();
- _desktop->create(screen.width(), screen.height(), PixelFormat::createFormatCLUT8());
+ _desktop->create(screen.width(), screen.height(), _pixelformat);
drawDesktop();
}
diff --git a/graphics/macgui/macwindowmanager.h b/graphics/macgui/macwindowmanager.h
index 44f72ef97e..fff19ffe76 100644
--- a/graphics/macgui/macwindowmanager.h
+++ b/graphics/macgui/macwindowmanager.h
@@ -83,7 +83,8 @@ enum {
kWMModeUnicode = (1 << 4),
kWMModeManualDrawWidgets= (1 << 5),
kWMModeFullscreen = (1 << 6),
- kWMModeButtonDialogStyle= (1 << 7)
+ kWMModeButtonDialogStyle= (1 << 7),
+ kWMMode32bpp = (1 << 8)
};
}
@@ -334,6 +335,7 @@ private:
public:
TransparentSurface *_desktopBmp;
ManagedSurface *_desktop;
+ PixelFormat _pixelformat;
ManagedSurface *_screen;
ManagedSurface *_screenCopy;
Commit: 88c46aefe344bce53a5dc9f72a85aac36d2078f4
https://github.com/scummvm/scummvm/commit/88c46aefe344bce53a5dc9f72a85aac36d2078f4
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-08-14T01:10:56+02:00
Commit Message:
DIRECTOR: Initial code for 32bpp rendering
Changed paths:
engines/director/director.cpp
engines/director/director.h
engines/director/movie.cpp
engines/director/transitions.cpp
diff --git a/engines/director/director.cpp b/engines/director/director.cpp
index e276eb0e54..bedb17208a 100644
--- a/engines/director/director.cpp
+++ b/engines/director/director.cpp
@@ -61,6 +61,7 @@ DirectorEngine::DirectorEngine(OSystem *syst, const DirectorGameDescription *gam
DebugMan.addDebugChannel(kDebugPreprocess, "preprocess", "Lingo preprocessing");
DebugMan.addDebugChannel(kDebugScreenshot, "screenshot", "screenshot each frame");
DebugMan.addDebugChannel(kDebugDesktop, "desktop", "Show the Classic Mac desktop");
+ DebugMan.addDebugChannel(kDebug32bpp, "32bpp", "Work in 32bpp mode");
g_director = this;
@@ -133,7 +134,7 @@ void DirectorEngine::setCurrentMovie(Movie *movie) {
void DirectorEngine::setVersion(uint16 version) {
if (version == _version)
return;
-
+
debug("Switching to Director v%d", version);
_version = version;
_lingo->reloadBuiltIns();
@@ -155,6 +156,10 @@ Common::Error DirectorEngine::run() {
_soundManager = nullptr;
wmMode = debugChannelSet(-1, kDebugDesktop) ? wmModeDesktop : wmModeFullscreen;
+
+ if (debugChannelSet(-1, kDebug32bpp))
+ wmMode |= Graphics::kWMMode32bpp;
+
_wm = new Graphics::MacWindowManager(wmMode, &_director3QuickDrawPatterns);
_wm->setEngine(this);
diff --git a/engines/director/director.h b/engines/director/director.h
index 2916f52da8..44c87bf4eb 100644
--- a/engines/director/director.h
+++ b/engines/director/director.h
@@ -86,7 +86,8 @@ enum {
kDebugFewFramesOnly = 1 << 12,
kDebugPreprocess = 1 << 13,
kDebugScreenshot = 1 << 14,
- kDebugDesktop = 1 << 15
+ kDebugDesktop = 1 << 15,
+ kDebug32bpp = 1 << 16
};
struct MovieReference {
diff --git a/engines/director/movie.cpp b/engines/director/movie.cpp
index ac66eb10fd..c43d37b848 100644
--- a/engines/director/movie.cpp
+++ b/engines/director/movie.cpp
@@ -122,6 +122,9 @@ bool Movie::loadArchive() {
if (_vm->_wm->_screenDims.width() != windowWidth || _vm->_wm->_screenDims.height() != windowHeight) {
_vm->_wm->_screenDims = Common::Rect(windowWidth, windowHeight);
+ if (debugChannelSet(-1, kDebug32bpp))
+ initGraphics(windowWidth, windowHeight, new Graphics::PixelFormat(4, 8, 8, 8, 8, 24, 16, 8, 0));
+ else
initGraphics(windowWidth, windowHeight);
}
}
diff --git a/engines/director/transitions.cpp b/engines/director/transitions.cpp
index 0ecf7ffc95..34dd76cf1e 100644
--- a/engines/director/transitions.cpp
+++ b/engines/director/transitions.cpp
@@ -156,11 +156,11 @@ void Window::playTransition(uint16 transDuration, uint8 transArea, uint8 transCh
t.duration = 250;
// Cache a copy of the frame before the transition.
- Graphics::ManagedSurface currentFrame(Graphics::ManagedSurface(_composeSurface->w, _composeSurface->h));
+ Graphics::ManagedSurface currentFrame(Graphics::ManagedSurface(_composeSurface->w, _composeSurface->h, _wm->_pixelformat));
currentFrame.copyFrom(*_composeSurface);
// If a transition is being played, render the frame after the transition.
- Graphics::ManagedSurface nextFrame(Graphics::ManagedSurface(_composeSurface->w, _composeSurface->h));
+ Graphics::ManagedSurface nextFrame(Graphics::ManagedSurface(_composeSurface->w, _composeSurface->h, _wm->_pixelformat));
Common::Rect clipRect;
if (t.area) {
More information about the Scummvm-git-logs
mailing list