aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Bouclet2016-09-13 20:25:13 +0200
committerBastien Bouclet2016-09-13 20:25:13 +0200
commit521ba2cb8ac6cbe4240ad4da7ad44d13449e3943 (patch)
tree68656da0c6db2270ca534fb4f5b18a37f247d84d
parentcd803d7ca7dcac1f747e9ec6d75f0048825e6f06 (diff)
downloadscummvm-rg350-521ba2cb8ac6cbe4240ad4da7ad44d13449e3943.tar.gz
scummvm-rg350-521ba2cb8ac6cbe4240ad4da7ad44d13449e3943.tar.bz2
scummvm-rg350-521ba2cb8ac6cbe4240ad4da7ad44d13449e3943.zip
OSYSTEM: Introduce a method allowing to draw a background activity icon
-rw-r--r--backends/graphics/graphics.h1
-rw-r--r--backends/modular-backend.cpp4
-rw-r--r--backends/modular-backend.h1
-rw-r--r--common/system.h19
4 files changed, 25 insertions, 0 deletions
diff --git a/backends/graphics/graphics.h b/backends/graphics/graphics.h
index 921dfca61c..271a482032 100644
--- a/backends/graphics/graphics.h
+++ b/backends/graphics/graphics.h
@@ -87,6 +87,7 @@ public:
virtual void copyRectToOSD(const void *buf, int pitch, int x, int y, int w, int h) {}
virtual void clearOSD() {}
virtual Graphics::PixelFormat getOSDFormat() { return Graphics::PixelFormat(); }
+ virtual void displayActivityIconOnOSD(const Graphics::Surface *icon) {}
// Graphics::PaletteManager interface
diff --git a/backends/modular-backend.cpp b/backends/modular-backend.cpp
index e1bdf15571..13db277a75 100644
--- a/backends/modular-backend.cpp
+++ b/backends/modular-backend.cpp
@@ -253,6 +253,10 @@ Graphics::PixelFormat ModularBackend::getOSDFormat() {
return _graphicsManager->getOSDFormat();
}
+void ModularBackend::displayActivityIconOnOSD(const Graphics::Surface *icon) {
+ _graphicsManager->displayActivityIconOnOSD(icon);
+}
+
void ModularBackend::quit() {
exit(0);
}
diff --git a/backends/modular-backend.h b/backends/modular-backend.h
index 9cde27915f..886f91c320 100644
--- a/backends/modular-backend.h
+++ b/backends/modular-backend.h
@@ -130,6 +130,7 @@ public:
virtual void copyRectToOSD(const void *buf, int pitch, int x, int y, int w, int h);
virtual void clearOSD();
virtual Graphics::PixelFormat getOSDFormat();
+ virtual void displayActivityIconOnOSD(const Graphics::Surface *icon);
//@}
diff --git a/common/system.h b/common/system.h
index eb9a39bbdf..b07a5ffd1e 100644
--- a/common/system.h
+++ b/common/system.h
@@ -1102,6 +1102,25 @@ public:
virtual void displayMessageOnOSD(const char *msg) = 0;
/**
+ * Display an icon indicating background activity
+ *
+ * The icon is displayed in an 'on screen display'. It is visible above
+ * the regular screen content or near it.
+ *
+ * The caller keeps ownership of the icon. It is acceptable to free
+ * the surface just after the call.
+ *
+ * There is no preferred pixel format for the icon. The backend should
+ * convert its copy of the icon to an appropriate format.
+ *
+ * The caller must call this method again with a null pointer
+ * as a parameter to indicate the icon should no longer be displayed.
+ *
+ * @param icon the icon to display on screen
+ */
+ virtual void displayActivityIconOnOSD(const Graphics::Surface *icon) = 0;
+
+ /**
* Blit a bitmap to the 'on screen display'.
*
* If the current pixel format has one byte per pixel, the graphics data