vdr
2.2.0
|
Public Member Functions | |
cHdffOsdRaw (int Left, int Top, HDFF::cHdffCmdIf *pHdffCmdIf, uint Level) | |
virtual | ~cHdffOsdRaw () |
virtual eOsdError | CanHandleAreas (const tArea *Areas, int NumAreas) |
virtual eOsdError | SetAreas (const tArea *Areas, int NumAreas) |
virtual void | Flush (void) |
![]() | |
virtual | ~cOsd () |
bool | IsTrueColor (void) const |
int | Left (void) |
int | Top (void) |
int | Width (void) |
int | Height (void) |
void | SetAntiAliasGranularity (uint FixedColors, uint BlendColors) |
cBitmap * | GetBitmap (int Area) |
virtual cPixmap * | CreatePixmap (int Layer, const cRect &ViewPort, const cRect &DrawPort=cRect::Null) |
virtual void | DestroyPixmap (cPixmap *Pixmap) |
virtual void | DrawImage (const cPoint &Point, const cImage &Image) |
virtual void | DrawImage (const cPoint &Point, int ImageHandle) |
virtual void | SaveRegion (int x1, int y1, int x2, int y2) |
virtual void | RestoreRegion (void) |
virtual eOsdError | SetPalette (const cPalette &Palette, int Area) |
virtual void | DrawPixel (int x, int y, tColor Color) |
virtual void | DrawBitmap (int x, int y, const cBitmap &Bitmap, tColor ColorFg=0, tColor ColorBg=0, bool ReplacePalette=false, bool Overlay=false) |
virtual void | DrawScaledBitmap (int x, int y, const cBitmap &Bitmap, double FactorX, double FactorY, bool AntiAlias=false) |
virtual void | DrawText (int x, int y, const char *s, tColor ColorFg, tColor ColorBg, const cFont *Font, int Width=0, int Height=0, int Alignment=taDefault) |
virtual void | DrawRectangle (int x1, int y1, int x2, int y2, tColor Color) |
virtual void | DrawEllipse (int x1, int y1, int x2, int y2, tColor Color, int Quadrants=0) |
virtual void | DrawSlope (int x1, int y1, int x2, int y2, tColor Color, int Type) |
Protected Member Functions | |
virtual void | SetActive (bool On) |
![]() | |
cOsd (int Left, int Top, uint Level) | |
bool | Active (void) |
cPixmap * | AddPixmap (cPixmap *Pixmap) |
cPixmap * | RenderPixmaps (void) |
Private Attributes | |
HDFF::cHdffCmdIf * | mHdffCmdIf |
int | mDispWidth |
int | mDispHeight |
bool | refresh |
uint32_t | mDisplay |
uint32_t | mBitmapPalette |
uint32_t | mBitmapColors [256] |
Additional Inherited Members | |
![]() | |
static int | OsdLeft (void) |
static int | OsdTop (void) |
static int | OsdWidth (void) |
static int | OsdHeight (void) |
static void | SetOsdPosition (int Left, int Top, int Width, int Height) |
static int | IsOpen (void) |
cHdffOsdRaw::cHdffOsdRaw | ( | int | Left, |
int | Top, | ||
HDFF::cHdffCmdIf * | pHdffCmdIf, | ||
uint | Level | ||
) |
Definition at line 568 of file hdffosd.c.
References cHdffSetup::GetOsdSize(), gHdffSetup, HDFF_INVALID_HANDLE, mBitmapPalette, mDispHeight, mDisplay, mDispWidth, mHdffCmdIf, and refresh.
Referenced by cHdffOsdProvider::CreateOsd().
|
virtual |
Definition at line 582 of file hdffosd.c.
References HDFF::cHdffCmdIf::CmdOsdDeleteDisplay(), HDFF::cHdffCmdIf::CmdOsdDeletePalette(), HDFF::cHdffCmdIf::CmdOsdDrawRectangle(), HDFF::cHdffCmdIf::CmdOsdRenderDisplay(), HDFF_INVALID_HANDLE, mBitmapPalette, mDispHeight, mDisplay, mDispWidth, and mHdffCmdIf.
Checks whether the OSD can display the given set of sub-areas.
The return value indicates whether a call to SetAreas() with this set of areas will succeed. CanHandleAreas() may be called with an OSD that is already in use with other areas and will not interfere with the current operation of the OSD. A derived class must first call the base class CanHandleAreas() to check the basic conditions, like not overlapping etc.
Reimplemented from cOsd.
Definition at line 632 of file hdffosd.c.
References cOsd::CanHandleAreas(), gHdffSetup, oeBppNotSupported, oeOk, and cHdffSetup::TrueColorOsd.
|
virtual |
Actually commits all data to the OSD hardware.
Flush() should return as soon as possible. For a true color OSD using the default implementation with in memory pixmaps, the Flush() function should basically do something like this:
LOCK_PIXMAPS; while (cPixmapMemory *pm = dynamic_cast<cPixmapMemory *>(RenderPixmaps())) { int w = pm->ViewPort().Width(); int h = pm->ViewPort().Height(); int d = w * sizeof(tColor); MyOsdDrawPixmap(Left() + pm->ViewPort().X(), Top() + pm->ViewPort().Y(), pm->Data(), w, h, h * d); DestroyPixmap(pm); }
If a plugin uses a derived cPixmap implementation, it needs to use that type instead of cPixmapMemory.
Reimplemented from cOsd.
Definition at line 662 of file hdffosd.c.
References cOsd::Active(), cBitmap::Clean(), HDFF::cHdffCmdIf::CmdOsdCreatePalette(), HDFF::cHdffCmdIf::CmdOsdDrawBitmap(), HDFF::cHdffCmdIf::CmdOsdRenderDisplay(), HDFF::cHdffCmdIf::CmdOsdSetPaletteColors(), cPalette::Colors(), cBitmap::Data(), cOsd::DestroyPixmap(), cBitmap::Dirty(), cOsd::GetBitmap(), gHdffSetup, HDFF_COLOR_FORMAT_ARGB, HDFF_COLOR_TYPE_ARGB4444, HDFF_COLOR_TYPE_ARGB8565, HDFF_COLOR_TYPE_ARGB8888, HDFF_COLOR_TYPE_CLUT8, HDFF_INVALID_HANDLE, cBitmap::Height(), cOsd::height, cOsd::IsTrueColor(), cOsd::Left(), LOCK_PIXMAPS, MAX_BITMAP_SIZE, mBitmapColors, mBitmapPalette, mDisplay, mHdffCmdIf, refresh, cOsd::RenderPixmaps(), cOsd::Top(), cHdffSetup::TrueColorFormat, cBitmap::Width(), cOsd::width, cBitmap::X0(), and cBitmap::Y0().
Referenced by SetActive().
|
protectedvirtual |
Sets this OSD to be the active one.
A derived class must call cOsd::SetActive(On).
Reimplemented from cOsd.
Definition at line 598 of file hdffosd.c.
References cOsd::Active(), HDFF::cHdffCmdIf::CmdOsdCreateDisplay(), HDFF::cHdffCmdIf::CmdOsdDeleteDisplay(), HDFF::cHdffCmdIf::CmdOsdDeletePalette(), HDFF::cHdffCmdIf::CmdOsdDrawRectangle(), HDFF::cHdffCmdIf::CmdOsdRenderDisplay(), HDFF::cHdffCmdIf::CmdOsdSetDisplayOutputRectangle(), Flush(), cOsd::GetBitmap(), HDFF_COLOR_TYPE_ARGB8888, HDFF_INVALID_HANDLE, HDFF_SIZE_FULL_SCREEN, mBitmapPalette, mDispHeight, mDisplay, mDispWidth, mHdffCmdIf, refresh, and cOsd::SetActive().
Sets the sub-areas to the given areas.
The return value indicates whether the operation was successful. If an error is reported, nothing will have changed and the previous OSD (if any) will still be displayed as before. If the OSD has been divided into several sub-areas, all areas that are part of the rectangle that surrounds a given drawing operation will be drawn into, with the proper offsets. A new call overwrites any previous settings To set up a true color OSD, exactly one area must be requested, with its coordinates set to the full area the OSD shall cover, and the bpp value set to 32.
Reimplemented from cOsd.
Definition at line 647 of file hdffosd.c.
References HDFF::cHdffCmdIf::CmdOsdDrawRectangle(), HDFF::cHdffCmdIf::CmdOsdRenderDisplay(), HDFF_INVALID_HANDLE, mDispHeight, mDisplay, mDispWidth, mHdffCmdIf, refresh, and cOsd::SetAreas().
|
private |
|
private |
Definition at line 555 of file hdffosd.c.
Referenced by cHdffOsdRaw(), Flush(), SetActive(), and ~cHdffOsdRaw().
|
private |
Definition at line 552 of file hdffosd.c.
Referenced by cHdffOsdRaw(), SetActive(), SetAreas(), and ~cHdffOsdRaw().
|
private |
Definition at line 554 of file hdffosd.c.
Referenced by cHdffOsdRaw(), Flush(), SetActive(), SetAreas(), and ~cHdffOsdRaw().
|
private |
Definition at line 551 of file hdffosd.c.
Referenced by cHdffOsdRaw(), SetActive(), SetAreas(), and ~cHdffOsdRaw().
|
private |
Definition at line 550 of file hdffosd.c.
Referenced by cHdffOsdProvider::cHdffOsdProvider(), cHdffOsdRaw(), cHdffOsdProvider::CreateOsd(), Flush(), SetActive(), SetAreas(), and ~cHdffOsdRaw().
|
private |
Definition at line 553 of file hdffosd.c.
Referenced by cHdffOsdRaw(), Flush(), SetActive(), and SetAreas().