[Scummvm-cvs-logs] scummvm master -> e21d6e0d1120e917a4a019a4070ec4db5e988b9b

lordhoto lordhoto at gmail.com
Sat Feb 19 21:49:40 CET 2011


This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
b26f30b987 DRASCULA: Adapt to setPalette RGBA->RGB change.
e21d6e0d11 Merge branch 'osystem-palette' of https://github.com/lordhoto/scummvm into master


Commit: b26f30b98793c522265a3eeb48fb3b41034663c6
    https://github.com/scummvm/scummvm/commit/b26f30b98793c522265a3eeb48fb3b41034663c6
Author: Johannes Schickel (lordhoto at scummvm.org)
Date: 2011-02-19T12:19:45-08:00

Commit Message:
DRASCULA: Adapt to setPalette RGBA->RGB change.

Changed paths:
    engines/drascula/palette.cpp



diff --git a/engines/drascula/palette.cpp b/engines/drascula/palette.cpp
index 67597ef..b521c03 100644
--- a/engines/drascula/palette.cpp
+++ b/engines/drascula/palette.cpp
@@ -65,15 +65,12 @@ void DrasculaEngine::black() {
 }
 
 void DrasculaEngine::setPalette(byte *PalBuf) {
-	byte pal[256 * 4];
-	int i;
-
-	for (i = 0; i < 256; i++) {
-		pal[i * 4 + 0] = PalBuf[i * 3 + 0] * 4;
-		pal[i * 4 + 1] = PalBuf[i * 3 + 1] * 4;
-		pal[i * 4 + 2] = PalBuf[i * 3 + 2] * 4;
-		pal[i * 4 + 3] = 0;
+	byte pal[256 * 3];
+
+	for (int i = 0; i < 3 * 256; ++i) {
+		pal[i] = PalBuf[i] * 4;
 	}
+
 	_system->getPaletteManager()->setPalette(pal, 0, 256);
 	_system->updateScreen();
 }


Commit: e21d6e0d1120e917a4a019a4070ec4db5e988b9b
    https://github.com/scummvm/scummvm/commit/e21d6e0d1120e917a4a019a4070ec4db5e988b9b
Author: Johannes Schickel (lordhoto at scummvm.org)
Date: 2011-02-19T12:46:45-08:00

Commit Message:
Merge branch 'osystem-palette' of https://github.com/lordhoto/scummvm into master

Conflicts:
	backends/platform/android/android.cpp
	engines/sci/graphics/screen.cpp
	engines/sci/graphics/transitions.cpp

Changed paths:
    audio/softsynth/mt32.cpp
    backends/graphics/default-palette.h
    backends/graphics/opengl/opengl-graphics.cpp
    backends/graphics/sdl/sdl-graphics.cpp
    backends/platform/android/android.cpp
    backends/platform/dc/display.cpp
    backends/platform/ds/arm9/source/osystem_ds.cpp
    backends/platform/iphone/osys_video.cpp
    backends/platform/n64/osys_n64.h
    backends/platform/n64/osys_n64_base.cpp
    backends/platform/ps2/Gs2dScreen.cpp
    backends/platform/ps2/Gs2dScreen.h
    backends/platform/ps2/systemps2.cpp
    backends/platform/psp/display_client.cpp
    backends/platform/wii/osystem_gfx.cpp
    common/macresman.cpp
    engines/agi/graphics.cpp
    engines/agi/graphics.h
    engines/agos/agos.h
    engines/agos/animation.cpp
    engines/agos/cursor.cpp
    engines/agos/debug.cpp
    engines/agos/draw.cpp
    engines/agos/gfx.cpp
    engines/agos/pn.cpp
    engines/agos/script_ff.cpp
    engines/agos/script_s1.cpp
    engines/agos/vga.cpp
    engines/agos/vga_e2.cpp
    engines/agos/vga_s1.cpp
    engines/agos/window.cpp
    engines/cine/pal.cpp
    engines/cruise/gfxModule.cpp
    engines/cruise/mouse.cpp
    engines/draci/screen.cpp
    engines/drascula/palette.cpp
    engines/gob/util.cpp
    engines/gob/video.cpp
    engines/gob/video.h
    engines/groovie/cursor.cpp
    engines/groovie/debug.cpp
    engines/groovie/graphics.cpp
    engines/groovie/graphics.h
    engines/groovie/roq.cpp
    engines/groovie/vdx.cpp
    engines/hugo/display.cpp
    engines/kyra/screen.cpp
    engines/kyra/screen_lok.cpp
    engines/kyra/screen_lol.cpp
    engines/lure/screen.cpp
    engines/lure/screen.h
    engines/made/screen.cpp
    engines/made/screen.h
    engines/mohawk/cursors.cpp
    engines/mohawk/graphics.cpp
    engines/mohawk/riven_cursors.h
    engines/mohawk/view.cpp
    engines/parallaction/graphics.cpp
    engines/parallaction/graphics.h
    engines/queen/display.cpp
    engines/saga/gfx.cpp
    engines/saga/gfx.h
    engines/sci/graphics/cursor.cpp
    engines/sci/graphics/palette.cpp
    engines/sci/graphics/transitions.cpp
    engines/scumm/cursor.cpp
    engines/scumm/he/cup_player_he.cpp
    engines/scumm/he/cup_player_he.h
    engines/scumm/he/palette_he.cpp
    engines/scumm/palette.cpp
    engines/scumm/smush/smush_player.cpp
    engines/sky/screen.cpp
    engines/sky/screen.h
    engines/sword1/animation.cpp
    engines/sword1/control.cpp
    engines/sword1/screen.cpp
    engines/sword1/screen.h
    engines/sword2/console.cpp
    engines/sword2/function.cpp
    engines/sword2/mouse.cpp
    engines/sword2/palette.cpp
    engines/sword2/protocol.cpp
    engines/sword2/render.cpp
    engines/sword2/screen.cpp
    engines/sword2/screen.h
    engines/sword2/sprite.cpp
    engines/sword2/sword2.h
    engines/teenagent/scene.cpp
    engines/teenagent/teenagent.cpp
    engines/testbed/graphics.cpp
    engines/testbed/graphics.h
    engines/tinsel/palette.cpp
    engines/toon/toon.cpp
    engines/touche/resource.cpp
    engines/touche/touche.cpp
    engines/touche/touche.h
    engines/tucker/locations.cpp
    engines/tucker/sequences.cpp
    engines/tucker/tucker.cpp
    engines/tucker/tucker.h
    graphics/cursorman.h
    graphics/palette.h
    graphics/scaler/thumbnail_intern.cpp
    gui/ThemeEngine.cpp
    gui/ThemeEngine.h
    gui/gui-manager.cpp
    video/video_decoder.cpp



diff --cc backends/platform/android/android.cpp
index 0424983,fe52936..38bc94e
--- a/backends/platform/android/android.cpp
+++ b/backends/platform/android/android.cpp
@@@ -761,20 -683,8 +753,8 @@@ void OSystem_Android::setPalette(const 
  }
  
  void OSystem_Android::grabPalette(byte *colors, uint start, uint num) {
 -	ENTER("grabPalette(%p, %u, %u)", colors, start, num);
 -	memcpy(colors, _game_texture->palette() + start * 3, num * 3);
 +	ENTER("%p, %u, %u", colors, start, num);
- 
- 	const byte *palette = _game_texture->palette_const() + start * 3;
- 
- 	do {
- 		for (int i = 0; i < 3; ++i)
- 			colors[i] = palette[i];
- 
- 		// alpha
- 		colors[3] = 0xff;
- 
- 		palette += 3;
- 		colors += 4;
- 	} while (--num);
++	memcpy(colors, _game_texture->palette_const() + start * 3, num * 3);
  }
  
  void OSystem_Android::copyRectToScreen(const byte *buf, int pitch,
diff --cc engines/hugo/display.cpp
index f8fa903,9ee7715..a2962ff
--- a/engines/hugo/display.cpp
+++ b/engines/hugo/display.cpp
@@@ -214,10 -208,10 +228,10 @@@ void Screen::savePal(Common::WriteStrea
  /**
   * Restore the current palette from a savegame
   */
 -void Screen::restorePal(Common::SeekableReadStream *f) {
 +void Screen::restorePal(Common::ReadStream *f) {
  	debugC(1, kDebugDisplay, "restorePal()");
  
- 	byte pal[4];
+ 	byte pal[3];
  
  	for (int i = 0; i < _paletteSize; i++)
  		_curPalette[i] = f->readByte();
diff --cc engines/sci/graphics/palette.cpp
index b802f72,b27b5f3..5348903
--- a/engines/sci/graphics/palette.cpp
+++ b/engines/sci/graphics/palette.cpp
@@@ -421,36 -404,11 +421,36 @@@ void GfxPalette::setOnScreen() 
  	// We dont change palette at all times for amiga
  	if (_resMan->isAmiga32color())
  		return;
 -	_screen->setPalette(&_sysPalette);
  
 -	// Redraw the Mac SCI1.1 Icon bar every palette change
 -	if (g_sci->_gfxMacIconBar)
 -		g_sci->_gfxMacIconBar->drawIcons();
 +	copySysPaletteToScreen();
 +}
 +
 +static byte convertMacGammaToSCIGamma(int comp) {
 +	return (byte)sqrt(comp * 255.0f);
 +}
 +
 +void GfxPalette::copySysPaletteToScreen() {
 +	// just copy palette to system
- 	byte bpal[4 * 256];
++	byte bpal[3 * 256];
 +
 +	// Get current palette, update it and put back
 +	g_system->getPaletteManager()->grabPalette(bpal, 0, 256);
 +
 +	for (int16 i = 0; i < 256; i++) {
 +		if (colorIsFromMacClut(i)) {
 +			// If we've got a Mac CLUT, override the SCI palette with its non-black colors
- 			bpal[i * 4    ] = convertMacGammaToSCIGamma(_macClut[i * 3    ]);
- 			bpal[i * 4 + 1] = convertMacGammaToSCIGamma(_macClut[i * 3 + 1]);
- 			bpal[i * 4 + 2] = convertMacGammaToSCIGamma(_macClut[i * 3 + 2]);
++			bpal[i * 3    ] = convertMacGammaToSCIGamma(_macClut[i * 3    ]);
++			bpal[i * 3 + 1] = convertMacGammaToSCIGamma(_macClut[i * 3 + 1]);
++			bpal[i * 3 + 2] = convertMacGammaToSCIGamma(_macClut[i * 3 + 2]);
 +		} else if (_sysPalette.colors[i].used != 0) {
 +			// Otherwise, copy to the screen
- 			bpal[i * 4    ] = CLIP(_sysPalette.colors[i].r * _sysPalette.intensity[i] / 100, 0, 255);
- 			bpal[i * 4 + 1] = CLIP(_sysPalette.colors[i].g * _sysPalette.intensity[i] / 100, 0, 255);
- 			bpal[i * 4 + 2] = CLIP(_sysPalette.colors[i].b * _sysPalette.intensity[i] / 100, 0, 255);
++			bpal[i * 3    ] = CLIP(_sysPalette.colors[i].r * _sysPalette.intensity[i] / 100, 0, 255);
++			bpal[i * 3 + 1] = CLIP(_sysPalette.colors[i].g * _sysPalette.intensity[i] / 100, 0, 255);
++			bpal[i * 3 + 2] = CLIP(_sysPalette.colors[i].b * _sysPalette.intensity[i] / 100, 0, 255);
 +		}
 +	}
 +
 +	g_system->getPaletteManager()->setPalette(bpal, 0, 256);
  }
  
  bool GfxPalette::kernelSetFromResource(GuiResourceId resourceId, bool force) {
@@@ -608,16 -565,7 +608,16 @@@ void GfxPalette::kernelAssertPalette(Gu
  }
  
  void GfxPalette::kernelSyncScreenPalette() {
 -	_screen->getPalette(&_sysPalette);
 +	// just copy palette to system
- 	byte bpal[4 * 256];
++	byte bpal[3 * 256];
 +
 +	// Get current palette, update it and put back
 +	g_system->getPaletteManager()->grabPalette(bpal, 0, 256);
 +	for (int16 i = 1; i < 255; i++) {
- 		_sysPalette.colors[i].r = bpal[i * 4];
- 		_sysPalette.colors[i].g = bpal[i * 4 + 1];
- 		_sysPalette.colors[i].b = bpal[i * 4 + 2];
++		_sysPalette.colors[i].r = bpal[i * 3];
++		_sysPalette.colors[i].g = bpal[i * 3 + 1];
++		_sysPalette.colors[i].b = bpal[i * 3 + 2];
 +	}
  }
  
  // palVary
diff --cc engines/sci/graphics/transitions.cpp
index e741f66,5e14778..e025a2f
--- a/engines/sci/graphics/transitions.cpp
+++ b/engines/sci/graphics/transitions.cpp
@@@ -311,19 -312,12 +311,18 @@@ void GfxTransitions::fadeOut() 
  	g_system->getPaletteManager()->grabPalette(oldPalette, 0, 256);
  
  	for (stepNr = 100; stepNr >= 0; stepNr -= 10) {
 -		for (colorNr = 1; colorNr < tillColorNr; colorNr++){
 -			workPalette[colorNr * 3 + 0] = oldPalette[colorNr * 3] * stepNr / 100;
 -			workPalette[colorNr * 3 + 1] = oldPalette[colorNr * 3 + 1] * stepNr / 100;
 -			workPalette[colorNr * 3 + 2] = oldPalette[colorNr * 3 + 2] * stepNr / 100;
 +		for (colorNr = 1; colorNr < tillColorNr; colorNr++) {
 +			if (_palette->colorIsFromMacClut(colorNr)) {
- 				workPalette[colorNr * 4 + 0] = oldPalette[colorNr * 4];
- 				workPalette[colorNr * 4 + 1] = oldPalette[colorNr * 4 + 1];
- 				workPalette[colorNr * 4 + 2] = oldPalette[colorNr * 4 + 2];
++				workPalette[colorNr * 3 + 0] = oldPalette[colorNr * 3];
++				workPalette[colorNr * 3 + 1] = oldPalette[colorNr * 3 + 1];
++				workPalette[colorNr * 3 + 2] = oldPalette[colorNr * 3 + 2];
 +			} else {
- 				workPalette[colorNr * 4 + 0] = oldPalette[colorNr * 4] * stepNr / 100;
- 				workPalette[colorNr * 4 + 1] = oldPalette[colorNr * 4 + 1] * stepNr / 100;
- 				workPalette[colorNr * 4 + 2] = oldPalette[colorNr * 4 + 2] * stepNr / 100;
++				workPalette[colorNr * 3 + 0] = oldPalette[colorNr * 3] * stepNr / 100;
++				workPalette[colorNr * 3 + 1] = oldPalette[colorNr * 3 + 1] * stepNr / 100;
++				workPalette[colorNr * 3 + 2] = oldPalette[colorNr * 3 + 2] * stepNr / 100;
 +			}
  		}
- 
- 		g_system->getPaletteManager()->setPalette(workPalette + 4, 1, 254);
+ 		g_system->getPaletteManager()->setPalette(workPalette + 3, 1, 254);
  		g_sci->getEngineState()->wait(2);
  	}
  }






More information about the Scummvm-git-logs mailing list