aboutsummaryrefslogtreecommitdiff
path: root/backends
diff options
context:
space:
mode:
Diffstat (limited to 'backends')
-rw-r--r--backends/platform/PalmOS/Src/base_gfx.cpp2
-rw-r--r--backends/platform/PalmOS/Src/be_base.h3
-rw-r--r--backends/platform/PalmOS/Src/be_os5.h2
-rw-r--r--backends/platform/PalmOS/Src/be_zodiac.h2
-rw-r--r--backends/platform/PalmOS/Src/os5_gfx.cpp4
-rw-r--r--backends/platform/PalmOS/Src/os5_overlay.cpp10
-rw-r--r--backends/platform/PalmOS/Src/zodiac_gfx.cpp4
-rw-r--r--backends/platform/PalmOS/Src/zodiac_overlay.cpp10
-rw-r--r--backends/platform/dc/dc.h7
-rw-r--r--backends/platform/ds/arm9/source/osystem_ds.h19
-rw-r--r--backends/platform/gp2x/gp2x-common.h5
-rw-r--r--backends/platform/gp2x/graphics.cpp8
-rw-r--r--backends/platform/iphone/osys_iphone.cpp2
-rw-r--r--backends/platform/iphone/osys_iphone.h1
-rw-r--r--backends/platform/null/null.cpp10
-rw-r--r--backends/platform/ps2/systemps2.cpp10
-rw-r--r--backends/platform/ps2/systemps2.h4
-rw-r--r--backends/platform/psp/osys_psp.cpp10
-rw-r--r--backends/platform/psp/osys_psp.h2
-rw-r--r--backends/platform/sdl/graphics.cpp8
-rw-r--r--backends/platform/sdl/sdl.h5
-rw-r--r--backends/platform/wii/osystem.h4
-rw-r--r--backends/platform/wii/osystem_gfx.cpp17
-rw-r--r--backends/platform/wince/wince-sdl.cpp2
24 files changed, 17 insertions, 134 deletions
diff --git a/backends/platform/PalmOS/Src/base_gfx.cpp b/backends/platform/PalmOS/Src/base_gfx.cpp
index c96a258d52..cb40bb55e5 100644
--- a/backends/platform/PalmOS/Src/base_gfx.cpp
+++ b/backends/platform/PalmOS/Src/base_gfx.cpp
@@ -152,7 +152,7 @@ void OSystem_PalmBase::updateScreen() {
void OSystem_PalmBase::clearScreen() {
WinSetDrawWindow(WinGetDisplayWindow());
- WinSetBackColor(RGBToColor(0,0,0));
+ WinSetBackColor(Graphics::RGBToColor<ColorMasks<565> >(0,0,0));
WinEraseWindow();
}
diff --git a/backends/platform/PalmOS/Src/be_base.h b/backends/platform/PalmOS/Src/be_base.h
index 03a9d56fb4..009c5a9997 100644
--- a/backends/platform/PalmOS/Src/be_base.h
+++ b/backends/platform/PalmOS/Src/be_base.h
@@ -230,8 +230,7 @@ public:
void setPalette(const byte *colors, uint start, uint num);
void grabPalette(byte *colors, uint start, uint num);
- virtual OverlayColor RGBToColor(uint8 r, uint8 g, uint8 b) = 0;
- virtual void colorToRGB(OverlayColor color, uint8 &r, uint8 &g, uint8 &b) = 0;
+ virtual Graphics::PixelFormat getOverlayFormat() const { return Graphics::createPixelFormat<565>(); }
bool pollEvent(Common::Event &event);
diff --git a/backends/platform/PalmOS/Src/be_os5.h b/backends/platform/PalmOS/Src/be_os5.h
index 99d1dd9dc1..c56688b98f 100644
--- a/backends/platform/PalmOS/Src/be_os5.h
+++ b/backends/platform/PalmOS/Src/be_os5.h
@@ -181,8 +181,6 @@ public:
virtual void clearOverlay();
virtual void grabOverlay(OverlayColor *buf, int pitch);
virtual void copyRectToOverlay(const OverlayColor *buf, int pitch, int x, int y, int w, int h);
- virtual OverlayColor RGBToColor(uint8 r, uint8 g, uint8 b);
- virtual void colorToRGB(OverlayColor color, uint8 &r, uint8 &g, uint8 &b);
void setWindowCaption(const char *caption);
diff --git a/backends/platform/PalmOS/Src/be_zodiac.h b/backends/platform/PalmOS/Src/be_zodiac.h
index 58e2ca88ac..28fcf29ddd 100644
--- a/backends/platform/PalmOS/Src/be_zodiac.h
+++ b/backends/platform/PalmOS/Src/be_zodiac.h
@@ -71,8 +71,6 @@ public:
void clearOverlay();
void grabOverlay(OverlayColor *buf, int pitch);
void copyRectToOverlay(const OverlayColor *buf, int pitch, int x, int y, int w, int h);
- OverlayColor RGBToColor(uint8 r, uint8 g, uint8 b);
- void colorToRGB(OverlayColor color, uint8 &r, uint8 &g, uint8 &b);
};
#endif
diff --git a/backends/platform/PalmOS/Src/os5_gfx.cpp b/backends/platform/PalmOS/Src/os5_gfx.cpp
index 2d26419dff..c02e1f7db4 100644
--- a/backends/platform/PalmOS/Src/os5_gfx.cpp
+++ b/backends/platform/PalmOS/Src/os5_gfx.cpp
@@ -77,8 +77,8 @@ void OSystem_PalmOS5::load_gfx_mode() {
__68K(PINSetInputTriggerState(pinInputTriggerDisabled));
}
- gVars->indicator.on = RGBToColor(0,255,0);
- gVars->indicator.off = RGBToColor(0,0,0);
+ gVars->indicator.on = Graphics::RGBToColor<ColorMasks<565> >(0,255,0);
+ gVars->indicator.off = Graphics::RGBToColor<ColorMasks<565> >(0,0,0);
_overlayH = alloc_screen(_screenWidth, _screenHeight);
_overlayP = (OverlayColor *)(BmpGetBits(WinGetBitmap(_overlayH)));
diff --git a/backends/platform/PalmOS/Src/os5_overlay.cpp b/backends/platform/PalmOS/Src/os5_overlay.cpp
index 5555c7ef08..2ffc082547 100644
--- a/backends/platform/PalmOS/Src/os5_overlay.cpp
+++ b/backends/platform/PalmOS/Src/os5_overlay.cpp
@@ -74,13 +74,3 @@ void OSystem_PalmOS5::copyRectToOverlay(const OverlayColor *buf, int pitch, int
buf += pitch;
} while (--h);
}
-
-OverlayColor OSystem_PalmOS5::RGBToColor(uint8 r, uint8 g, uint8 b) {
- return gfxMakeDisplayRGB(r, g, b);
-}
-
-void OSystem_PalmOS5::colorToRGB(OverlayColor color, uint8 &r, uint8 &g, uint8 &b) {
- r = ((color >> 8) & 0xF8);
- g = ((color >> 3) & 0xFC);
- b = ((color << 3) & 0xF8);
-}
diff --git a/backends/platform/PalmOS/Src/zodiac_gfx.cpp b/backends/platform/PalmOS/Src/zodiac_gfx.cpp
index e7f7adb773..866ee086f7 100644
--- a/backends/platform/PalmOS/Src/zodiac_gfx.cpp
+++ b/backends/platform/PalmOS/Src/zodiac_gfx.cpp
@@ -71,8 +71,8 @@ void OSystem_PalmZodiac::load_gfx_mode() {
SysSetOrientationTriggerState(sysOrientationTriggerDisabled);
PINSetInputTriggerState(pinInputTriggerDisabled);
- gVars->indicator.on = RGBToColor(0,255,0);
- gVars->indicator.off = RGBToColor(0,0,0);
+ gVars->indicator.on = Graphics::RGBToColor<ColorMasks<565> >(0,255,0);
+ gVars->indicator.off = Graphics::RGBToColor<ColorMasks<565> >(0,0,0);
_screenH = WinGetDisplayWindow();
_screenP = (byte *)BmpGetBits(WinGetBitmap(_screenH));
diff --git a/backends/platform/PalmOS/Src/zodiac_overlay.cpp b/backends/platform/PalmOS/Src/zodiac_overlay.cpp
index 34390853fc..f8322e8fa5 100644
--- a/backends/platform/PalmOS/Src/zodiac_overlay.cpp
+++ b/backends/platform/PalmOS/Src/zodiac_overlay.cpp
@@ -65,13 +65,3 @@ void OSystem_PalmZodiac::copyRectToOverlay(const OverlayColor *buf, int pitch, i
};
e = TwGfxDrawBitmap(_overlayP, &pos, &bmp);
}
-
-OverlayColor OSystem_PalmZodiac::RGBToColor(uint8 r, uint8 g, uint8 b) {
- return TwGfxMakeDisplayRGB(r, g, b);
-}
-
-void OSystem_PalmZodiac::colorToRGB(OverlayColor color, uint8 &r, uint8 &g, uint8 &b) {
- r = ((color >> 8) & 0xF8);
- g = ((color >> 3) & 0xFC);
- b = ((color << 3) & 0xF8);
-}
diff --git a/backends/platform/dc/dc.h b/backends/platform/dc/dc.h
index 8b99457310..f8e16a4d4f 100644
--- a/backends/platform/dc/dc.h
+++ b/backends/platform/dc/dc.h
@@ -155,12 +155,7 @@ class OSystem_Dreamcast : public OSystem, public FilesystemFactory {
void clearOverlay();
void grabOverlay(int16 *buf, int pitch);
void copyRectToOverlay(const int16 *buf, int pitch, int x, int y, int w, int h);
- OverlayColor RGBToColor(uint8 r, uint8 g, uint8 b) { return (0xf000|((r&0xf0)<<4)|(g&0xf0)|(b>>4); }
- void colorToRGB(OverlayColor color, uint8 &r, uint8 &g, uint8 &b) {
- r = ((color>>4)&0xf0)|((color>>8)&0x0f);
- g = (color&0xf0)|((color>>4)&0x0f);
- b = ((color<<4)&0xf0)|(color&0x0f);
- }
+ virtual Graphics::PixelFormat getOverlayFormat() const { return Graphics::createPixelFormat<4444>(); }
// Mutex handling
MutexRef createMutex();
diff --git a/backends/platform/ds/arm9/source/osystem_ds.h b/backends/platform/ds/arm9/source/osystem_ds.h
index 16c8f41491..27adf88198 100644
--- a/backends/platform/ds/arm9/source/osystem_ds.h
+++ b/backends/platform/ds/arm9/source/osystem_ds.h
@@ -113,9 +113,7 @@ public:
virtual void copyRectToOverlay(const OverlayColor *buf, int pitch, int x, int y, int w, int h);
virtual int16 getOverlayHeight();
virtual int16 getOverlayWidth();
-
- inline virtual OverlayColor RGBToColor(uint8 r, uint8 g, uint8 b);
- inline virtual void colorToRGB(OverlayColor color, uint8 &r, uint8 &g, uint8 &b);
+ virtual Graphics::PixelFormat getOverlayFormat() const { return Graphics::createPixelFormat<1555>(); }
virtual bool showMouse(bool visible);
@@ -190,19 +188,4 @@ static const OSystem::GraphicsMode s_supportedGraphicsModes[] = {
{0, 0, 0},
};
-OverlayColor OSystem_DS::RGBToColor(uint8 r, uint8 g, uint8 b)
-{
- return 0x8000 | (r >> 3) | ((g >> 3) << 5) | ((b >> 3) << 10);
- //consolePrintf("rgbtocol\n");
- //return 0;
-}
-
-void OSystem_DS::colorToRGB(OverlayColor color, uint8 &r, uint8 &g, uint8 &b)
-{
- r = (color & 0x001F) << 3;
- g = ((color & 0x03E0) >> 5) << 3;
- b = ((color & 0x7C00) >> 10) << 3;
- //consolePrintf("coltorgb\n");
-}
-
#endif
diff --git a/backends/platform/gp2x/gp2x-common.h b/backends/platform/gp2x/gp2x-common.h
index 063696548c..de305923a0 100644
--- a/backends/platform/gp2x/gp2x-common.h
+++ b/backends/platform/gp2x/gp2x-common.h
@@ -163,11 +163,6 @@ public:
int16 getOverlayHeight() { return _overlayHeight; }
int16 getOverlayWidth() { return _overlayWidth; }
- // Methods that convert RGB to/from colors suitable for the overlay.
- OverlayColor RGBToColor(uint8 r, uint8 g, uint8 b);
- void colorToRGB(OverlayColor color, uint8 &r, uint8 &g, uint8 &b);
-
-
const GraphicsMode *getSupportedGraphicsModes() const;
int getDefaultGraphicsMode() const;
bool setGraphicsMode(int mode);
diff --git a/backends/platform/gp2x/graphics.cpp b/backends/platform/gp2x/graphics.cpp
index 2f16cf7068..7fa0fddeb1 100644
--- a/backends/platform/gp2x/graphics.cpp
+++ b/backends/platform/gp2x/graphics.cpp
@@ -1160,14 +1160,6 @@ void OSystem_GP2X::copyRectToOverlay(const OverlayColor *buf, int pitch, int x,
SDL_UnlockSurface(_overlayscreen);
}
-OverlayColor OSystem_GP2X::RGBToColor(uint8 r, uint8 g, uint8 b) {
- return SDL_MapRGB(_overlayscreen->format, r, g, b);
-}
-
-void OSystem_GP2X::colorToRGB(OverlayColor color, uint8 &r, uint8 &g, uint8 &b) {
- SDL_GetRGB(color, _overlayscreen->format, &r, &g, &b);
-}
-
#pragma mark -
#pragma mark --- Mouse ---
diff --git a/backends/platform/iphone/osys_iphone.cpp b/backends/platform/iphone/osys_iphone.cpp
index 6ca5a52928..d5c126e73b 100644
--- a/backends/platform/iphone/osys_iphone.cpp
+++ b/backends/platform/iphone/osys_iphone.cpp
@@ -180,7 +180,7 @@ void OSystem_IPHONE::setPalette(const byte *colors, uint start, uint num) {
const byte *b = colors;
for (uint i = start; i < start + num; ++i) {
- _palette[i] = RGBToColor(b[0], b[1], b[2]);
+ _palette[i] = Graphics::RGBToColor<ColorMasks<565> >(b[0], b[1], b[2]);
b += 4;
}
diff --git a/backends/platform/iphone/osys_iphone.h b/backends/platform/iphone/osys_iphone.h
index c743039860..c3d62b7c9c 100644
--- a/backends/platform/iphone/osys_iphone.h
+++ b/backends/platform/iphone/osys_iphone.h
@@ -143,6 +143,7 @@ public:
virtual void copyRectToOverlay(const OverlayColor *buf, int pitch, int x, int y, int w, int h);
virtual int16 getOverlayHeight();
virtual int16 getOverlayWidth();
+ virtual Graphics::PixelFormat getOverlayFormat() const { return Graphics::createPixelFormat<565>(); }
virtual bool showMouse(bool visible);
diff --git a/backends/platform/null/null.cpp b/backends/platform/null/null.cpp
index 610f1d3a42..456ee12539 100644
--- a/backends/platform/null/null.cpp
+++ b/backends/platform/null/null.cpp
@@ -91,9 +91,7 @@ public:
virtual void copyRectToOverlay(const OverlayColor *buf, int pitch, int x, int y, int w, int h);
virtual int16 getOverlayHeight();
virtual int16 getOverlayWidth();
-
- virtual OverlayColor RGBToColor(uint8 r, uint8 g, uint8 b);
- virtual void colorToRGB(OverlayColor color, uint8 &r, uint8 &g, uint8 &b);
+ virtual Graphics::PixelFormat getOverlayFormat() const { return Graphics::createPixelFormat<565>(); }
virtual bool showMouse(bool visible);
@@ -257,12 +255,6 @@ int16 OSystem_NULL::getOverlayWidth() {
return getWidth();
}
-OverlayColor OSystem_NULL::RGBToColor(uint8 r, uint8 g, uint8 b) {
- return 0;
-}
-
-void OSystem_NULL::colorToRGB(OverlayColor color, uint8 &r, uint8 &g, uint8 &b) {
-}
bool OSystem_NULL::showMouse(bool visible) {
return true;
diff --git a/backends/platform/ps2/systemps2.cpp b/backends/platform/ps2/systemps2.cpp
index 85eb303e86..aac399ee23 100644
--- a/backends/platform/ps2/systemps2.cpp
+++ b/backends/platform/ps2/systemps2.cpp
@@ -641,16 +641,6 @@ bool OSystem_PS2::pollEvent(Common::Event &event) {
return res;
}
-OverlayColor OSystem_PS2::RGBToColor(uint8 r, uint8 g, uint8 b) {
- return (r >> 3) | ((g >> 3) << 5) | ((b >> 3) << 10);
-}
-
-void OSystem_PS2::colorToRGB(OverlayColor color, uint8 &r, uint8 &g, uint8 &b) {
- r = (color & 0x1F) << 3;
- g = ((color >> 5) & 0x1F) << 3;
- b = ((color >> 10) & 0x1F) << 3;
-}
-
int16 OSystem_PS2::getHeight(void) {
return _screen->getHeight();
}
diff --git a/backends/platform/ps2/systemps2.h b/backends/platform/ps2/systemps2.h
index 9539baf4f5..e4ac410caa 100644
--- a/backends/platform/ps2/systemps2.h
+++ b/backends/platform/ps2/systemps2.h
@@ -110,9 +110,7 @@ public:
virtual Common::SeekableReadStream *openConfigFileForReading();
virtual Common::WriteStream *openConfigFileForWriting();
- virtual OverlayColor RGBToColor(uint8 r, uint8 g, uint8 b);
-
- virtual void colorToRGB(OverlayColor color, uint8 &r, uint8 &g, uint8 &b);
+ virtual Graphics::PixelFormat getOverlayFormat() const { return Graphics::createPixelFormat<555>(); }
virtual Common::SaveFileManager *getSavefileManager();
virtual FilesystemFactory *getFilesystemFactory();
diff --git a/backends/platform/psp/osys_psp.cpp b/backends/platform/psp/osys_psp.cpp
index 8670456e55..7f38e3c4bb 100644
--- a/backends/platform/psp/osys_psp.cpp
+++ b/backends/platform/psp/osys_psp.cpp
@@ -353,16 +353,6 @@ int16 OSystem_PSP::getOverlayHeight() {
return _overlayHeight;
}
-OverlayColor OSystem_PSP::RGBToColor(uint8 r, uint8 g, uint8 b) {
- return (((r >> 3) & 0x1F) | (((g >> 3) & 0x1F) << 5) | (((b >> 3) & 0x1F) << 10 ) ) | 0x8000;
-}
-
-void OSystem_PSP::colorToRGB(OverlayColor color, uint8 &r, uint8 &g, uint8 &b) {
- r = ((color & 0x1F) << 3);
- g = (((color >> 5) & 0x1F) << 3);
- b = (((color >> 10) & 0x1F) << 3);
-}
-
void OSystem_PSP::grabPalette(byte *colors, uint start, uint num) {
uint i;
diff --git a/backends/platform/psp/osys_psp.h b/backends/platform/psp/osys_psp.h
index 783bb87b9c..d91526e41c 100644
--- a/backends/platform/psp/osys_psp.h
+++ b/backends/platform/psp/osys_psp.h
@@ -107,8 +107,6 @@ public:
virtual void copyRectToOverlay(const OverlayColor *buf, int pitch, int x, int y, int w, int h);
virtual int16 getOverlayHeight();
virtual int16 getOverlayWidth();
- virtual OverlayColor RGBToColor(uint8 r, uint8 g, uint8 b);
- virtual void colorToRGB(OverlayColor color, uint8 &r, uint8 &g, uint8 &b);
virtual void grabPalette(byte *colors, uint start, uint num);
virtual Graphics::PixelFormat getOverlayFormat() const { return Graphics::createPixelFormat<1555>(); }
diff --git a/backends/platform/sdl/graphics.cpp b/backends/platform/sdl/graphics.cpp
index 1dde92af72..c2a6285001 100644
--- a/backends/platform/sdl/graphics.cpp
+++ b/backends/platform/sdl/graphics.cpp
@@ -1239,14 +1239,6 @@ void OSystem_SDL::copyRectToOverlay(const OverlayColor *buf, int pitch, int x, i
SDL_UnlockSurface(_overlayscreen);
}
-OverlayColor OSystem_SDL::RGBToColor(uint8 r, uint8 g, uint8 b) {
- return SDL_MapRGB(_overlayscreen->format, r, g, b);
-}
-
-void OSystem_SDL::colorToRGB(OverlayColor color, uint8 &r, uint8 &g, uint8 &b) {
- SDL_GetRGB(color, _overlayscreen->format, &r, &g, &b);
-}
-
#pragma mark -
#pragma mark --- Mouse ---
diff --git a/backends/platform/sdl/sdl.h b/backends/platform/sdl/sdl.h
index cb625f130c..6005b14e1c 100644
--- a/backends/platform/sdl/sdl.h
+++ b/backends/platform/sdl/sdl.h
@@ -182,11 +182,6 @@ public:
virtual int16 getOverlayHeight() { return _overlayHeight; }
virtual int16 getOverlayWidth() { return _overlayWidth; }
- // Methods that convert RGB to/from colors suitable for the overlay.
- virtual OverlayColor RGBToColor(uint8 r, uint8 g, uint8 b);
- virtual void colorToRGB(OverlayColor color, uint8 &r, uint8 &g, uint8 &b);
-
-
virtual const GraphicsMode *getSupportedGraphicsModes() const;
virtual int getDefaultGraphicsMode() const;
virtual bool setGraphicsMode(int mode);
diff --git a/backends/platform/wii/osystem.h b/backends/platform/wii/osystem.h
index f17644ba1b..bedfadd934 100644
--- a/backends/platform/wii/osystem.h
+++ b/backends/platform/wii/osystem.h
@@ -136,9 +136,7 @@ public:
int x, int y, int w, int h);
virtual int16 getOverlayWidth();
virtual int16 getOverlayHeight();
-
- virtual OverlayColor RGBToColor(uint8 r, uint8 g, uint8 b);
- virtual void colorToRGB(OverlayColor color, uint8 &r, uint8 &g, uint8 &b);
+ virtual Graphics::PixelFormat getOverlayFormat() const { return Graphics::createPixelFormat<565>(); }
virtual bool showMouse(bool visible);
diff --git a/backends/platform/wii/osystem_gfx.cpp b/backends/platform/wii/osystem_gfx.cpp
index f6406a88ed..9ce70e70c3 100644
--- a/backends/platform/wii/osystem_gfx.cpp
+++ b/backends/platform/wii/osystem_gfx.cpp
@@ -197,7 +197,7 @@ int16 OSystem_Wii::getHeight() {
void OSystem_Wii::setPalette(const byte *colors, uint start, uint num) {
const byte *p = colors;
for (uint i = 0; i < num; ++i) {
- _palette[start + i] = RGBToColor(p[0], p[1], p[2]);
+ _palette[start + i] = Graphics::RGBToColor<ColorMasks<565> >(p[0], p[1], p[2]);
p += 4;
}
}
@@ -206,7 +206,7 @@ void OSystem_Wii::grabPalette(byte *colors, uint start, uint num) {
byte *p = colors;
u8 r, g, b;
for (uint i = 0; i < num; ++i) {
- colorToRGB(_palette[start + i], r, g, b);
+ Graphics::colorToRGB<ColorMasks<565> >(_palette[start + i], r, g, b);
p[0] = r;
p[1] = g;
p[2] = b;
@@ -218,7 +218,7 @@ void OSystem_Wii::grabPalette(byte *colors, uint start, uint num) {
void OSystem_Wii::setCursorPalette(const byte *colors, uint start, uint num) {
const byte *p = colors;
for (uint i = 0; i < num; ++i) {
- _cursorPalette[start + i] = RGBToColor(p[0], p[1], p[2]);
+ _cursorPalette[start + i] = Graphics::RGBToColor<ColorMasks<565> >(p[0], p[1], p[2]);
p += 4;
}
@@ -443,17 +443,6 @@ int16 OSystem_Wii::getOverlayHeight() {
return _overlayHeight;
}
-OverlayColor OSystem_Wii::RGBToColor(uint8 r, uint8 g, uint8 b) {
- return (((r >> 3) & 0x1f) << 11) | (((g >> 2) & 0x3f) << 5 ) |
- ((b >> 3) & 0x1f);
-}
-
-void OSystem_Wii::colorToRGB(OverlayColor color, uint8 &r, uint8 &g, uint8 &b) {
- r = ((color >> 11) & 0x1f) << 3;
- g = ((color >> 5) & 0x3f) << 2;
- b = (color & 0x1f) << 3;
-}
-
bool OSystem_Wii::showMouse(bool visible) {
bool last = _mouseVisible;
_mouseVisible = visible;
diff --git a/backends/platform/wince/wince-sdl.cpp b/backends/platform/wince/wince-sdl.cpp
index f09a483086..45935d1696 100644
--- a/backends/platform/wince/wince-sdl.cpp
+++ b/backends/platform/wince/wince-sdl.cpp
@@ -1973,7 +1973,7 @@ void OSystem_WINCE3::internDrawMouse() {
*bak++ = *(uint16 *)dst;
color = *src++;
if (color != 0xFF) // 0xFF = transparent, don't draw
- *(uint16 *)dst = RGBToColor(_currentPalette[color].r, _currentPalette[color].g, _currentPalette[color].b);
+ *(uint16 *)dst = SDL_MapRGB(_overlayscreen->format, _currentPalette[color].r, _currentPalette[color].g, _currentPalette[color].b);
dst += 2;
width--;
}