aboutsummaryrefslogtreecommitdiff
path: root/common/system.h
diff options
context:
space:
mode:
authorEugene Sandulenko2005-02-17 23:01:00 +0000
committerEugene Sandulenko2005-02-17 23:01:00 +0000
commit78ee0bfdaf00a6d03717bc06112034bcc663c1f0 (patch)
treee571fbfd25de3e162ed5a717c2d748caf91ab179 /common/system.h
parente1323556c3ebda975e304597b1e5fcb2ca7f9d65 (diff)
downloadscummvm-rg350-78ee0bfdaf00a6d03717bc06112034bcc663c1f0.tar.gz
scummvm-rg350-78ee0bfdaf00a6d03717bc06112034bcc663c1f0.tar.bz2
scummvm-rg350-78ee0bfdaf00a6d03717bc06112034bcc663c1f0.zip
Mouse part of big patch #1013937 (OSystem layer with bigger resolution)
svn-id: r16800
Diffstat (limited to 'common/system.h')
-rw-r--r--common/system.h39
1 files changed, 30 insertions, 9 deletions
diff --git a/common/system.h b/common/system.h
index 7d3a0ea8f7..fad4e6c841 100644
--- a/common/system.h
+++ b/common/system.h
@@ -96,7 +96,15 @@ public:
* Implementing this is purely optional, and no harm should arise
* when not doing so (except for decreased speed in said frontends).
*/
- kFeatureAutoComputeDirtyRects
+ kFeatureAutoComputeDirtyRects,
+
+ /**
+ * This flags determines either cursor can have its own palette or not
+ * It is currently used only by some Macintosh versions of Humongous
+ * Entertainment games. If backend doesn't implement this feature then
+ * engine switches to b/w version of cursors.
+ */
+ kFeatureCursorHasPalette
};
/**
@@ -274,6 +282,18 @@ public:
virtual void setPalette(const byte *colors, uint start, uint num) = 0;
/**
+ * Replace the specified range of cursor the palette with new colors.
+ * The palette entries from 'start' till (start+num-1) will be replaced - so
+ * a full palette update is accomplished via start=0, num=256.
+ *
+ * Backends which implement it should have kFeatureCursorHasPalette flag set
+ *
+ * @see setPalette
+ * @see kFeatureCursorHasPalette
+ */
+ virtual void setCursorPalette(const byte *colors, uint start, uint num) {};
+
+ /**
* Blit a bitmap to the virtual screen.
* The real screen will not immediately be updated to reflect the changes.
* Client code has to to call updateScreen to ensure any changes are
@@ -365,14 +385,15 @@ public:
/**
* Set the bitmap used for drawing the cursor.
*
- * @param buf the pixmap data to be used (8bit/pixel)
- * @param w width of the mouse cursor
- * @param h height of the mouse cursor
- * @param hotspotX horizontal offset from the left side to the hotspot
- * @param hotspotY vertical offset from the top side to the hotspot
- * @param keycolor transparency color index
- */
- virtual void setMouseCursor(const byte *buf, uint w, uint h, int hotspotX, int hotspotY, byte keycolor = 255) = 0;
+ * @param buf the pixmap data to be used (8bit/pixel)
+ * @param w width of the mouse cursor
+ * @param h height of the mouse cursor
+ * @param hotspotX horizontal offset from the left side to the hotspot
+ * @param hotspotY vertical offset from the top side to the hotspot
+ * @param keycolor transparency color index
+ * @param cursorTargetScale scale factor which cursor is designed for
+ */
+ virtual void setMouseCursor(const byte *buf, uint w, uint h, int hotspotX, int hotspotY, byte keycolor = 255, int cursorTargetScale = 1) = 0;
//@}