[Scummvm-cvs-logs] SF.net SVN: scummvm:[33982] scummvm/branches/branch-0-12-0/backends/ platform/ds/arm9/source
agent-q at users.sourceforge.net
agent-q at users.sourceforge.net
Mon Aug 18 00:50:39 CEST 2008
Revision: 33982
http://scummvm.svn.sourceforge.net/scummvm/?rev=33982&view=rev
Author: agent-q
Date: 2008-08-17 22:50:39 +0000 (Sun, 17 Aug 2008)
Log Message:
-----------
DS: Fix cursor palette bug
Modified Paths:
--------------
scummvm/branches/branch-0-12-0/backends/platform/ds/arm9/source/dsmain.cpp
scummvm/branches/branch-0-12-0/backends/platform/ds/arm9/source/osystem_ds.cpp
scummvm/branches/branch-0-12-0/backends/platform/ds/arm9/source/osystem_ds.h
Modified: scummvm/branches/branch-0-12-0/backends/platform/ds/arm9/source/dsmain.cpp
===================================================================
--- scummvm/branches/branch-0-12-0/backends/platform/ds/arm9/source/dsmain.cpp 2008-08-17 22:50:05 UTC (rev 33981)
+++ scummvm/branches/branch-0-12-0/backends/platform/ds/arm9/source/dsmain.cpp 2008-08-17 22:50:39 UTC (rev 33982)
@@ -699,6 +699,8 @@
mouseHotspotX = hotspotX;
mouseHotspotY = hotspotY;
+ //consolePrintf("Set cursor icon %d, %d\n", w, h);
+
{
int off = 128*64;
Modified: scummvm/branches/branch-0-12-0/backends/platform/ds/arm9/source/osystem_ds.cpp
===================================================================
--- scummvm/branches/branch-0-12-0/backends/platform/ds/arm9/source/osystem_ds.cpp 2008-08-17 22:50:05 UTC (rev 33981)
+++ scummvm/branches/branch-0-12-0/backends/platform/ds/arm9/source/osystem_ds.cpp 2008-08-17 22:50:39 UTC (rev 33982)
@@ -460,10 +460,25 @@
void OSystem_DS::warpMouse(int x, int y) {
}
+
void OSystem_DS::setMouseCursor(const byte *buf, uint w, uint h, int hotspotX, int hotspotY, byte keycolor, int targetCursorScale) {
- DS::setCursorIcon(buf, w, h, keycolor, hotspotX, hotspotY);
+ if ((w > 0) && (w < 64) && (h > 0) && (h < 64))
+ {
+ memcpy(_cursorImage, buf, w * h);
+ _cursorW = w;
+ _cursorH = h;
+ _cursorHotX = hotspotX;
+ _cursorHotY = hotspotY;
+ _cursorKey = keycolor;
+ _cursorScale = targetCursorScale;
+ refreshCursor();
+ }
}
+void OSystem_DS::refreshCursor() {
+ DS::setCursorIcon(_cursorImage, _cursorW, _cursorH, _cursorKey, _cursorHotX, _cursorHotY);
+}
+
void OSystem_DS::addEvent(Common::Event& e) {
eventQueue[queuePos++] = e;
}
Modified: scummvm/branches/branch-0-12-0/backends/platform/ds/arm9/source/osystem_ds.h
===================================================================
--- scummvm/branches/branch-0-12-0/backends/platform/ds/arm9/source/osystem_ds.h 2008-08-17 22:50:05 UTC (rev 33981)
+++ scummvm/branches/branch-0-12-0/backends/platform/ds/arm9/source/osystem_ds.h 2008-08-17 22:50:39 UTC (rev 33982)
@@ -64,6 +64,15 @@
u16 _palette[256];
u16 _cursorPalette[256];
+
+ u8 _cursorImage[64 * 64];
+ uint _cursorW;
+ uint _cursorH;
+ int _cursorHotX;
+ int _cursorHotY;
+ byte _cursorKey;
+ int _cursorScale;
+
Graphics::Surface* createTempFrameBuffer();
bool _disableCursorPalette;
@@ -168,9 +177,11 @@
virtual void setCursorPalette(const byte *colors, uint start, uint num);
- virtual void disableCursorPalette(bool dis) { _disableCursorPalette = dis; }
+ virtual void disableCursorPalette(bool dis) { _disableCursorPalette = dis; refreshCursor(); }
FilesystemFactory *getFilesystemFactory();
+
+ void refreshCursor();
};
static const OSystem::GraphicsMode s_supportedGraphicsModes[] = {
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