diff options
-rw-r--r-- | dxr3osd.c | 10 | ||||
-rw-r--r-- | dxr3osd.h | 4 |
2 files changed, 10 insertions, 4 deletions
@@ -62,8 +62,6 @@ public: }; #endif -#define MAXNUMWINDOWS 7 // OSD windows are counted 1...7 - // ================================== //! constructor cDxr3Osd::cDxr3Osd(int Left, int Top, uint Level) @@ -135,11 +133,15 @@ eOsdError cDxr3Osd::CanHandleAreas(const tArea *Areas, int NumAreas) eOsdError cDxr3Osd::SetAreas(const tArea *Areas, int NumAreas) { - if (shown) - { + if (shown) { Spu->Clear(); shown = false; } + + // store area informations + memcpy(areas, Areas, sizeof(tArea) * NumAreas); + numAreas = NumAreas; + return cOsd::SetAreas(Areas, NumAreas); } @@ -11,6 +11,8 @@ public: virtual cOsd *CreateOsd(int Left, int Top, uint Level); }; +static const int MAXNUMWINDOWS = 7; + // ================================== // osd interface class cDxr3Osd : public cOsd { @@ -31,6 +33,8 @@ private: bool shown; ///< is the osd shown? cPalette* Palette; ///< global palette (needed by all bitmaps) cTimeMs *last; + tArea areas[MAXNUMWINDOWS]; + int numAreas; }; #endif /*_DXR3_OSD_H_*/ |