From fb96e826f27b071d6696731f43cb5fa0d8760205 Mon Sep 17 00:00:00 2001 From: Jody Northup Date: Tue, 16 Jun 2009 05:33:11 +0000 Subject: Simplified cursor related 16-bit code. svn-id: r41577 --- backends/platform/sdl/graphics.cpp | 4 ++-- graphics/cursorman.cpp | 14 +------------- graphics/cursorman.h | 18 +++--------------- 3 files changed, 6 insertions(+), 30 deletions(-) diff --git a/backends/platform/sdl/graphics.cpp b/backends/platform/sdl/graphics.cpp index 2cee0ea83d..f4269b55b2 100644 --- a/backends/platform/sdl/graphics.cpp +++ b/backends/platform/sdl/graphics.cpp @@ -1379,11 +1379,11 @@ void OSystem_SDL::warpMouse(int x, int y) { } } -#ifdef ENABLE_16BIT void OSystem_SDL::setMouseCursor(const byte *buf, uint w, uint h, int hotspot_x, int hotspot_y, uint32 keycolor, int cursorTargetScale) { +#ifdef ENABLE_16BIT keycolor &= (1 << (_cursorFormat.bytesPerPixel << 3)) - 1; #else -void OSystem_SDL::setMouseCursor(const byte *buf, uint w, uint h, int hotspot_x, int hotspot_y, byte keycolor, int cursorTargetScale) { + keycolor &= 0xFF; #endif if (w == 0 || h == 0) diff --git a/graphics/cursorman.cpp b/graphics/cursorman.cpp index e5a86b6bd8..6446216867 100644 --- a/graphics/cursorman.cpp +++ b/graphics/cursorman.cpp @@ -57,11 +57,7 @@ bool CursorManager::showMouse(bool visible) { return g_system->showMouse(visible); } -#ifdef ENABLE_16BIT void CursorManager::pushCursor(const byte *buf, uint w, uint h, int hotspotX, int hotspotY, uint32 keycolor, int targetScale) { -#else -void CursorManager::pushCursor(const byte *buf, uint w, uint h, int hotspotX, int hotspotY, byte keycolor, int targetScale) { -#endif Cursor *cur = new Cursor(buf, w, h, hotspotX, hotspotY, keycolor, targetScale); cur->_visible = isVisible(); @@ -111,11 +107,7 @@ void CursorManager::popAllCursors() { g_system->showMouse(isVisible()); } -#ifdef ENABLE_16BIT void CursorManager::replaceCursor(const byte *buf, uint w, uint h, int hotspotX, int hotspotY, uint32 keycolor, int targetScale) { -#else -void CursorManager::replaceCursor(const byte *buf, uint w, uint h, int hotspotX, int hotspotY, byte keycolor, int targetScale) { -#endif if (_cursorStack.empty()) { pushCursor(buf, w, h, hotspotX, hotspotY, keycolor, targetScale); @@ -125,11 +117,7 @@ void CursorManager::replaceCursor(const byte *buf, uint w, uint h, int hotspotX, Cursor *cur = _cursorStack.top(); #ifdef ENABLE_16BIT - uint size; - { //limit the lifespan of the format variable to minimize memory impact - Graphics::PixelFormat f = g_system->getScreenFormat(); - size = w * h * (f.bytesPerPixel); - } + uint size = w * h * g_system->getScreenFormat().bytesPerPixel; #else uint size = w * h; #endif diff --git a/graphics/cursorman.h b/graphics/cursorman.h index 08da3ac802..32f1b90f3e 100644 --- a/graphics/cursorman.h +++ b/graphics/cursorman.h @@ -60,11 +60,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. */ -#ifdef ENABLE_16BIT void pushCursor(const byte *buf, uint w, uint h, int hotspotX, int hotspotY, uint32 keycolor = 0xFFFFFFFF, int targetScale = 1); -#else - void pushCursor(const byte *buf, uint w, uint h, int hotspotX, int hotspotY, byte keycolor = 255, int targetScale = 1); -#endif /** * Pop a cursor from the stack, and restore the previous one to the @@ -85,11 +81,7 @@ public: * @param keycolor the index for the transparent color * @param targetScale the scale for which the cursor is designed */ -#ifdef ENABLE_16BIT void replaceCursor(const byte *buf, uint w, uint h, int hotspotX, int hotspotY, uint32 keycolor = 0xFFFFFFFF, int targetScale = 1); -#else - void replaceCursor(const byte *buf, uint w, uint h, int hotspotX, int hotspotY, byte keycolor = 255, int targetScale = 1); -#endif /** * Pop all of the cursors and cursor palettes from their respective stacks. @@ -178,26 +170,22 @@ private: uint _height; int _hotspotX; int _hotspotY; -//#ifdef ENABLE_16BIT uint32 _keycolor; -//#else -// byte _keycolor; -//#endif + byte _targetScale; uint _size; -#ifdef ENABLE_16BIT Cursor(const byte *data, uint w, uint h, int hotspotX, int hotspotY, uint32 keycolor = 0xFFFFFFFF, int targetScale = 1, uint8 bitDepth = 8) { +#ifdef ENABLE_16BIT { //limit the lifespan of the format value to minimize impact on memory usage Graphics::PixelFormat f = g_system->getScreenFormat(); _size = w * h * f.bytesPerPixel; _keycolor = keycolor & ((1 << (f.bytesPerPixel << 3)) - 1); } #else - Cursor(const byte *data, uint w, uint h, int hotspotX, int hotspotY, byte keycolor = 255, int targetScale = 1) { _size = w * h; - _keycolor = keycolor; + _keycolor = keycolor & 0xFF; #endif _data = new byte[_size]; if (data && _data) -- cgit v1.2.3