MGL::System::Window
Contents
MGL::System::Window#
概要#
MGL::System::Windowはアプリケーションが動作しているウィンドウへのアクセス機能を提供するためのクラスです。
宣言#
namespace MGL::System
{
class Window;
}
利用例#
- F12キーを押すたびにフルスクリーンとウィンドウを切り替える例
if (MGL::Input::Keyboard().IsTriggered(MGL::Input::Keycode::F12)) { MGL::System::Window().ToggleFullscreen(); }
- ウィンドウタイトルに"Set your app name!"と表示する例
MGL::System::Window().SetTitle("Set your app name!");
メンバ情報#
種類 |
名前 |
内容 |
バージョン |
---|---|---|---|
関数 |
ウィンドウのリサイズ |
1.0.0+ |
|
関数 |
フルスクリーンの設定 |
1.0.0+ |
|
関数 |
フルスクリーンの切り替え |
1.0.0+ |
|
関数 |
フルスクリーン状態の取得 |
1.0.0+ |
|
関数 |
ウィンドウのフォーカス |
1.0.0+ |
|
関数 |
ウィンドウのフォーカス状態を取得 |
1.0.0+ |
|
関数 |
アラートウィンドウの表示 |
1.0.0+ |
|
関数 |
ウィンドウタイトルを設定 |
1.0.0+ |
|
関数 |
ウィンドウの識別子を取得 |
1.0.0+ |
|
関数 |
ウィンドウが存在する画面のサイズを取得 |
1.0.0+ |
Resize#
ウィンドウのリサイズ
宣言#
namespace MGL::System
{
class Window
{
void Resize(uint32_t width, uint32_t height) noexcept;
};
}
引数#
- uint32_t width
ウィンドウの幅
- uint32_t height
ウィンドウの高さ
説明#
アプリケーションが動作しているウィンドウのサイズを、指定した幅と高さに変更します。
幅と高さの単位は内部解像度に準拠したピクセルサイズです。論理解像度および物理解像度とは異なる場合がある点にご注意ください。
注釈
解像度の種類についてはMGL::System::ScreenSizeの説明を参照してください。
利用例#
- ウィンドウサイズを1920x1080のサイズに変更する例
MGL::System::Window().Resize(1920, 1080);
バージョン情報#
- MGL 1.0.0
初回リリース
関連#
SetFullscreen#
フルスクリーンの設定
宣言#
namespace MGL::System
{
class Window
{
void SetFullscreen(bool isEnabled) noexcept;
};
}
引数#
- bool isEnabled
true
でフルスクリーンを有効、false
で無効化
説明#
ウィンドウをフルスクリーン化、または解除するための関数です。
引数isEnabled
にtrue
を指定することで、そのウィンドウの描画領域を全画面に拡大します。false
を指定した場合はフルスクリーンを解除し、ウィンドウ表示に戻します。
動作環境がウィンドウモードに対応していない場合、この関数は何もしません。
利用例#
- フルスクリーンモードに移行する例
MGL::System::Window().SetFullscreen(true);
バージョン情報#
- MGL 1.0.0
初回リリース
関連#
ToggleFullscreen#
フルスクリーンの切り替え
宣言#
namespace MGL::System
{
class Window
{
void ToggleFullscreen() noexcept;
};
}
説明#
フルスクリーンとウィンドウの切り替えを行います。
この関数を呼び出した時点でフルスクリーンモードだった場合、ウィンドウモードへと切り替えます。逆にウィンドウモードの状態で呼び出した場合、フルスクリーンモードへと切り替えます。
利用例#
- F12キーを押すたびにフルスクリーンとウィンドウを切り替える例
if (MGL::Input::Keyboard().IsTriggered(MGL::Input::Keycode::F12)) { MGL::System::Window().ToggleFullscreen(); }
バージョン情報#
- MGL 1.0.0
初回リリース
関連#
IsFullscreen#
フルスクリーン状態の取得
宣言#
namespace MGL::System
{
class Window
{
[[nodiscard]] bool IsFullscreen() const noexcept;
};
}
戻り値#
- bool
フルスクリーン状態の場合は
true
、無効な場合はfalse
説明#
現在のフルスクリーン状態を取得します。戻り値がtrue
の場合は現在のモードがフルスクリーンモードであることを表します。
アプリケーションがウィンドウモードに対応していない場合は常にtrue
を返します。
利用例#
- 状況に応じてフルスクリーンモードとウィンドウモードを切り替える関数の例
void ToggleFullscreen() { MGL::System::Window window; if (window.IsFullscreen()) { window.SetFullscreen(false); } else { window.SetFullscreen(true); } }
注釈
この関数の機能はToggleFullscreenとほぼ同等です。
バージョン情報#
- MGL 1.0.0
初回リリース
- MGL 1.1.13
関数の戻り値に
[[nodiscard]]
属性を付与
関連#
Focus#
ウィンドウのフォーカス
宣言#
namespace MGL::System
{
class Window
{
void Focus() noexcept;
};
}
説明#
ウィンドウが非フォーカス状態である場合に強制的にフォーカスします。
フォーカスの細かい挙動やその呼び方はシステム依存となります。標準構成においては、Windowsでは対象ウィンドウをアクティベートし、macOSではアプリケーションをアクティベートしたうえでキーウィンドウに設定します。この関数はウィンドウを最前面に移動し、キーの入力状態を受け付ける状態にすることを想定しています。
利用例#
- ウィンドウを強制的にフォーカスする例
MGL::System::Window().Focus();
バージョン情報#
- MGL 1.0.0
初回リリース
関連#
IsFocused#
ウィンドウのフォーカス状態を取得
宣言#
namespace MGL::System
{
class Window
{
[[nodiscard]] bool IsFocused() const noexcept;
};
}
戻り値#
- bool
ウィンドウがフォーカスされている状態であれば
true
、そうでなければfalse
説明#
ウィンドウがフォーカス状態であるかを取得します。
フォーカスの細かい挙動やその呼び方はシステム依存となります。この関数は、ウィンドウが最前面に表示されており、キーの入力状態を受け付けている状態にtrue
を返すことを想定しています。
利用例#
- ウィンドウが非フォーカス状態の場合に強制的にフォーカスする例
MGL::System::Window window; if (!window.IsFocused()) { window.Focus(); }
注意
この処理をメインループ中に記述すると実行中は常にフォーカス状態になりますが、ユーザーにとっては大迷惑なため推奨されません。
バージョン情報#
- MGL 1.0.0
初回リリース
- MGL 1.1.13
関数の戻り値に
[[nodiscard]]
属性を付与
関連#
Alert#
アラートウィンドウの表示
宣言#
namespace MGL::System
{
class Window
{
void Alert(const char *message) const noexcept;
};
}
戻り値#
- const char *message
表示メッセージ (UTF-8エンコーディング)
説明#
アラートメッセージのためのモーダルウィンドウを表示します。表示メッセージは引数message
にUTF-8エンコーディングで指定します。
このアラートはウィンドウの更新処理をブロックし、システム標準のモーダルダイアログを用いてメッセージを表示します。主に起動失敗時のエラーメッセージなど、アウトゲームでの使用が想定されています。ゲーム内で使用するダイアログはこの関数を使用せず、ゲーム側で個別に実装したものを使用してください。
利用例#
- アプリケーション起動時に"Test Message"というアラートを表示する例
bool Application::OnInitialize() noexcept { MGL::System::Window().Alert("Test Message"); }
- 実行結果 (macOSの場合)
バージョン情報#
- MGL 1.0.0
初回リリース
SetTitle#
ウィンドウタイトルを設定
宣言#
namespace MGL::System
{
class Window
{
void SetTitle(const char *title) noexcept
};
}
引数#
- const char *title
設定する文字列 (UTF-8エンコーディング)
説明#
ウィンドウタイトルに表示する文字列を設定します。引数title
はUTF-8エンコーディングで指定する必要があります。
利用例#
- ウィンドウタイトルに"Set your app name!"と表示する例
MGL::System::Window().SetTitle("Set your app name!");
- 表示結果 (macOSの場合)
バージョン情報#
- MGL 1.0.0
初回リリース
GetIdentifier#
ウィンドウの識別子を取得
宣言#
namespace MGL::System
{
class Window
{
[[nodiscard]] int32_t GetIdentifier() const noexcept;
};
}
戻り値#
- int32_t
ウィンドウの識別子
説明#
システムがウィンドウの識別に使用している値を取得します。
この関数が返す具体的な値や意味はシステムに強く依存します。現時点ではこの関数はmacOSのみで機能しており、それ以外の環境では常に0
を返します。
通常、この関数をアプリケーション側で使用する機会はありません。
利用例#
- 識別子を取得して表示する例
auto identifier = MGL::System::Window().GetIdentifier(); MGL_TRACE("window identifier: %d", identifier);
- 実行結果 (macOSの場合、一例)
window identifier: 814
バージョン情報#
- MGL 1.0.0
初回リリース
- MGL 1.1.13
関数の戻り値に
[[nodiscard]]
属性を付与
GetScreenSize#
ウィンドウが存在する画面のサイズを取得
宣言#
namespace MGL::System
{
class Window
{
[[nodiscard]] ScreenSize GetScreenSize() const noexcept;
};
}
戻り値#
- MGL::System::ScreenSize
ウィンドウが存在しているスクリーンのサイズ
説明#
ウィンドウが存在しているスクリーンの詳細なサイズ情報を取得します。
取得可能な情報の詳細はMGL::System::ScreenSizeを参照してください。
利用例#
- スクリーン情報を取得して表示する例
auto screenSize = MGL::System::Window().GetScreenSize(); MGL_TRACE("物理解像度: %.0f x %.0f", screenSize.physicalSize.x, screenSize.physicalSize.y); MGL_TRACE("論理解像度: %.0f x %.0f", screenSize.logicalSize.x, screenSize.logicalSize.y); MGL_TRACE("内部解像度: %.0f x %.0f", screenSize.backingSize.x, screenSize.backingSize.y);
- 実行結果 (macOSにおいて、3840 x 2160ディスプレイ使用時に論理解像度2560 x 1440を設定した場合)
物理解像度: 3840 x 2160 論理解像度: 2560 x 1440 内部解像度: 5120 x 2880
バージョン情報#
- MGL 1.0.0
初回リリース
- MGL 1.1.13
関数の戻り値に
[[nodiscard]]
属性を付与