diff options
| -rw-r--r-- | HISTORY | 1 | ||||
| -rw-r--r-- | ovgosd.c | 19 |
2 files changed, 18 insertions, 2 deletions
@@ -2,6 +2,7 @@ VDR Plugin 'rpihddevice' Revision History ----------------------------------------- - fixed: + - adapted cOvgRawOsd::Flush() to new cOsd::RenderPixmaps() of vdr-2.1.10 - fixed calculation of string height (reported by Klaus Schmidinger) - additionally set number of in/out channels when setting up audio resampler - don't clear audio PTS when parser shrinks the packet buffer @@ -1275,8 +1275,23 @@ public: if (IsTrueColor()) { LOCK_PIXMAPS; - while (cPixmapMemory *pm = RenderPixmaps()) - m_ovg->DoCmd(new cOvgCmdDrawPixmap(Left(), Top(), pm)); + while (cPixmapMemory *pm = + dynamic_cast<cPixmapMemory *>(RenderPixmaps())) + { + if (tColor* argb = MALLOC(tColor, + pm->DrawPort().Width() * pm->DrawPort().Height())) + { + memcpy(argb, pm->Data(), sizeof(tColor) * + pm->DrawPort().Width() * pm->DrawPort().Height()); + + m_ovg->DoCmd(new cOvgCmdDrawBitmap( + Left() + pm->ViewPort().Left(), + Top() + pm->ViewPort().Top(), + pm->DrawPort().Width(), pm->DrawPort().Height(), + argb)); + } + DestroyPixmap(pm); + } } else { |
