49 lines
1.2 KiB
C++
49 lines
1.2 KiB
C++
#pragma once
|
|
|
|
#include "IEngine.h"
|
|
#include "IWindow.h"
|
|
#include "ISwapChain.h"
|
|
|
|
class Window
|
|
: public IWindow
|
|
{
|
|
public:
|
|
Window(IEngine& argEngine);
|
|
virtual ~Window();
|
|
|
|
// IWindow:
|
|
virtual void Initialize(const string16& argTitle, int argWidth, int argHeight, bool argFullscreen);
|
|
virtual LRESULT ProcessMessage(UINT argMessage, WPARAM argWParam, LPARAM argLParam);
|
|
virtual void SwapBuffers();
|
|
virtual void set_Active(bool argActive);
|
|
virtual bool get_Active();
|
|
virtual void set_Fullscreen(bool argFullscreen);
|
|
virtual bool get_Fullscreen();
|
|
virtual void set_VSync(bool argUseVSync);
|
|
virtual bool get_VSync();
|
|
virtual void set_DeviceContext(HDC argDeviceContext);
|
|
virtual void set_Title(const string16& argTitle);
|
|
virtual string16 get_Title();
|
|
virtual HDC get_DeviceContext();
|
|
virtual HWND get_Handle();
|
|
virtual ISwapChain& get_SwapChain() const { return *m_SwapChain; }
|
|
|
|
private:
|
|
static LRESULT CALLBACK MessageCallback(HWND argHandle, UINT argMessage, WPARAM argWParam, LPARAM argLParam);
|
|
|
|
IEngine& m_Engine;
|
|
|
|
ISwapChain* m_SwapChain;
|
|
|
|
string16 m_Title;
|
|
int m_Width;
|
|
int m_Height;
|
|
|
|
HDC m_DeviceContext;
|
|
HWND m_Handle;
|
|
HINSTANCE m_Instance;
|
|
|
|
bool m_Active;
|
|
bool m_Fullscreen;
|
|
};
|