[Scummvm-git-logs] scummvm master -> 5b96eb6bff9a35f5867f31c586d26bf58a429900

sev- sev at scummvm.org
Fri Aug 14 08:47:48 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:
571ce913e1 DIRECTOR: Do not use hardcoded pixel format
e5e82d4cf6 DIRECTOR: Copy over PixelFormat from the WM for simpler access
66f5aadf4e DIRECTOR: Do not set palette in 32bpp mode
ee3e1e3af5 GRAPHICS: MACGUI: More 32bpp enhancements
e2055ddb5d DIRECTOR: Convert video to 32bpp when requested
5b96eb6bff DIRECTOR: Blit >8bpp videos in 32bpp mode


Commit: 571ce913e18623f623256e5c3345f2ab52b70c7d
    https://github.com/scummvm/scummvm/commit/571ce913e18623f623256e5c3345f2ab52b70c7d
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-08-14T10:47:33+02:00

Commit Message:
DIRECTOR: Do not use hardcoded pixel format

Changed paths:
    engines/director/movie.cpp


diff --git a/engines/director/movie.cpp b/engines/director/movie.cpp
index 58852ae06f..6049f7116b 100644
--- a/engines/director/movie.cpp
+++ b/engines/director/movie.cpp
@@ -126,10 +126,7 @@ bool Movie::loadArchive() {
 			_vm->_wm->_screenDims = Common::Rect(windowWidth, windowHeight);
 			recenter = true;
 
-			if (debugChannelSet(-1, kDebug32bpp))
-				initGraphics(windowWidth, windowHeight, new Graphics::PixelFormat(4, 8, 8, 8, 8, 24, 16, 8, 0));
-			else
-				initGraphics(windowWidth, windowHeight);
+			initGraphics(windowWidth, windowHeight, &_vm->_wm->_pixelformat);
 		}
 	}
 


Commit: e5e82d4cf698fd56d35fdf6d468e950b8401dd72
    https://github.com/scummvm/scummvm/commit/e5e82d4cf698fd56d35fdf6d468e950b8401dd72
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-08-14T10:47:33+02:00

Commit Message:
DIRECTOR: Copy over PixelFormat from the WM for simpler access

Changed paths:
    engines/director/director.cpp
    engines/director/director.h
    engines/director/images.cpp
    engines/director/movie.cpp
    engines/director/transitions.cpp


diff --git a/engines/director/director.cpp b/engines/director/director.cpp
index bedb17208a..bb1906fc2a 100644
--- a/engines/director/director.cpp
+++ b/engines/director/director.cpp
@@ -163,6 +163,7 @@ Common::Error DirectorEngine::run() {
 	_wm = new Graphics::MacWindowManager(wmMode, &_director3QuickDrawPatterns);
 	_wm->setEngine(this);
 
+	_pixelformat = _wm->_pixelformat;
 
 	_stage = new Window(_wm->getNextId(), false, false, false, _wm, this, true);
 	*_stage->_refCount += 1;
diff --git a/engines/director/director.h b/engines/director/director.h
index 44c87bf4eb..3c4a54bc94 100644
--- a/engines/director/director.h
+++ b/engines/director/director.h
@@ -23,15 +23,15 @@
 #ifndef DIRECTOR_DIRECTOR_H
 #define DIRECTOR_DIRECTOR_H
 
-#include "common/rect.h"
-#include "common/str-array.h"
 #include "common/file.h"
-
 #include "common/hashmap.h"
-#include "engines/engine.h"
-
 #include "common/hash-ptr.h"
 #include "common/hash-str.h"
+#include "common/rect.h"
+#include "common/str-array.h"
+
+#include "engines/engine.h"
+#include "graphics/pixelformat.h"
 
 #include "director/types.h"
 #include "director/util.h"
@@ -224,6 +224,7 @@ public:
 public:
 	RandomState _rnd;
 	Graphics::MacWindowManager *_wm;
+	Graphics::PixelFormat _pixelformat;
 
 public:
 	int _colorDepth;
diff --git a/engines/director/images.cpp b/engines/director/images.cpp
index c77794e0da..c274f80819 100644
--- a/engines/director/images.cpp
+++ b/engines/director/images.cpp
@@ -112,25 +112,8 @@ BITDDecoder::BITDDecoder(int w, int h, uint16 bitsPerPixel, uint16 pitch, const
 		pitch = w;
 	}
 
-	Graphics::PixelFormat pf = Graphics::PixelFormat::createFormatCLUT8();
-	switch (bitsPerPixel) {
-	case 2:
-		break;
-	case 4:
-		break;
-	case 8:
-		break;
-	case 16:
-		break;
-	case 32:
-		//pf = Graphics::PixelFormat::PixelFormat(bitsPerPixel / 8, 8, 8, 8, 8, 24, 16, 8, 0);
-		break;
-	default:
-		break;
-	}
-
 	// HACK: Create a padded surface by adjusting w after create()
-	_surface->create(pitch, h, pf);
+	_surface->create(pitch, h, g_director->_pixelformat);
 	_surface->w = w;
 
 	_palette = palette;
diff --git a/engines/director/movie.cpp b/engines/director/movie.cpp
index 6049f7116b..160281a223 100644
--- a/engines/director/movie.cpp
+++ b/engines/director/movie.cpp
@@ -126,7 +126,7 @@ bool Movie::loadArchive() {
 			_vm->_wm->_screenDims = Common::Rect(windowWidth, windowHeight);
 			recenter = true;
 
-			initGraphics(windowWidth, windowHeight, &_vm->_wm->_pixelformat);
+			initGraphics(windowWidth, windowHeight, &_vm->_pixelformat);
 		}
 	}
 
diff --git a/engines/director/transitions.cpp b/engines/director/transitions.cpp
index 34dd76cf1e..8052e21410 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, _wm->_pixelformat));
+	Graphics::ManagedSurface currentFrame(Graphics::ManagedSurface(_composeSurface->w, _composeSurface->h, g_director->_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, _wm->_pixelformat));
+	Graphics::ManagedSurface nextFrame(Graphics::ManagedSurface(_composeSurface->w, _composeSurface->h, g_director->_pixelformat));
 
 	Common::Rect clipRect;
 	if (t.area) {


Commit: 66f5aadf4e62e0559a1731d49f6e445a5bfa934f
    https://github.com/scummvm/scummvm/commit/66f5aadf4e62e0559a1731d49f6e445a5bfa934f
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-08-14T10:47:33+02:00

Commit Message:
DIRECTOR: Do not set palette in 32bpp mode

Changed paths:
    engines/director/graphics.cpp


diff --git a/engines/director/graphics.cpp b/engines/director/graphics.cpp
index 65053b2907..a9cf04927d 100644
--- a/engines/director/graphics.cpp
+++ b/engines/director/graphics.cpp
@@ -788,7 +788,10 @@ bool DirectorEngine::setPalette(int id) {
 }
 
 void DirectorEngine::setPalette(byte *palette, uint16 count) {
-	_system->getPaletteManager()->setPalette(palette, 0, count);
+	// Pass the palette to OSystem only for 8bpp mode
+	if (_pixelformat.bytesPerPixel == 1)
+		_system->getPaletteManager()->setPalette(palette, 0, count);
+
 	_currentPalette = palette;
 	_currentPaletteLength = count;
 


Commit: ee3e1e3af50133c00aaf5e42ad12d57687895714
    https://github.com/scummvm/scummvm/commit/ee3e1e3af50133c00aaf5e42ad12d57687895714
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-08-14T10:47:33+02:00

Commit Message:
GRAPHICS: MACGUI: More 32bpp enhancements

Changed paths:
    graphics/macgui/macwidget.cpp


diff --git a/graphics/macgui/macwidget.cpp b/graphics/macgui/macwidget.cpp
index 4367fd5427..321e9daeb9 100644
--- a/graphics/macgui/macwidget.cpp
+++ b/graphics/macgui/macwidget.cpp
@@ -43,7 +43,7 @@ MacWidget::MacWidget(MacWidget *parent, int x, int y, int w, int h, MacWindowMan
 	if (parent)
 		parent->_children.push_back(this);
 
-	_composeSurface = new ManagedSurface(_dims.width(), _dims.height());
+	_composeSurface = new ManagedSurface(_dims.width(), _dims.height(), _wm->_pixelformat);
 	_composeSurface->clear(_bgcolor);
 
 	_active = false;


Commit: e2055ddb5db73425b205cf39c1ef168fbdf855f3
    https://github.com/scummvm/scummvm/commit/e2055ddb5db73425b205cf39c1ef168fbdf855f3
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-08-14T10:47:33+02:00

Commit Message:
DIRECTOR: Convert video to 32bpp when requested

Changed paths:
    engines/director/castmember.cpp


diff --git a/engines/director/castmember.cpp b/engines/director/castmember.cpp
index 587db32a68..94fd6665fd 100644
--- a/engines/director/castmember.cpp
+++ b/engines/director/castmember.cpp
@@ -320,7 +320,13 @@ Graphics::MacWidget *DigitalVideoCastMember::createWidget(Common::Rect &bbox, Ch
 		if (frame->format.bytesPerPixel != 1) {
 			warning("STUB: video >8bpp");
 		} else {
-			widget->getSurface()->blitFrom(*frame);
+			if (g_director->_pixelformat.bytesPerPixel == 1) {
+				widget->getSurface()->blitFrom(*frame);
+			} else {
+				const Graphics::Surface *surf = frame->convertTo(g_director->_pixelformat, g_director->getPalette());
+				widget->getSurface()->blitFrom(*surf);
+				delete surf;
+			}
 		}
 	}
 


Commit: 5b96eb6bff9a35f5867f31c586d26bf58a429900
    https://github.com/scummvm/scummvm/commit/5b96eb6bff9a35f5867f31c586d26bf58a429900
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-08-14T10:47:33+02:00

Commit Message:
DIRECTOR: Blit >8bpp videos in 32bpp mode

Changed paths:
    engines/director/castmember.cpp


diff --git a/engines/director/castmember.cpp b/engines/director/castmember.cpp
index 94fd6665fd..5ac43685f1 100644
--- a/engines/director/castmember.cpp
+++ b/engines/director/castmember.cpp
@@ -318,7 +318,10 @@ Graphics::MacWidget *DigitalVideoCastMember::createWidget(Common::Rect &bbox, Ch
 
 	if (frame) {
 		if (frame->format.bytesPerPixel != 1) {
-			warning("STUB: video >8bpp");
+			if (g_director->_pixelformat.bytesPerPixel == 1)
+				warning("STUB: video >8bpp");
+			else
+				widget->getSurface()->blitFrom(*frame);
 		} else {
 			if (g_director->_pixelformat.bytesPerPixel == 1) {
 				widget->getSurface()->blitFrom(*frame);




More information about the Scummvm-git-logs mailing list