From 2859c9130462e66df705d534f9a70d1430628be7 Mon Sep 17 00:00:00 2001 From: Jody Northup Date: Fri, 26 Jun 2009 08:50:11 +0000 Subject: Changed cursor manager functions to take *Graphics::PixelFormat with default parameter of NULL (and initialize NULL pointers with CLUT8), rather than taking a Graphics::PixelFormat with default parameter of Graphics::PixelFormat::createFormatCLUT8() svn-id: r41900 --- engines/scumm/cursor.cpp | 3 ++- graphics/cursorman.cpp | 15 +++++++++------ graphics/cursorman.h | 14 ++++++++------ 3 files changed, 19 insertions(+), 13 deletions(-) diff --git a/engines/scumm/cursor.cpp b/engines/scumm/cursor.cpp index 190c337c63..66ac68bd95 100644 --- a/engines/scumm/cursor.cpp +++ b/engines/scumm/cursor.cpp @@ -113,11 +113,12 @@ void ScummEngine_v6::setCursorTransparency(int a) { void ScummEngine::updateCursor() { int transColor = (_game.heversion >= 80) ? 5 : 255; #ifdef ENABLE_RGB_COLOR + Graphics::PixelFormat format = _system->getScreenFormat(); CursorMan.replaceCursor(_grabbedCursor, _cursor.width, _cursor.height, _cursor.hotspotX, _cursor.hotspotY, (_game.platform == Common::kPlatformNES ? _grabbedCursor[63] : transColor), (_game.heversion == 70 ? 2 : 1), - _system->getScreenFormat()); + &format); #else CursorMan.replaceCursor(_grabbedCursor, _cursor.width, _cursor.height, _cursor.hotspotX, _cursor.hotspotY, diff --git a/graphics/cursorman.cpp b/graphics/cursorman.cpp index 76ebb9b455..574950a09b 100644 --- a/graphics/cursorman.cpp +++ b/graphics/cursorman.cpp @@ -57,14 +57,14 @@ bool CursorManager::showMouse(bool visible) { return g_system->showMouse(visible); } -void CursorManager::pushCursor(const byte *buf, uint w, uint h, int hotspotX, int hotspotY, uint32 keycolor, int targetScale, Graphics::PixelFormat format) { +void CursorManager::pushCursor(const byte *buf, uint w, uint h, int hotspotX, int hotspotY, uint32 keycolor, int targetScale, Graphics::PixelFormat *format) { Cursor *cur = new Cursor(buf, w, h, hotspotX, hotspotY, keycolor, targetScale, format); cur->_visible = isVisible(); _cursorStack.push(cur); if (buf) { - g_system->setMouseCursor(cur->_data, w, h, hotspotX, hotspotY, keycolor, targetScale, format); + g_system->setMouseCursor(cur->_data, w, h, hotspotX, hotspotY, keycolor, targetScale, *format); } } @@ -100,7 +100,7 @@ void CursorManager::popAllCursors() { g_system->showMouse(isVisible()); } -void CursorManager::replaceCursor(const byte *buf, uint w, uint h, int hotspotX, int hotspotY, uint32 keycolor, int targetScale, Graphics::PixelFormat format) { +void CursorManager::replaceCursor(const byte *buf, uint w, uint h, int hotspotX, int hotspotY, uint32 keycolor, int targetScale, Graphics::PixelFormat *format) { if (_cursorStack.empty()) { pushCursor(buf, w, h, hotspotX, hotspotY, keycolor, targetScale, format); @@ -110,7 +110,10 @@ void CursorManager::replaceCursor(const byte *buf, uint w, uint h, int hotspotX, Cursor *cur = _cursorStack.top(); #ifdef ENABLE_RGB_COLOR - uint size = w * h * format.bytesPerPixel; + if (!format) + format = new Graphics::PixelFormat(1,8,8,8,8,0,0,0,0); + + uint size = w * h * format->bytesPerPixel; #else uint size = w * h; #endif @@ -131,10 +134,10 @@ void CursorManager::replaceCursor(const byte *buf, uint w, uint h, int hotspotX, cur->_keycolor = keycolor; cur->_targetScale = targetScale; #ifdef ENABLE_RGB_COLOR - cur->_format = format; + cur->_format = *format; #endif - g_system->setMouseCursor(cur->_data, w, h, hotspotX, hotspotY, keycolor, targetScale, format); + g_system->setMouseCursor(cur->_data, w, h, hotspotX, hotspotY, keycolor, targetScale, *format); } void CursorManager::disableCursorPalette(bool disable) { diff --git a/graphics/cursorman.h b/graphics/cursorman.h index 1ac711caec..2b2f34f952 100644 --- a/graphics/cursorman.h +++ b/graphics/cursorman.h @@ -61,7 +61,7 @@ public: * useful to push a "dummy" cursor and modify it later. The * cursor will be added to the stack, but not to the backend. */ - void pushCursor(const byte *buf, uint w, uint h, int hotspotX, int hotspotY, uint32 keycolor = 0xFFFFFFFF, int targetScale = 1, Graphics::PixelFormat format = Graphics::PixelFormat::createFormatCLUT8()); + void pushCursor(const byte *buf, uint w, uint h, int hotspotX, int hotspotY, uint32 keycolor = 0xFFFFFFFF, int targetScale = 1, Graphics::PixelFormat *format = NULL); /** * Pop a cursor from the stack, and restore the previous one to the @@ -83,7 +83,7 @@ public: * @param targetScale the scale for which the cursor is designed * @param format the pixel format which the cursor graphic uses */ - void replaceCursor(const byte *buf, uint w, uint h, int hotspotX, int hotspotY, uint32 keycolor = 0xFFFFFFFF, int targetScale = 1, Graphics::PixelFormat format = Graphics::PixelFormat::createFormatCLUT8()); + void replaceCursor(const byte *buf, uint w, uint h, int hotspotX, int hotspotY, uint32 keycolor = 0xFFFFFFFF, int targetScale = 1, Graphics::PixelFormat *format = NULL); /** * Pop all of the cursors and cursor palettes from their respective stacks. @@ -154,11 +154,13 @@ private: byte _targetScale; uint _size; - Cursor(const byte *data, uint w, uint h, int hotspotX, int hotspotY, uint32 keycolor = 0xFFFFFFFF, int targetScale = 1, Graphics::PixelFormat format = Graphics::PixelFormat::createFormatCLUT8()) { + Cursor(const byte *data, uint w, uint h, int hotspotX, int hotspotY, uint32 keycolor = 0xFFFFFFFF, int targetScale = 1, Graphics::PixelFormat *format = NULL) { #ifdef ENABLE_RGB_COLOR - _size = w * h * format.bytesPerPixel; - _keycolor = keycolor & ((1 << (format.bytesPerPixel << 3)) - 1); - _format = format; + if (!format) + format = new Graphics::PixelFormat(1,8,8,8,8,0,0,0,0); + _size = w * h * format->bytesPerPixel; + _keycolor &= ((1 << (format->bytesPerPixel << 3)) - 1); + _format = *format; #else _size = w * h; _keycolor = keycolor & 0xFF; -- cgit v1.2.3