11#ifndef INCGUARD_MGL_FONT_H_1622099992
12#define INCGUARD_MGL_FONT_H_1622099992
62 template <
class FontResourceClass,
class... Args>
65 return AddStorage(key, STL::make_shared<FontResourceClass>(args...));
135 _option.
scale = scale;
145 constexpr void SetScale(
float scaleX,
float scaleY)
noexcept
170 return _option.
scale;
294 return _resource->IsValid();
304 explicit operator bool() const noexcept
318 return !
static_cast<bool>(*this);
322 bool Print(const Text::IndexedCharacter *indexedString, const Text::FormatArgs &args = Text::FormatArgs()) noexcept;
331 template <class... Args>
332 constexpr
bool Print(const
char *text, const Args &...args) noexcept
334 return Print(text, {args...});
344 template <
class... Args>
347 return Print(indexedString, {args...});
360 return (_resource !=
nullptr) ? _resource->IsEnabled(feature) :
false;
373 return (_resource !=
nullptr) ? _resource->HasFontFace(faceType) :
false;
387 return (_resource !=
nullptr) ? _resource->GetIndexConverter().ToIndexedString(text, enableFormat, enableTag) :
nullptr;
400 return (_resource !=
nullptr) ? _resource->ToIndexedCharacter(character, faceType) : Text::kIndexedCharacterInvalid;
411 return (_resource !=
nullptr) ? _resource->GetOriginType() : FontOrigin::TopLeft;
424 return (_resource !=
nullptr) ? _resource->GetGlyph(character, faceType, _option) :
nullptr;
437 return (_resource !=
nullptr) ? _resource->GetGlyph(character, faceType, _option) :
nullptr;
447 constexpr void SetLimits(int32_t limitCount,
bool isOnce)
noexcept
450 _isOnceLimit = isOnce;
469 [[nodiscard]]
constexpr int32_t
GetLimits() const noexcept
495 template <
class... Args>
498 return Format(text, {args...});
MGL フォントクラス
Definition mgl_font.h:22
static Font AddStorage(FontKey key, const SharedFontResource &resource) noexcept
フォントをフォントストレージに追加
Definition mgl_font.cc:23
constexpr void SetMargin(const Vector2 &margin) noexcept
字間と行間の設定
Definition mgl_font.h:269
bool Print(const char *text, const Text::FormatArgs &args=Text::FormatArgs()) noexcept
文字の表示
Definition mgl_font.cc:64
bool Load(FontKey key) noexcept
フォントストレージからフォントを読み込み
Definition mgl_font.cc:46
constexpr void SetPosition(const Vector2 &position) noexcept
表示位置の設定
Definition mgl_font.h:97
constexpr void SetScale(float scaleX, float scaleY) noexcept
スケール値の設定
Definition mgl_font.h:145
constexpr void SetScale(const Vector2 &scale) noexcept
スケール値の設定
Definition mgl_font.h:133
static Font Create(FontKey key, Args... args) noexcept
フォント生成用テンプレート
Definition mgl_font.h:63
constexpr const Color & GetMaskColor() const noexcept
マスクカラーの取得
Definition mgl_font.h:212
constexpr const Vector2 & GetMargin() const noexcept
字間と行間の取得
Definition mgl_font.h:280
constexpr void SetMaskColor(const Color &color) noexcept
マスクカラーの設定
Definition mgl_font.h:201
constexpr bool IsEnabled(FontFeature feature) const noexcept
このフォントが扱える機能を取得
Definition mgl_font.h:358
constexpr FontOrigin GetOriginType() const noexcept
フォントの原点タイプを取得
Definition mgl_font.h:409
STL::vector< Text::IndexedCharacter > Format(const Text::IndexedCharacter *text, const Text::FormatArgs &args) const noexcept
インデックス文字列の整形
Definition mgl_font.h:482
static void Remove(FontKey key) noexcept
フォントの削除
Definition mgl_font.h:73
Font(FontKey key) noexcept
コンストラクタ
Definition mgl_font.h:30
constexpr const Vector2 & GetScale() const noexcept
スケール値の取得
Definition mgl_font.h:168
constexpr SamplerType GetSamplerType() const noexcept
サンプラータイプの取得
Definition mgl_font.h:234
constexpr bool Print(const Text::IndexedCharacter *indexedString, const Args &...args) noexcept
インデックス化した文字の表示
Definition mgl_font.h:345
bool operator!() const noexcept
有効状態を否定演算子で取得
Definition mgl_font.h:316
constexpr void SetLimits(int32_t limitCount, bool isOnce) noexcept
表示上限数の設定
Definition mgl_font.h:447
constexpr const Vector2 & GetPosition() const noexcept
表示位置の取得
Definition mgl_font.h:122
constexpr Font() noexcept
コンストラクタ
Definition mgl_font.h:43
bool IsValid() const noexcept
フォントの有効状態を取得
Definition mgl_font.h:292
constexpr float GetTransparency() const noexcept
透過値の取得
Definition mgl_font.h:258
Text::IndexedCharacter ToIndexedCharacter(char32_t character, FontFaceType faceType=FontFaceType::Default) const noexcept
UTF-32文字をこのフォント用のインデックス文字に変換
Definition mgl_font.h:398
STL::unique_ptr< Text::IndexedCharacter[]> ToIndexedString(const char *text, bool enableFormat, bool enableTag) const noexcept
文字列をこのフォント用のインデックス文字列に変換
Definition mgl_font.h:385
constexpr void SetSamplerType(SamplerType samplerType) noexcept
サンプラータイプの設定
Definition mgl_font.h:223
STL::vector< Text::IndexedCharacter > Format(const Text::IndexedCharacter *text, const Args &...args) noexcept
インデックス文字列の整形
Definition mgl_font.h:496
constexpr Alignment::Horizontal GetHorizontalAlignment() const noexcept
水平方向の配置情報の取得
Definition mgl_font.h:190
constexpr int32_t GetLimits() const noexcept
表示上限数の取得
Definition mgl_font.h:469
constexpr const FontGlyph * GetGlyph(char32_t character, FontFaceType faceType=FontFaceType::Default) const noexcept
グリフ情報の取得
Definition mgl_font.h:422
constexpr void SetTransparency(float transparency) noexcept
透過値の設定
Definition mgl_font.h:246
constexpr const FontGlyph * GetGlyph(Text::IndexedCharacter character, FontFaceType faceType=FontFaceType::Default) const noexcept
グリフ情報の取得
Definition mgl_font.h:435
constexpr void SetPosition(float x, float y) noexcept
表示位置の設定
Definition mgl_font.h:109
constexpr bool HasFontFace(FontFaceType faceType) const noexcept
指定したフェイスを保持しているかを取得
Definition mgl_font.h:371
constexpr FontKey GetFontKey() const noexcept
このフォントのキーを取得
Definition mgl_font.h:86
constexpr void SetHorizontalAlignment(Alignment::Horizontal alignment) noexcept
水平方向の配置情報の設定
Definition mgl_font.h:179
constexpr void ClearLimits() noexcept
表示上限数をクリア
Definition mgl_font.h:458
constexpr void SetScale(float scale) noexcept
スケール値の設定
Definition mgl_font.h:157
static FontStorage & GetInstance() noexcept
Definition mgl_singleton.h:74
FontOrigin
フォントの原点
Definition mgl_font_defs.h:52
FontFeature
フォントの機能
Definition mgl_font_defs.h:41
FontFaceType
フォントのフェイスタイプ
Definition mgl_font_defs.h:21
std::shared_ptr< FontResource > SharedFontResource
フォントリソースの共有ポインタ
Definition mgl_font_resource.h:287
FontKey
フォントリソースにアクセスするキーの型
Definition mgl_font_storage.h:24
SamplerType
サンプラー
Definition mgl_render_types.h:59
std::vector< T, Allocator< T > > vector
std::vectorの代替
Definition mgl_stl_containers.h:51
std::unique_ptr< T, Deleter > unique_ptr
MGLのアロケータを利用するユニークポインタ
Definition mgl_stl_memory.h:247
uint16_t IndexedCharacter
インデックス化文字
Definition mgl_text_defs.h:30
STL::vector< FormatArgument > FormatArgs
テキストフォーマットの引数の配列
Definition mgl_text_format_argument.h:282
Horizontal
水平方向の配置
Definition mgl_alignment.h:24
色情報
Definition mgl_color.h:22
float alpha
アルファ値
Definition mgl_color.h:26
グリフ情報
Definition mgl_font_glyph.h:20
フォント描画オプション
Definition mgl_font_option.h:22
Vector2 firstPosition
初期基準位置
Definition mgl_font_option.h:23
Vector2 margin
字間と行間
Definition mgl_font_option.h:28
Alignment::Horizontal horizontalAlignment
水平方向の配置情報
Definition mgl_font_option.h:24
SamplerType samplerType
サンプラータイプ
Definition mgl_font_option.h:27
Color maskColor
マスクカラー
Definition mgl_font_option.h:26
Vector2 scale
スケール値
Definition mgl_font_option.h:25
フォント描画のワークデータ
Definition mgl_font_defs.h:59
int32_t limitCount
表示上限数
Definition mgl_font_defs.h:61
Vector2 position
表示位置
Definition mgl_font_defs.h:60
2Dベクトル
Definition mgl_vector2.h:23
float y
Y成分
Definition mgl_vector2.h:25
float x
X成分
Definition mgl_vector2.h:24