MGL(Win32)
読み取り中…
検索中…
一致する文字列を見つけられません
mgl_win32_window.h
[詳解]
1// SPDX-License-Identifier: Zlib
2/* ------------------------------------------------------------------------- */
9/* ------------------------------------------------------------------------- */
10
11#ifndef INCGUARD_MGL_WIN32_WINDOW_H_1614567872
12#define INCGUARD_MGL_WIN32_WINDOW_H_1614567872
13
14#include <mgl/mgl_environment.h>
15#if defined(MGL_TARGET_WIN32)
16
17#include <Windows.h>
21
22namespace MGL::Win32
23{
25class Window final : public MGL::SharedSingleton<Window>
26{
27public:
28
31 {
32 int width;
33 int height;
34 LPCWSTR windowTitle;
35 LPCWSTR className;
36 HICON icon;
37 HICON smallIcon;
38
40 constexpr Descriptor() noexcept
41 : width(1280)
42 , height(720)
43 , windowTitle(L"MGL-App")
44 , className(nullptr)
45 , icon(nullptr)
46 , smallIcon(nullptr)
47 {
48 }
49 };
50
51 static STL::unique_ptr<Window> &GetInstanceRef() noexcept;
52
53 Window() noexcept;
54
55 bool Initialize(HINSTANCE hInstance, int nCmdShow, WNDPROC windowProc, const Descriptor &descriptor) noexcept;
56
57 /* ------------------------------------------------------------------------- */
61 /* ------------------------------------------------------------------------- */
62 constexpr HWND GetWindowHandler() noexcept
63 {
64 return _hWnd;
65 }
66
67 /* ------------------------------------------------------------------------- */
72 /* ------------------------------------------------------------------------- */
73 constexpr int GetWidth() const noexcept
74 {
75 return _width;
76 }
77
78 /* ------------------------------------------------------------------------- */
83 /* ------------------------------------------------------------------------- */
84 constexpr int GetHeight() const noexcept
85 {
86 return _height;
87 }
88
89
90 /* ------------------------------------------------------------------------- */
94 /* ------------------------------------------------------------------------- */
95 constexpr HINSTANCE GetAppInstanceHandle() const noexcept
96 {
97 return _hInstance;
98 }
99
100 void SetWindowTitle(const char *title) noexcept;
101 bool Resize(int width, int height) noexcept;
102 float GetLogicalScaleFactor() const noexcept;
103
104 void Update() noexcept;
105
106private:
107 HINSTANCE _hInstance;
108 HWND _hWnd;
109 int _width;
110 int _height;
111 float _scaleFactor;
112};
113} // namespace MGL::Win32
114
115#endif // MGL_TARGET_WIN32
116#endif // INCGUARD_MGL_WIN32_WINDOW_H_1614567872
117
118// vim: et ts=4 sw=4 sts=4
シングルトンテンプレート(共有ライブラリ用)
Definition mgl_singleton.h:44
Win32用ウィンドウクラス
Definition mgl_win32_window.h:26
constexpr HINSTANCE GetAppInstanceHandle() const noexcept
アプリケーションインスタンスのハンドルを取得
Definition mgl_win32_window.h:95
bool Resize(int width, int height) noexcept
ウィンドウのリサイズ
Definition mgl_win32_window.cc:141
constexpr int GetWidth() const noexcept
ウィンドウの幅を取得
Definition mgl_win32_window.h:73
constexpr int GetHeight() const noexcept
ウィンドウの高さを取得
Definition mgl_win32_window.h:84
void SetWindowTitle(const char *title) noexcept
ウィンドウタイトルの設定
Definition mgl_win32_window.cc:121
float GetLogicalScaleFactor() const noexcept
ウィンドウの論理サイズの倍率を取得
Definition mgl_win32_window.cc:164
void Update() noexcept
ウィンドウの更新処理
Definition mgl_win32_window.cc:175
bool Initialize(HINSTANCE hInstance, int nCmdShow, WNDPROC windowProc, const Descriptor &descriptor) noexcept
初期化処理
Definition mgl_win32_window.cc:55
constexpr HWND GetWindowHandler() noexcept
ウィンドウハンドラの取得
Definition mgl_win32_window.h:62
static STL::unique_ptr< Window > & GetInstanceRef() noexcept
インスタンスの取得
Definition mgl_win32_window.cc:22
MGL 環境定義
MGL イベントハンドル
MGL シングルトンクラス
MGL STLのメモリ関連の代替
std::unique_ptr< T, Deleter > unique_ptr
MGLのアロケータを利用するユニークポインタ
Definition mgl_stl_memory.h:247
ウィンドウ初期化用記述子
Definition mgl_win32_window.h:31
int height
ウィンドウの高さ
Definition mgl_win32_window.h:33
HICON icon
ウィンドウアイコン
Definition mgl_win32_window.h:36
int width
ウィンドウの幅
Definition mgl_win32_window.h:32
constexpr Descriptor() noexcept
コンストラクタ
Definition mgl_win32_window.h:40
LPCWSTR className
クラス名(nullptr指定でウィンドウタイトルを使用)
Definition mgl_win32_window.h:35
HICON smallIcon
ウィンドウの小アイコン
Definition mgl_win32_window.h:37
LPCWSTR windowTitle
ウィンドウタイトル
Definition mgl_win32_window.h:34