summaryrefslogtreecommitdiff
path: root/PLUGINS/src/dvbhddevice/hdffosd.c
diff options
context:
space:
mode:
Diffstat (limited to 'PLUGINS/src/dvbhddevice/hdffosd.c')
-rw-r--r--PLUGINS/src/dvbhddevice/hdffosd.c26
1 files changed, 21 insertions, 5 deletions
diff --git a/PLUGINS/src/dvbhddevice/hdffosd.c b/PLUGINS/src/dvbhddevice/hdffosd.c
index 254f2af..90d6897 100644
--- a/PLUGINS/src/dvbhddevice/hdffosd.c
+++ b/PLUGINS/src/dvbhddevice/hdffosd.c
@@ -3,7 +3,7 @@
*
* See the README file for copyright information and how to reach the author.
*
- * $Id: hdffosd.c 1.9 2011/04/17 11:20:22 kls Exp $
+ * $Id: hdffosd.c 1.10 2011/05/15 14:47:29 kls Exp $
*/
#include "hdffosd.h"
@@ -154,8 +154,12 @@ eOsdError cHdffOsd::SetAreas(const tArea *Areas, int NumAreas)
{
//printf("SetAreas %d: %d %d %d %d %d\n", i, Areas[i].x1, Areas[i].y1, Areas[i].x2, Areas[i].y2, Areas[i].bpp);
}
- mHdffCmdIf->CmdOsdDrawRectangle(mDisplay, 0, 0, mDispWidth, mDispHeight, 0);
- mHdffCmdIf->CmdOsdRenderDisplay(mDisplay);
+ if (shown)
+ {
+ mHdffCmdIf->CmdOsdDrawRectangle(mDisplay, 0, 0, mDispWidth, mDispHeight, 0);
+ mHdffCmdIf->CmdOsdRenderDisplay(mDisplay);
+ shown = false;
+ }
return cOsd::SetAreas(Areas, NumAreas);
}
@@ -166,9 +170,13 @@ void cHdffOsd::SetActive(bool On)
cOsd::SetActive(On);
if (On)
{
+ if (GetBitmap(0)) // only flush here if there are already bitmaps
+ Flush();
}
else if (shown)
{
+ mHdffCmdIf->CmdOsdDrawRectangle(mDisplay, 0, 0, mDispWidth, mDispHeight, 0);
+ mHdffCmdIf->CmdOsdRenderDisplay(mDisplay);
shown = false;
}
}
@@ -594,9 +602,13 @@ void cHdffOsdRaw::SetActive(bool On)
cOsd::SetActive(On);
if (On)
{
+ if (GetBitmap(0)) // only flush here if there are already bitmaps
+ Flush();
}
else if (shown)
{
+ mHdffCmdIf->CmdOsdDrawRectangle(mDisplay, 0, 0, mDispWidth, mDispHeight, 0);
+ mHdffCmdIf->CmdOsdRenderDisplay(mDisplay);
shown = false;
}
}
@@ -623,8 +635,12 @@ eOsdError cHdffOsdRaw::SetAreas(const tArea *Areas, int NumAreas)
{
//printf("SetAreas %d: %d %d %d %d %d\n", i, Areas[i].x1, Areas[i].y1, Areas[i].x2, Areas[i].y2, Areas[i].bpp);
}
- mHdffCmdIf->CmdOsdDrawRectangle(mDisplay, 0, 0, mDispWidth, mDispHeight, 0);
- mHdffCmdIf->CmdOsdRenderDisplay(mDisplay);
+ if (shown)
+ {
+ mHdffCmdIf->CmdOsdDrawRectangle(mDisplay, 0, 0, mDispWidth, mDispHeight, 0);
+ mHdffCmdIf->CmdOsdRenderDisplay(mDisplay);
+ shown = false;
+ }
return cOsd::SetAreas(Areas, NumAreas);
}