Files
bluflame/aiwaz/Aiwaz/Window/Window.h
2026-04-18 22:31:51 +02:00

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;
};