summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--osd.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/osd.c b/osd.c
index 9db9385e..b6a7ed87 100644
--- a/osd.c
+++ b/osd.c
@@ -4,7 +4,7 @@
* See the main source file 'xineliboutput.c' for copyright information and
* how to reach the author.
*
- * $Id: osd.c,v 1.29 2008-12-05 20:32:13 phintuka Exp $
+ * $Id: osd.c,v 1.30 2008-12-19 15:17:13 phintuka Exp $
*
*/
@@ -193,7 +193,9 @@ void cXinelibOsd::CmdClose(int Wnd)
if (m_Refresh)
osdcmd.flags |= OSDFLAG_REFRESH;
-
+ if (Prev() == NULL)
+ osdcmd.flags |= OSDFLAG_TOP_LAYER;
+
m_Device->OsdCmd((void*)&osdcmd);
}
}
@@ -206,7 +208,7 @@ void cXinelibOsd::CmdFlush(void)
osd_command_t osdcmd = {0};
osdcmd.cmd = OSD_Flush;
-
+
m_Device->OsdCmd((void*)&osdcmd);
}
}
@@ -223,8 +225,9 @@ void cXinelibOsd::CmdRle(int Wnd, int X0, int Y0,
xine_clut_t clut[Colors];
osd_command_t osdcmd = {0};
- osdcmd.cmd = OSD_Set_RLE;
- osdcmd.wnd = Wnd;
+ osdcmd.cmd = OSD_Set_RLE;
+ osdcmd.wnd = Wnd;
+ osdcmd.layer = saturate(m_Layer, 0, 0xffff);
osdcmd.x = X0;
osdcmd.y = Y0;
osdcmd.w = W;
@@ -241,6 +244,8 @@ void cXinelibOsd::CmdRle(int Wnd, int X0, int Y0,
osdcmd.flags |= OSDFLAG_UNSCALED;
if (xc.osd_blending_lowresvideo == OSD_BLENDING_HARDWARE)
osdcmd.flags |= OSDFLAG_UNSCALED_LOWRES;
+ if (Prev() == NULL)
+ osdcmd.flags |= OSDFLAG_TOP_LAYER;
prepare_palette(&clut[0], Palette, Colors, /*Top*/(Prev() == NULL), true);