MGL::System各種定義#

概要#

MGL::Systemで定義されている、システムアクセス機能に関わる定義です。

#

種類

名前

内容

バージョン

列挙型

Language

MGLが扱う言語

1.0.0+

列挙型

LogLevel

ログの出力レベル

1.0.0+

EpochTime

UNIXエポック時間を表すための型

1.0.0+

TickTime

CPU時間を表すための型

1.0.0+

ArgumentArray

実行時引数の配列型

1.0.0+

構造体#

種類

名前

内容

バージョン

構造体

ScreenSize

画面サイズ情報

1.0.0+


Language#

MGLが扱う言語

宣言#

namespace MGL::System
{
    enum class Language : uint32_t
    {
        // 省略(下記参照)
    };
}

説明#

MGLが対応している言語の種類を表す列挙型です。言語の一覧は次の通りです。

定義

言語名

Unknown

不明

Arabic

アラビア語

BrazilPortuguese

ブラジルポルトガル語

Bulgarian

ブルガリア語

Czech

チェコ語

Dansk

デンマーク語

Deutsch

ドイツ語

English

英語

French

フランス語

Greek

ギリシャ語

Italiano

イタリア語

Japanese

日本語

Korean

韓国語

LatinAmericaSpanish

ラテンアメリカのスペイン語

Magyar

ハンガリー語

Nederlands

オランダ語

Norsk

ノルウェー語

Polski

ポーランド語

Portuguese

ポルトガル語

Romanian

ルーマニア語

Russian

ロシア語

SimplifiedChinese

簡体中文

Spanish

スペイン語

Suomi

フィンランド語

Svenska

スウェーデン語

Thai

タイ語

TraditionalChinese

繁体中文

Turkish

トルコ語

Ukrainian

ウクライナ語

Vietnamese

ベトナム語

Invalid

無効な言語

バージョン情報#

MGL 1.0.0
  • 初回リリース

MGL 1.1.13
  • 無効な言語を表すInvalidを追加

  • 型のサイズにuint32_tを指定

関連#


LogLevel#

デバッグ用ログの出力レベル

宣言#

namespace MGL::System
{
    enum class LogLevel : uint8_t
    {
        // 省略(下記参照)
    };
}

説明#

MGL::System デバッグ用マクロが使用するログの出力を制御するための列挙型です。この値はアプリケーション初期化時に設定され、指定したログレベルより優先度の低い出力は抑制されるようになります。

デバッグログを出力する際には、この定義を直接使用する必要はありません。対応したログ出力を行うマクロが用意されているため、そちらを使用してください。

出力レベルの優先度を高い順に並べた一覧は次の通りです。

定義

優先度

対応マクロ

Error

最高

MGL_ERROR

Warning

MGL_WARNING

AppTrace

MGL_TRACE

LibraryTrace

最低

MGL_LIBRARY_TRACE

バージョン情報#

MGL 1.0.0
  • 初回リリース

MGL 1.1.13
  • 型のサイズにuint8_tを指定

関連#


EpochTime#

UNIXエポック時間を表すための型

宣言#

namespace MGL::System
{
    using EpochTime = time_t;
    static_assert(sizeof(EpochTime) >= 8);
}

説明#

UNIXエポック時間を表すための型です。この型はtime_t型の別名であり、そのサイズは最低でも64ビットとなります。

UNIXエポック時間は世界協定時の1970年1月1日0時0分0秒を0とし、閏秒を除いた秒単位の時間です。この型はMGL::System::Chrono::GetCurrentEpochTimeの戻り値の型として使用されます。

UNIXエポック時間を一般的な日付と時刻の形式に変換する場合、MGL::System::DateTimeのコンストラクタの引数へと指定して初期化してください。

UNIXエポック時間は世界協定時を基準とするため、この型で表される時刻には時差が含まれていません。ローカル時間を扱う場合はMGL::System::Locale::GetTimeDifferenceを用いて補正を行うか、補正済みの現在時刻を取得するMGL::System::Locale::GetLocalDateTimeを使用してください。

バージョン情報#

MGL 1.0.0
  • 初回リリース

関連#


TickTime#

CPU時間を表すための型

宣言#

namespace MGL::System
{
    using TickTime = uint64_t;
}

説明#

CPU時間(TickTime)を表すための型です。

CPU時間はプロセッサへの動作クロック信号を基準にカウントアップされる値です。多くの環境においてCPU時間は最も精度の高い時間表現となります。反面、その精度は実行環境に依存し、起点となる値も厳格な定義はありません。多くの場合、プロセッサへの電源投入時を0とし、クロック信号に基づいて1づつカウントアップしています。

CPU時間は主に高精度な経過時間を算出する場合に使用します。ゲームにおけるフレーム間の経過時間の算出や、パフォーマンスチューニングにおける処理時間の測定などがこの用途に当てはまります。

CPU時間を扱うAPIには次のものがあります。

CPU時間が扱えるかの取得

MGL::System::Chrono::IsAvailableTickTimer

現在のCPU時間を取得

MGL::System::Chrono::GetTickTime

2つのCPU時間から経過時間を取得

MGL::System::Chrono::GetTickPassTime

CPU時間をミリ秒に変換

MGL::System::Chrono::TicksToMilliseconds

CPU時間をマイクロ秒に変換

MGL::System::Chrono::TicksToMicroseconds

CPU時間をナノ秒に変換

MGL::System::Chrono::TicksToNanoseconds

バージョン情報#

MGL 1.0.0
  • 初回リリース

関連#


ArgumentArray#

実行時引数の配列型

宣言#

namespace MGL::System
{
    using ArgumentArray = MGL::STL::vector<MGL::STL::string>;
}

説明#

アプリケーションの実行時引数を格納するための配列です。

配列はMGL::STL::vectorによる可変長配列であり、各々の要素はMGL::STL::stringによる文字列です。これらの使用方法は通常のSTLと同様です。

バージョン情報#

MGL 1.0.0
  • 初回リリース

関連#


ScreenSize#

画面サイズ情報

宣言#

namespace MGL::System
{
    struct ScreenSize
    {
        // 省略(下記参照)
    };
}

説明#

画面サイズ情報を格納するための構造体です。各メンバの内容は次の通りです。

bool isAvailable

この構造体の情報が有効であるかを表すフラグです。この値がfalseの場合、他のメンバの内容は有効ではありません。

MGL::Vector2 physicalSize

画面の物理解像度 (Physical Resolution) を表す値です。

物理解像度は実際に映像信号として出力されている画面解像度です。ディスプレイなどの表示機器には画面全体がこのサイズの画像として伝達されています。

MGL::Vector2 logicalSize

画面の論理解像度 (Logical Resolution) を表す値です。

論理解像度はUIなどで使用される擬似的な解像度で、ピクセル密度の違いによる物理的なサイズの差異を解決するために使用されています。

MGL::Vector2 backingSize

画面の内部解像度 (Backing Resolution) を表す値です。

内部解像度は描画プロセッサが画面全体を表現するための解像度です。多くの場合、内部解像度はGPUが画面表示に使用しているフレームバッファのサイズであり、単位はピクセルです。

バージョン情報#

MGL 1.0.0
  • 初回リリース

関連#