#pragma once /****************************************************************************** KOverlaySurface abstracts a Direct Draw overlay surface. ******************************************************************************/ #include class KOverlaySurface : public KDDSurface { protected: #ifdef KDEBUG KException::KDxException e_dx; #endif DDOVERLAYFX m_fx; bool m_no_src_color_keying; DWORD m_flag; RECT m_dest_rect, m_src_rect; bool m_src_rect_not_set; public: KOverlaySurface(); ~KOverlaySurface(); bool Init(DDCAPS & ddcaps, DWORD w, DWORD h, int buf_count); void Discharge(void); HRESULT CreateOverlaySurface(IDirectDraw7 * pDD); HRESULT UpdateOverlay(IDirectDrawSurface7 * dest_surface); void Hide(void); void Show(void); void SetDestRect(RECT&); RECT& GetDestRect(void); void SetSrcRect(RECT&); RECT& GetSrcRect(void); HRESULT GetBackBuffer(KOverlaySurface&); HRESULT Flip(void); IDirectDrawSurface7 * GetSurface(void); void SetSurface(IDirectDrawSurface7 * surface); void SetOverlaySourceColorKey(DDCAPS & ddcaps, DWORD color); bool OverlaySourceColorKeySet(void); };