#pragma once /****************************************************************************** KDirectDrawOverlay exposes a Direct Draw overlay facility. ******************************************************************************/ class KDirectDrawOverlay : public KDirectDraw { protected: #ifdef KDEBUG KException::KDxException e_dx; #endif KOverlaySurface m_overlay; KOverlaySurface m_backbuffer; HWND m_hWnd, m_hTop; bool m_full_screen, m_mode_changed; DWORD m_w, m_h, m_bpp; DDCAPS m_ddcaps; int m_buf_count; TCHAR * m_bmp_file_name; BITMAPINFO * m_dib; HRESULT Discharge(); public: KDirectDrawOverlay(); ~KDirectDrawOverlay(); HRESULT SetupDirectDraw(HWND hTop, HWND hWnd, const TCHAR * bmp_file, int buf_count=0, bool full_screen = false, int w=0, int h=0, int bpp=0); void Init(HWND hTop, HWND hWnd, bool full_screen, DWORD w, DWORD h, DWORD bpp); bool TestStateAndRecover(void); void LoadBitmap(const TCHAR * file_name); void ReLoadBitmap(void); void GetDisplayMode(DWORD& w, DWORD& h, DWORD& bpp); };