[Scummvm-cvs-logs] SF.net SVN: scummvm: [25500] scummvm/trunk

eriktorbjorn at users.sourceforge.net eriktorbjorn at users.sourceforge.net
Mon Feb 12 01:04:56 CET 2007


Revision: 25500
          http://scummvm.svn.sourceforge.net/scummvm/?rev=25500&view=rev
Author:   eriktorbjorn
Date:     2007-02-11 16:04:56 -0800 (Sun, 11 Feb 2007)

Log Message:
-----------
Merged the "palette manager" into the cursor manager. It was only used to
manage *cursor* palettes, so the name was misleading.

Modified Paths:
--------------
    scummvm/trunk/engines/agi/graphics.cpp
    scummvm/trunk/engines/cine/gfx.cpp
    scummvm/trunk/engines/scumm/cursor.cpp
    scummvm/trunk/engines/scumm/he/resource_he.cpp
    scummvm/trunk/engines/scumm/he/wiz_he.cpp
    scummvm/trunk/graphics/cursorman.cpp
    scummvm/trunk/graphics/cursorman.h
    scummvm/trunk/graphics/module.mk
    scummvm/trunk/gui/ThemeModern.cpp
    scummvm/trunk/gui/newgui.cpp

Removed Paths:
-------------
    scummvm/trunk/graphics/paletteman.cpp
    scummvm/trunk/graphics/paletteman.h

Modified: scummvm/trunk/engines/agi/graphics.cpp
===================================================================
--- scummvm/trunk/engines/agi/graphics.cpp	2007-02-11 23:46:23 UTC (rev 25499)
+++ scummvm/trunk/engines/agi/graphics.cpp	2007-02-12 00:04:56 UTC (rev 25500)
@@ -25,7 +25,6 @@
 #include "common/stdafx.h"
 
 #include "graphics/cursorman.h"
-#include "graphics/paletteman.h"
 
 #include "agi/agi.h"
 #include "agi/graphics.h"
@@ -441,7 +440,7 @@
 		255, 255, 255, 0
 	};
 
-	PaletteMan.replaceCursorPalette(cursorPalette, 0, 3);
+	CursorMan.replaceCursorPalette(cursorPalette, 0, 3);
 	CursorMan.replaceCursor(mouseCursor, 16, 16, 1, 1);
 
 	return errOK;

Modified: scummvm/trunk/engines/cine/gfx.cpp
===================================================================
--- scummvm/trunk/engines/cine/gfx.cpp	2007-02-11 23:46:23 UTC (rev 25499)
+++ scummvm/trunk/engines/cine/gfx.cpp	2007-02-12 00:04:56 UTC (rev 25500)
@@ -28,7 +28,6 @@
 #include "common/system.h"
 
 #include "graphics/cursorman.h"
-#include "graphics/paletteman.h"
 
 namespace Cine {
 
@@ -125,7 +124,7 @@
 			++src;
 		}
 		CursorMan.replaceCursor(mouseCursor, 16, 16, mc->hotspotX, mc->hotspotY);
-		PaletteMan.replaceCursorPalette(cursorPalette, 0, 2);
+		CursorMan.replaceCursorPalette(cursorPalette, 0, 2);
 		currentMouseCursor = cursor;
 	}
 }

Modified: scummvm/trunk/engines/scumm/cursor.cpp
===================================================================
--- scummvm/trunk/engines/scumm/cursor.cpp	2007-02-11 23:46:23 UTC (rev 25499)
+++ scummvm/trunk/engines/scumm/cursor.cpp	2007-02-12 00:04:56 UTC (rev 25500)
@@ -24,7 +24,6 @@
 #include "common/system.h"
 #include "common/util.h"
 #include "graphics/cursorman.h"
-#include "graphics/paletteman.h"
 #include "scumm/bomp.h"
 #include "scumm/charset.h"
 #include "scumm/intern.h"
@@ -178,7 +177,7 @@
 
 	// Since white color position is not guaranteed
 	// we setup our own palette if supported by backend
-	PaletteMan.replaceCursorPalette(palette, 0xfe, 2);
+	CursorMan.replaceCursorPalette(palette, 0xfe, 2);
 
 	updateCursor();
 }

Modified: scummvm/trunk/engines/scumm/he/resource_he.cpp
===================================================================
--- scummvm/trunk/engines/scumm/he/resource_he.cpp	2007-02-11 23:46:23 UTC (rev 25499)
+++ scummvm/trunk/engines/scumm/he/resource_he.cpp	2007-02-12 00:04:56 UTC (rev 25500)
@@ -33,7 +33,7 @@
 #include "scumm/he/sound_he.h"
 
 #include "sound/wave.h"
-#include "graphics/paletteman.h"
+#include "graphics/cursorman.h"
 
 #include "common/stream.h"
 #include "common/system.h"
@@ -112,7 +112,7 @@
 	}
 
 	if (cc->palette)
-		PaletteMan.replaceCursorPalette(cc->palette, 0, cc->palSize);
+		CursorMan.replaceCursorPalette(cc->palette, 0, cc->palSize);
 
 	_vm->setCursorHotspot(cc->hotspot_x, cc->hotspot_y);
 	_vm->setCursorFromBuffer(cc->bitmap, cc->w, cc->h, cc->w);

Modified: scummvm/trunk/engines/scumm/he/wiz_he.cpp
===================================================================
--- scummvm/trunk/engines/scumm/he/wiz_he.cpp	2007-02-11 23:46:23 UTC (rev 25499)
+++ scummvm/trunk/engines/scumm/he/wiz_he.cpp	2007-02-12 00:04:56 UTC (rev 25500)
@@ -24,7 +24,7 @@
 #include "common/stdafx.h"
 
 #include "common/system.h"
-#include "graphics/paletteman.h"
+#include "graphics/cursorman.h"
 #include "scumm/he/intern_he.h"
 #include "scumm/resource.h"
 #include "scumm/scumm.h"
@@ -1539,7 +1539,7 @@
 	_vm->setCursorFromBuffer(cursor, cw, ch, cw);
 
 	// Since we set up cursor palette for default cursor, disable it now
-	PaletteMan.disableCursorPalette(true);
+	CursorMan.disableCursorPalette(true);
 
 	free(cursor);
 }

Modified: scummvm/trunk/graphics/cursorman.cpp
===================================================================
--- scummvm/trunk/graphics/cursorman.cpp	2007-02-11 23:46:23 UTC (rev 25499)
+++ scummvm/trunk/graphics/cursorman.cpp	2007-02-12 00:04:56 UTC (rev 25500)
@@ -34,6 +34,7 @@
 	if (!g_initialized) {
 		g_initialized = true;
 		_cursorStack.clear();
+		_cursorPaletteStack.clear();
 	}
 }
 
@@ -107,4 +108,83 @@
 	g_system->setMouseCursor(cur->_data, w, h, hotspotX, hotspotY, keycolor, targetScale);
 }
 
+void CursorManager::disableCursorPalette(bool disable) {
+	if (!g_system->hasFeature(OSystem::kFeatureCursorHasPalette))
+		return;
+
+	if (_cursorPaletteStack.empty())
+		return;
+
+	Palette *pal = _cursorPaletteStack.top();
+	pal->_disabled = disable;
+
+	g_system->disableCursorPalette(true);
+}
+
+void CursorManager::pushCursorPalette(const byte *colors, uint start, uint num) {
+	if (!g_system->hasFeature(OSystem::kFeatureCursorHasPalette))
+		return;
+
+	Palette *pal = new Palette(colors, start, num);
+	_cursorPaletteStack.push(pal);
+
+	if (num)
+		g_system->setCursorPalette(colors, start, num);
+	else
+		g_system->disableCursorPalette(true);
+}
+
+void CursorManager::popCursorPalette() {
+	if (!g_system->hasFeature(OSystem::kFeatureCursorHasPalette))
+		return;
+
+	if (_cursorPaletteStack.empty())
+		return;
+
+	Palette *pal = _cursorPaletteStack.pop();
+	delete pal;
+
+	if (_cursorPaletteStack.empty()) {
+		g_system->disableCursorPalette(true);
+		return;
+	}
+
+	pal = _cursorPaletteStack.top();
+
+	if (pal->_num && !pal->_disabled)
+		g_system->setCursorPalette(pal->_data, pal->_start, pal->_num);
+	else
+		g_system->disableCursorPalette(true);
+}
+
+void CursorManager::replaceCursorPalette(const byte *colors, uint start, uint num) {
+	if (!g_system->hasFeature(OSystem::kFeatureCursorHasPalette))
+		return;
+
+	if (_cursorPaletteStack.empty()) {
+		pushCursorPalette(colors, start, num);
+		return;
+	}
+
+	Palette *pal = _cursorPaletteStack.top();
+	uint size = 4 * num;
+
+	if (pal->_size < size) {
+		// Could not re-use the old buffer. Create a new one.
+		delete[] pal->_data;
+		pal->_data = new byte[size];
+		pal->_size = size;
+	}
+
+	pal->_start = start;
+	pal->_num = num;
+
+	if (num) {
+		memcpy(pal->_data, colors, 4 * num);
+		g_system->setCursorPalette(pal->_data, pal->_start, pal->_num);
+	} else {
+		g_system->disableCursorPalette(true);
+	}
+}
+
 } // End of namespace Graphics

Modified: scummvm/trunk/graphics/cursorman.h
===================================================================
--- scummvm/trunk/graphics/cursorman.h	2007-02-11 23:46:23 UTC (rev 25499)
+++ scummvm/trunk/graphics/cursorman.h	2007-02-12 00:04:56 UTC (rev 25500)
@@ -74,6 +74,49 @@
 	 */
 	void replaceCursor(const byte *buf, uint w, uint h, int hotspotX, int hotspotY, byte keycolor = 255, int targetScale = 1);
 
+	/**
+	 * Enable/Disable the current cursor palette.
+	 *
+	 * @param disable
+	 */
+	void disableCursorPalette(bool disable);
+
+	/**
+	 * Push a new cursor palette onto the stack, and set it in the backend.
+	 * The palette entries from 'start' till (start+num-1) will be replaced
+	 * so a full palette updated is accomplished via start=0, num=256.
+	 *
+	 * The palette data is specified in the same interleaved RGBA format as
+	 * used by all backends.
+	 *
+	 * @param colors	the new palette data, in interleaved RGB format
+	 * @param start		the first palette entry to be updated
+	 * @param num		the number of palette entries to be updated
+	 *
+	 * @note If num is zero, the cursor palette is disabled.
+	 */
+	void pushCursorPalette(const byte *colors, uint start, uint num);
+
+	/**
+	 * Pop a cursor palette from the stack, and restore the previous one to
+	 * the backend. If there is no previous palette, the cursor palette is
+	 * disabled instead.
+	 */
+	void popCursorPalette();
+
+	/**
+	 * Replace the current cursor palette on the stack. If the stack is
+	 * empty, the palette is pushed instead. It's a slightly more optimized
+	 * way of popping the old palette before pushing the new one.
+	 *
+	 * @param colors	the new palette data, in interleaved RGB format
+	 * @param start		the first palette entry to be updated
+	 * @param num		the number of palette entries to be updated
+	 *
+	 * @note If num is zero, the cursor palette is disabled.
+	 */
+	void replaceCursorPalette(const byte *colors, uint start, uint num);
+
 private:
 	friend class Common::Singleton<SingletonBaseType>;
 	CursorManager();
@@ -108,13 +151,40 @@
 		}
 	};
 
+	struct Palette {
+		byte *_data;
+		uint _start;
+		uint _num;
+		uint _size;
+
+		bool _disabled;
+
+		Palette(const byte *colors, uint start, uint num) {
+			_start = start;
+			_num = num;
+			_size = 4 * num;
+
+			if (num) {
+				_data = new byte[_size];
+				memcpy(_data, colors, _size);
+			} else {
+				_data = NULL;
+			}
+
+			_disabled = false;
+		}
+
+		~Palette() {
+			delete [] _data;
+		}
+	};
+
 	Common::Stack<Cursor *> _cursorStack;
+	Common::Stack<Palette *> _cursorPaletteStack;
 };
 
-
 } // End of namespace Graphics
 
-/** Shortcut for accessing the cursor manager. */
 #define CursorMan	(::Graphics::CursorManager::instance())
 
 #endif

Modified: scummvm/trunk/graphics/module.mk
===================================================================
--- scummvm/trunk/graphics/module.mk	2007-02-11 23:46:23 UTC (rev 25499)
+++ scummvm/trunk/graphics/module.mk	2007-02-12 00:04:56 UTC (rev 25500)
@@ -13,7 +13,6 @@
 	imagedec.o \
 	imageman.o \
 	mpeg_player.o \
-	paletteman.o \
 	primitives.o \
 	scaler.o \
 	scaler/thumbnail.o \

Deleted: scummvm/trunk/graphics/paletteman.cpp
===================================================================
--- scummvm/trunk/graphics/paletteman.cpp	2007-02-11 23:46:23 UTC (rev 25499)
+++ scummvm/trunk/graphics/paletteman.cpp	2007-02-12 00:04:56 UTC (rev 25500)
@@ -1,119 +0,0 @@
-/* ScummVM - Scumm Interpreter
- * Copyright (C) 2006 The ScummVM project
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * $URL$
- * $Id$
- */
-
-#include "graphics/paletteman.h"
-
-#include "common/system.h"
-#include "common/stack.h"
-
-DECLARE_SINGLETON(Graphics::PaletteManager);
-
-namespace Graphics {
-
-static bool g_initialized = false;
-
-PaletteManager::PaletteManager() {
-	if (!g_initialized) {
-		g_initialized = true;
-		_cursorPaletteStack.clear();
-	}
-}
-
-void PaletteManager::disableCursorPalette(bool disable) {
-	if (!g_system->hasFeature(OSystem::kFeatureCursorHasPalette))
-		return;
-
-	if (_cursorPaletteStack.empty())
-		return;
-
-	Palette *pal = _cursorPaletteStack.top();
-	pal->_disabled = disable;
-
-	g_system->disableCursorPalette(true);
-}
-
-void PaletteManager::pushCursorPalette(const byte *colors, uint start, uint num) {
-	if (!g_system->hasFeature(OSystem::kFeatureCursorHasPalette))
-		return;
-
-	Palette *pal = new Palette(colors, start, num);
-	_cursorPaletteStack.push(pal);
-
-	if (num)
-		g_system->setCursorPalette(colors, start, num);
-	else
-		g_system->disableCursorPalette(true);
-}
-
-void PaletteManager::popCursorPalette() {
-	if (!g_system->hasFeature(OSystem::kFeatureCursorHasPalette))
-		return;
-
-	if (_cursorPaletteStack.empty())
-		return;
-
-	Palette *pal = _cursorPaletteStack.pop();
-	delete pal;
-
-	if (_cursorPaletteStack.empty()) {
-		g_system->disableCursorPalette(true);
-		return;
-	}
-
-	pal = _cursorPaletteStack.top();
-
-	if (pal->_num && !pal->_disabled)
-		g_system->setCursorPalette(pal->_data, pal->_start, pal->_num);
-	else
-		g_system->disableCursorPalette(true);
-}
-
-void PaletteManager::replaceCursorPalette(const byte *colors, uint start, uint num) {
-	if (!g_system->hasFeature(OSystem::kFeatureCursorHasPalette))
-		return;
-
-	if (_cursorPaletteStack.empty()) {
-		pushCursorPalette(colors, start, num);
-		return;
-	}
-
-	Palette *pal = _cursorPaletteStack.top();
-	uint size = 4 * num;
-
-	if (pal->_size < size) {
-		// Could not re-use the old buffer. Create a new one.
-		delete[] pal->_data;
-		pal->_data = new byte[size];
-		pal->_size = size;
-	}
-
-	pal->_start = start;
-	pal->_num = num;
-
-	if (num) {
-		memcpy(pal->_data, colors, 4 * num);
-		g_system->setCursorPalette(pal->_data, pal->_start, pal->_num);
-	} else {
-		g_system->disableCursorPalette(true);
-	}
-}
-
-} // End of namespace Graphics

Deleted: scummvm/trunk/graphics/paletteman.h
===================================================================
--- scummvm/trunk/graphics/paletteman.h	2007-02-11 23:46:23 UTC (rev 25499)
+++ scummvm/trunk/graphics/paletteman.h	2007-02-12 00:04:56 UTC (rev 25500)
@@ -1,118 +0,0 @@
-/* ScummVM - Scumm Interpreter
- * Copyright (C) 2006 The ScummVM project
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * $URL$
- * $Id$
- */
-
-#ifndef GRAPHICS_PALETTEMAN_H
-#define GRAPHICS_PALETTEMAN_H
-
-#include "common/stdafx.h"
-#include "common/scummsys.h"
-#include "common/stack.h"
-#include "common/singleton.h"
-
-namespace Graphics {
-
-class PaletteManager : public Common::Singleton<PaletteManager> {
-public:
-	/**
-	 * Enable/Disable the current cursor palette.
-	 *
-	 * @param disable
-	 */
-	void disableCursorPalette(bool disable);
-
-	/**
-	 * Push a new cursor palette onto the stack, and set it in the backend.
-	 * The palette entries from 'start' till (start+num-1) will be replaced
-	 * so a full palette updated is accomplished via start=0, num=256.
-	 *
-	 * The palette data is specified in the same interleaved RGBA format as
-	 * used by all backends.
-	 *
-	 * @param colors	the new palette data, in interleaved RGB format
-	 * @param start		the first palette entry to be updated
-	 * @param num		the number of palette entries to be updated
-	 *
-	 * @note If num is zero, the cursor palette is disabled.
-	 */
-	void pushCursorPalette(const byte *colors, uint start, uint num);
-
-	/**
-	 * Pop a cursor palette from the stack, and restore the previous one to
-	 * the backend. If there is no previous palette, the cursor palette is
-	 * disabled instead.
-	 */
-	void popCursorPalette();
-
-	/**
-	 * Replace the current cursor palette on the stack. If the stack is
-	 * empty, the palette is pushed instead. It's a slightly more optimized
-	 * way of popping the old palette before pushing the new one.
-	 *
-	 * @param colors	the new palette data, in interleaved RGB format
-	 * @param start		the first palette entry to be updated
-	 * @param num		the number of palette entries to be updated
-	 *
-	 * @note If num is zero, the cursor palette is disabled.
-	 */
-	void replaceCursorPalette(const byte *colors, uint start, uint num);
-
-private:
-	friend class Common::Singleton<SingletonBaseType>;
-	PaletteManager();
-
-	struct Palette {
-		byte *_data;
-		uint _start;
-		uint _num;
-		uint _size;
-
-		bool _disabled;
-
-		Palette(const byte *colors, uint start, uint num) {
-			_start = start;
-			_num = num;
-			_size = 4 * num;
-
-			if (num) {
-				_data = new byte[_size];
-				memcpy(_data, colors, _size);
-			} else {
-				_data = NULL;
-			}
-
-			_disabled = false;
-		}
-
-		~Palette() {
-			delete [] _data;
-		}
-	};
-
-	Common::Stack<Palette *> _cursorPaletteStack;
-};
-
-
-} // End of namespace Graphics
-
-/** Shortcut for accessing the palette manager. */
-#define PaletteMan	(Graphics::PaletteManager::instance())
-
-#endif

Modified: scummvm/trunk/gui/ThemeModern.cpp
===================================================================
--- scummvm/trunk/gui/ThemeModern.cpp	2007-02-11 23:46:23 UTC (rev 25499)
+++ scummvm/trunk/gui/ThemeModern.cpp	2007-02-12 00:04:56 UTC (rev 25500)
@@ -28,7 +28,6 @@
 #include "graphics/imagedec.h"
 #include "graphics/colormasks.h"
 #include "graphics/cursorman.h"
-#include "graphics/paletteman.h"
 
 #include "common/config-manager.h"
 #include "common/file.h"
@@ -160,7 +159,7 @@
 	resetupGuiRenderer();
 	if (_enabled) {
 		_system->showOverlay();
-		PaletteMan.replaceCursorPalette(_cursorPal, 0, MAX_CURS_COLORS);
+		CursorMan.replaceCursorPalette(_cursorPal, 0, MAX_CURS_COLORS);
 		CursorMan.replaceCursor(_cursor, _cursorWidth, _cursorHeight, _cursorHotspotX, _cursorHotspotY, 255, _cursorTargetScale);
 	}		
 }
@@ -179,7 +178,7 @@
 void ThemeModern::disable() {
 	_system->hideOverlay();
 	if (_useCursor) {
-		PaletteMan.popCursorPalette();
+		CursorMan.popCursorPalette();
 		CursorMan.popCursor();
 	}
 	_enabled = false;
@@ -1477,7 +1476,7 @@
 #pragma mark -
 
 void ThemeModern::setUpCursor() {
-	PaletteMan.pushCursorPalette(_cursorPal, 0, MAX_CURS_COLORS);
+	CursorMan.pushCursorPalette(_cursorPal, 0, MAX_CURS_COLORS);
 	CursorMan.pushCursor(_cursor, _cursorWidth, _cursorHeight, _cursorHotspotX, _cursorHotspotY, 255, _cursorTargetScale);
 	CursorMan.showMouse(true);
 }

Modified: scummvm/trunk/gui/newgui.cpp
===================================================================
--- scummvm/trunk/gui/newgui.cpp	2007-02-11 23:46:23 UTC (rev 25499)
+++ scummvm/trunk/gui/newgui.cpp	2007-02-12 00:04:56 UTC (rev 25500)
@@ -23,7 +23,6 @@
 #include "common/system.h"
 #include "common/util.h"
 #include "graphics/cursorman.h"
-#include "graphics/paletteman.h"
 #include "gui/newgui.h"
 #include "gui/dialog.h"
 #include "gui/eval.h"
@@ -139,7 +138,7 @@
 		_theme->disable();
 
 	if (_useStdCursor) {
-		PaletteMan.popCursorPalette();
+		CursorMan.popCursorPalette();
 		CursorMan.popCursor();
 	}
 
@@ -367,7 +366,7 @@
 void NewGui::restoreState() {
 	if (_useStdCursor) {
 		CursorMan.popCursor();
-		PaletteMan.popCursorPalette();
+		CursorMan.popCursorPalette();
 	}
 
 	_system->updateScreen();
@@ -415,7 +414,7 @@
 		 87,  87,  87, 0
 	};
 
-	PaletteMan.pushCursorPalette(palette, 0, 4);
+	CursorMan.pushCursorPalette(palette, 0, 4);
 	CursorMan.pushCursor(NULL, 0, 0, 0, 0);
 	CursorMan.showMouse(true);
 }


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list