目次 - 3.関数 - 3.3属性 - TTF_SetFontStyle

TTF_SetFontStyle

void TTF_SetFontStyle(TTF_Font *font, int style)

font
スタイルを設定するフォント
style
次のスタイルを表すビットマスクの論理和:
TTF_STYLE_BOLD
TTF_STYLE_ITALIC
TTF_STYLE_UNDERLINE
TTF_STYLE_STRIKETHROUGH
スタイルを設定しない場合はTTF_STYLE_NORMAL

fontのスタイルを設定する.

メモ: この関数のfontにNULLを渡すと異常終了する.

メモ: この関数を呼ぶと, スタイルが変わらない場合でも, 以前のレンダリングされたグリフの内部キャッシュが消去される. まずTTF_GetFontStyleを呼んで現在のスタイルをチェックしたほうがよい.

メモ: TTF_STYLE_UNDERLINEで元のグリフメトリックが下線を認めない場合, TTF_RenderGlyph_*関数によって生成されるサーフェイスは下線を囲むように下に広がる. これはグリフメトリックを使って位置を計算する場合も変わらない.
一方, TTF_STYLE_STRIKETHROUGHはグリフは広がらない. このとこにより, コピーするときグリフの位置を決めるためにメトリックが使えないようになる. なぜなら, 恐らく実際には上に広がっているためである. もしかすると回避策はあるのかもしれない. しかし, 現在の設計よりも賢いグリフをコピーする計算がプログラムに求められる.
また, 下線や取り消し線が生成されるサーフェイスの外に出てしまうかもしれない. その場合はスクリーンにコピーしても表示されない. この場合は, スタイルの設定ではなく自分自身で取り消し線や下線を描く必要がある.

サンプルコード

// 読み込まれたフォントのスタイルをボールドのイタリックに設定する
//TTF_Font *font;
TTF_SetFontStyle(font, TTF_STYLE_BOLD|TTF_STYLE_ITALIC);

// ここでボールド・イタリックのテキストをレンダリングする...

// 読み込まれたフォントのスタイルを標準に戻す
TTF_SetFontStyle(font, TTF_STYLE_NORMAL);

参照

TTF_GetFontStyle, 5.マクロ

原文へのリンク

3.3.3 TTF_SetFontStyle