#ifndef OVERLAY_SURFACE_H #define OVERLAY_SURFACE_H #include #include //----------------------------------------------------------------------------- // Miscellaneous helper functions //----------------------------------------------------------------------------- #define SAFE_DELETE(p) { if(p) { delete (p); (p)=NULL; } } #define SAFE_DELETE_ARRAY(p) { if(p) { delete[] (p); (p)=NULL; } } #define SAFE_RELEASE(p) { if(p) { (p)->Release(); (p)=NULL; } } class COverlaySurface; //extern COverlaySurface g_overlaySurface; extern COverlaySurface* g_poverlaySurface; class COverlaySurface { public: HRESULT InitDirectDraw(HWND hWnd); BOOL HasOverlaySupport(); HRESULT CreateDirectDrawSurfaces(HWND hWnd, DWORD width, DWORD heght); VOID FreeDirectDraw(); HRESULT RestoreSurfaces(); void UpdateOverlay(); LPDIRECTDRAW7 GetDirectDraw() {return m_pDD;} LPDIRECTDRAWSURFACE7 GetOverlayObject() {return m_pDDSOverlay;} LPDIRECTDRAWSURFACE7 GetBackOverlayObject() {return m_pDDSOverlayBack;} void SetSrcRect(RECT rect) {m_rcSrc = rect;} void SetDstRect(RECT rect) {m_rcDst = rect;} COverlaySurface(); virtual ~COverlaySurface(); private: LPDIRECTDRAW7 m_pDD; LPDIRECTDRAWSURFACE7 m_pDDSPrimary; LPDIRECTDRAWSURFACE7 m_pDDSOverlay; LPDIRECTDRAWSURFACE7 m_pDDSOverlayBack; DDOVERLAYFX m_OverlayFX; DWORD m_dwOverlayFlags; DDCAPS m_ddcaps; RECT m_rcSrc; RECT m_rcDst; // This will be used as the color key, so try to make it something // that doesn't appear in the source image. COLORREF m_dwBackgroundColor; }; //BOOL SurfaceLock(LPDIRECTDRAWSURFACE7 pDDSOverlay, OVERLAY_SURFACE_INFO* pInfo); //void SurfaceUnlock(LPDIRECTDRAWSURFACE7 pDDSOverlay); #endif // OVERLAY_SURFACE_H