class ApplicationWindow
{
public:
ApplicationWindow();
void FreeMemory();
void FreeWindow();
void Init(HWND handle);
void InitAll(HINSTANCE hInstance, int nCmdShow, bool FullScreen, int ScreenWidth, int ScreenHeight, const String &WindowName);
void InitWindow(HINSTANCE hInstance, int nCmdShow, bool FullScreen, int ScreenWidth, int ScreenHeight, const String &WindowName);
void ReSize(int NewClientAreaWidth, int NewClientAreaHeight);
Vec2f GetBorderDimensions();
void ResetWindow(bool FullScreen, int nCmdShow, int Width, int Height);
void RenameWindow(const String &NewName);
Vec2f MapAbsoluteWindowCoordToRelative(const Vec2f &Absolute);
Vec2f MapRelativeWindowCoordToAbsolute(const Vec2f &Relative);
UINT Width();
UINT Height();
Vec2i Dimensions();
float AspectRatio();
__forceinline HWND Handle()
{
return _handle;
}
bool FullScreen()
{
return _fullScreen;
}
__forceinline double& FixedAspectRatio()
{
return _fixedAspectRatio;
}
private:
String _className;
WNDCLASS _class;
HWND _handle;
bool _fullScreen;
double _fixedAspectRatio;
};