[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