= Font
* ((< Font描画機能概説>))
* ((<SDL::TTF>))
* ((<SDL::BMFont>))
* ((<SDL::Kanji>))
* フォント関連メソッド
  * ((<SDL::TTF.init>)) -- TTF描画機能を初期化します。
  * ((<SDL::TTF.init?>)) -- TTF描画機能が初期化されているかどうかを得ます。
  * ((<SDL::TTF.open>)) -- ファイルからフォントを読みこみます。
  * ((<SDL::TTF#close>)) -- フォントをクローズします。
  * ((<SDL::TTF#closed?>)) -- フォントがクローズされたかどうかを返します。
  * ((<SDL::TTF#style>)) -- フォントの描画スタイルを返します。
  * ((<SDL::TTF#style=>)) -- フォントの描画スタイルを設定します。
  * ((<SDL::TTF#height>)) -- フォントの文字の高さを返します。
  * ((<SDL::TTF#ascent>)) -- フォントのascentを返します。
  * ((<SDL::TTF#descent>)) -- フォントのdescentを返します。
  * ((<SDL::TTF#line_skip>)) -- フォントの一行あたりの推奨高さを返す。
  * ((<SDL::TTF#faces>)) -- フェイスの数を返します。
  * ((<SDL::TTF#fixed_width?>)) -- フォントフェイスが等幅かどうかを得ます。
  * ((<SDL::TTF#family_name>)) -- フォントの現在のフェイスの名前を得ます。
  * ((<SDL::TTF#style_name>)) -- フォントの現在のフェイスのスタイルの名前を得ます。
  * ((<SDL::TTF#text_size>)) -- 文字列のレンダリングに必要なサーフェスのサイズを得ます。
  * ((<SDL::TTF#render_solid_utf8>)) -- 文字列をレンダリングしたサーフェスを返します。
  * ((<SDL::TTF#render_shaded_utf8>)) -- 文字列をアンチエイリアシングしてレンダリングしたサーフェスを返します。
  * ((<SDL::TTF#render_blended_utf8>)) -- 文字列をアルファを使ってアンチエイリアスしたサーフェスを返します。
  * ((<SDL::TTF#draw_solid_utf8>)) -- 文字列を描画します。
  * ((<SDL::TTF#draw_shaded_utf8>)) -- 文字列をアンチエイリアス描画します。
  * ((<SDL::TTF#draw_blended_utf8>)) -- 文字列をアルファブレンディングでアンチエイリアスして描画します。
  * ((<SDL::TTF#render_solid>)) -- 文字列をレンダリングしたサーフェスを返します。
  * ((<SDL::TTF#render_shaded>)) -- 文字列をアンチエイリアシングしてレンダリングしたサーフェスを返します。
  * ((<SDL::TTF#render_blended>)) -- 文字列をアルファを使ってアンチエイリアスしたサーフェスを返します。
  * ((<SDL::TTF#draw_solid>)) -- 文字列を描画します。
  * ((<SDL::TTF#draw_shaded>)) -- 文字列をアンチエイリアス描画します。
  * ((<SDL::TTF#draw_blended>)) -- 文字列をアルファブレンディングでアンチエイリアスして描画します。
  * ((<SDL::BMFont.open>)) -- フォントをロードします。
  * ((<SDL::BMFont#close>)) -- フォントを閉じます。
  * ((<SDL::BMFont#closed?>)) -- フォントが閉じられているかどうかを返します。
  * ((<SDL::BMFont#set_color>)) -- フォントの色を変更します。
  * ((<SDL::BMFont#height>)) -- フォントの高さを得ます。
  * ((<SDL::BMFont#width>)) -- フォントの幅を得ます。
  * ((<SDL::BMFont#text_size>)) -- 文字列の描画に必要なサーフェスの大きさを得ます。
  * ((<SDL::BMFont#textout>)) -- 文字列を描画します。
  * ((<SDL::Kanji.open>)) -- bdfファイルを読み込む。
  * ((<SDL::Kanji#close>)) -- 読みこんだフォントを閉じます。
  * ((<SDL::Kanji#closed?>)) -- フォントを閉じたかどうかを返します。
  * ((<SDL::Kanji#add>)) -- 既に読み込んでいるフォントに追加してフォントを読みこみます。
  * ((<SDL::Kanji#set_coding_system>)) -- 文字コードを指定します。
  * ((<SDL::Kanji#get_coding_system>)) -- 既定の文字コード返します。
  * ((<SDL::Kanji#height>)) -- 文字の高さを得ます。
  * ((<SDL::Kanji#textwidth>)) -- 文字列の幅を得ます。
  * ((<SDL::Kanji#width>)) -- 文字の幅を得ます。
  * ((<SDL::Kanji#put>)) -- 文字を描画します。
  * ((<SDL::Kanji#put_tate>)) -- 文字を縦書きで描画します。

== Font描画機能概説
Ruby/SDL は3種類の異なるフォント描画システムを持っています。
((<SDL_ttf|URL:http://www.libsdl.org/projects/SDL_ttf/index.html>))
での True Type Font の描画、
((<SGE|URL:http://www.etek.chalmers.se/~e8cal1/sge/index.html>))
での独自形式/SFont形式でのビットマップフォントの描画、
((<SDL_kanji|URL:http://shinh.skr.jp/sdlkanji/>)) での bdf フォントの描画
です。
このそれぞれに、((<SDL::TTF>))、((<SDL::BMFont>))、((<SDL::Kanji>)) というクラスが割当てられて
いて、それぞれ異なるメソッド、機能を持ちます。

これにはそれぞれ以下のような特徴があります。適切に使いわけてください。
* SDL::TTF

  フォントファイルの名前は *.ttf や *.ttc が一般的です。
  フォントデータの情報がベクトルデータであるため、一つの
  フォントデータがあれば任意の大きさの文字を描画できる利点があります。
  フォントデータを準備するのが面倒という欠点です。とくに自作
  するのは大変でしょう。

* SDL::BMFont

  フォントファイルはたんなるビットマップファイル(*.bmp) や PNG ファイル(*.png)
  を使います。独自形式の場合、画像を等幅の文字データを横に256個並べたものと
  みなし、そのそれぞれが ASCII コードと対応しているもとの解釈されます。
  つまり 横幅 8 ピクセル、高さ 16ピクセルのデータならば
  幅 8*256 = 2048、高さ 16ピクセルの画像となります。
  フォントデータを自作するのが比較的容易なことが利点です。
  平仮名、漢字等の描画ができないこと、拡大縮小した文字を
  描画できないことが欠点です。

  もう一つ、このクラスは ((<SFont|URL:http://www.linux-games.com/sfont/>))
  形式も扱うことができます。これもビットマップフォントの一種ですが、
  文字の幅が可変である点などが利点です。詳しくはリンク先を見てください。
  
* SDL::Kanji

  フォントファイルの拡張子にはbdfが使われます。ビットマップフォントの
  一種です。複数のフォントファイル(例えばアルファベットと日本語)
  のデータを併せて使う機能を持っています。
  平仮名、漢字等の描画が可能な点が利点です。
  欠点は、bdf フォントはあまり一般的な形式ではないためフォントの用意が
  面倒であることです。

== SDL::TTF
* ((<SDL::TTF.init>)) -- TTF描画機能を初期化します。
* ((<SDL::TTF.init?>)) -- TTF描画機能が初期化されているかどうかを得ます。
* ((<SDL::TTF.open>)) -- ファイルからフォントを読みこみます。
* ((<SDL::TTF#close>)) -- フォントをクローズします。
* ((<SDL::TTF#closed?>)) -- フォントがクローズされたかどうかを返します。
* ((<SDL::TTF#style>)) -- フォントの描画スタイルを返します。
* ((<SDL::TTF#style=>)) -- フォントの描画スタイルを設定します。
* ((<SDL::TTF#height>)) -- フォントの文字の高さを返します。
* ((<SDL::TTF#ascent>)) -- フォントのascentを返します。
* ((<SDL::TTF#descent>)) -- フォントのdescentを返します。
* ((<SDL::TTF#line_skip>)) -- フォントの一行あたりの推奨高さを返す。
* ((<SDL::TTF#faces>)) -- フェイスの数を返します。
* ((<SDL::TTF#fixed_width?>)) -- フォントフェイスが等幅かどうかを得ます。
* ((<SDL::TTF#family_name>)) -- フォントの現在のフェイスの名前を得ます。
* ((<SDL::TTF#style_name>)) -- フォントの現在のフェイスのスタイルの名前を得ます。
* ((<SDL::TTF#text_size>)) -- 文字列のレンダリングに必要なサーフェスのサイズを得ます。
* ((<SDL::TTF#render_solid_utf8>)) -- 文字列をレンダリングしたサーフェスを返します。
* ((<SDL::TTF#render_shaded_utf8>)) -- 文字列をアンチエイリアシングしてレンダリングしたサーフェスを返します。
* ((<SDL::TTF#render_blended_utf8>)) -- 文字列をアルファを使ってアンチエイリアスしたサーフェスを返します。
* ((<SDL::TTF#draw_solid_utf8>)) -- 文字列を描画します。
* ((<SDL::TTF#draw_shaded_utf8>)) -- 文字列をアンチエイリアス描画します。
* ((<SDL::TTF#draw_blended_utf8>)) -- 文字列をアルファブレンディングでアンチエイリアスして描画します。
* ((<SDL::TTF#render_solid>)) -- 文字列をレンダリングしたサーフェスを返します。
* ((<SDL::TTF#render_shaded>)) -- 文字列をアンチエイリアシングしてレンダリングしたサーフェスを返します。
* ((<SDL::TTF#render_blended>)) -- 文字列をアルファを使ってアンチエイリアスしたサーフェスを返します。
* ((<SDL::TTF#draw_solid>)) -- 文字列を描画します。
* ((<SDL::TTF#draw_shaded>)) -- 文字列をアンチエイリアス描画します。
* ((<SDL::TTF#draw_blended>)) -- 文字列をアルファブレンディングでアンチエイリアスして描画します。

TrueTypeFontを表わすクラスです。このクラスを使うためには、
((<SDL_ttf|URL:http://www.libsdl.org/projects/SDL_ttf/index.html>))
が必要です。バックエンドに((<Freetype|URL:http://www.freetype.org/>))
を利用します。

また、フォントのライセンスにも注意してください。例えば Windows 付属の
フォントは再配布が認められていません。

== SDL::BMFont
* ((<SDL::BMFont.open>)) -- フォントをロードします。
* ((<SDL::BMFont#close>)) -- フォントを閉じます。
* ((<SDL::BMFont#closed?>)) -- フォントが閉じられているかどうかを返します。
* ((<SDL::BMFont#set_color>)) -- フォントの色を変更します。
* ((<SDL::BMFont#height>)) -- フォントの高さを得ます。
* ((<SDL::BMFont#width>)) -- フォントの幅を得ます。
* ((<SDL::BMFont#text_size>)) -- 文字列の描画に必要なサーフェスの大きさを得ます。
* ((<SDL::BMFont#textout>)) -- 文字列を描画します。

ビットマップフォントを表わすクラスです。このクラスを使うためには
((<SGE|URL:http://www.etek.chalmers.se/~e8cal1/sge/index.html>))
が必要です。

== SDL::Kanji
* ((<SDL::Kanji.open>)) -- bdfファイルを読み込む。
* ((<SDL::Kanji#close>)) -- 読みこんだフォントを閉じます。
* ((<SDL::Kanji#closed?>)) -- フォントを閉じたかどうかを返します。
* ((<SDL::Kanji#add>)) -- 既に読み込んでいるフォントに追加してフォントを読みこみます。
* ((<SDL::Kanji#set_coding_system>)) -- 文字コードを指定します。
* ((<SDL::Kanji#get_coding_system>)) -- 既定の文字コード返します。
* ((<SDL::Kanji#height>)) -- 文字の高さを得ます。
* ((<SDL::Kanji#textwidth>)) -- 文字列の幅を得ます。
* ((<SDL::Kanji#width>)) -- 文字の幅を得ます。
* ((<SDL::Kanji#put>)) -- 文字を描画します。
* ((<SDL::Kanji#put_tate>)) -- 文字を縦書きで描画します。

bdfフォントを表わすクラスです。

== フォント関連メソッド

--- SDL::TTF.init

    TTF描画機能を初期化します。
    ((<SDL::TTF>)) の他のメソッドを呼ぶ前にこれを呼んでください。
    ((<SDL.init>)) を呼ぶ前に呼んでもかまいません。


    このメソッドを使うには SDL_ttf が必要です。
    * See Also
      
      ((<SDL::TTF.init?>))

--- SDL::TTF.init?

    TTF描画機能が既に初期化されていればtrueを、いなければ
    falseを返します。


    このメソッドを使うには SDL_ttf が必要です。
    * See Also
      
      ((<SDL::TTF.init>))

--- SDL::TTF.open(filename, ptsize, index=nil)

    ((|filename|)) で指定したフォントファイルを ((|ptsize|)) ポイント
    で読み込みます。((|index|)) で face index を指定できます。
    デフォルトでは 0 です。

    ((<SDL::TTF>)) のインスタンスを返します。

    失敗したときには例外((<SDL::Error>))を発生させます。


    このメソッドを使うには SDL_ttf が必要です。

    EXAMPLE
      SDL::TTF.init
      font = SDL::TTF.open("font.ttf", 32, 0)

--- SDL::TTF#close

    フォントをクローズし、関連するリソースを解放します。


    このメソッドを使うには SDL_ttf が必要です。
    * See Also
      
      ((<SDL::TTF#closed?>))

--- SDL::TTF#closed?

    フォントが((<SDL::TTF#close>))でクローズされたかどうかを
    返します。


    このメソッドを使うには SDL_ttf が必要です。
    * See Also
      
      ((<SDL::TTF#close>))

--- SDL::TTF#style

    フォント ((|self|)) の描画スタイルを以下の値の論理和をとったもので返します。
    * SDL::TTF::STYLE_BOLD
    * SDL::TTF::STYLE_ITALIC
    * SDL::TTF::STYLE_UNDERLINE
    以上のどれも設定されていない場合は SDL::TTF::STYLE_NORMAL が返されます。


    このメソッドを使うには SDL_ttf が必要です。

    EXAMPLE
      print "The font style is:"
      
      print " normal" if font.style == SDL::TTF::STYLE_NORMAL
      print " bold" if (font.style & SDL::TTF::STYLE_BOLD) != 0
      print " italic" if (font.style & SDL::TTF::STYLE_ITALIC) != 0
      print " italic" if (font.style & SDL::TTF::STYLE_UNDERLINE) != 0
      
      print "\n"

    * See Also
      
      ((<SDL::TTF#style=>))

--- SDL::TTF#style=(new_style)

    フォント ((|self|)) の描画スタイルを ((|new_style|)) に設定します。
    ((|new_style|)) は以下の定数の論理和を与えてください。
    * SDL::TTF::STYLE_BOLD
    * SDL::TTF::STYLE_ITALIC
    * SDL::TTF::STYLE_UNDERLINE


    このメソッドを使うには SDL_ttf が必要です。

    EXAMPLE
      # イタリック体かつボールド体に設定する
      font.style = SDL::TTF::STYLE_ITALIC | SDL::TTF::STYLE_BOLD
      
      # 描画する…
      
      # 通常に戻す
      font.style = SDL::TTF::STYLE_NORMAL

    * NOTES

      このメソッドを呼ぶと内部のレンダリング済み文字のキャッシュが
      消されます。

    * See Also
      
      ((<SDL::TTF#style>))

--- SDL::TTF#height

    フォントの文字の中で一番縦の高さが高いものの高さをピクセル数で返します。
    この値を文字を縦にできるだけ近づけて描画するために使えます。その場合は
    この値に1を足せば文字同士が触れなくなります。
    Ruby/SDLは複数行描画を考慮していないため、行間をきちんと取るのは
    自分でしなければなりません。((<SDL::TTF#line_skip>)) も参考にしてください。


    このメソッドを使うには SDL_ttf が必要です。
--- SDL::TTF#ascent

    文字のascent(ベースラインからの上の部分の高さ)の最大値を返します。
    つまり文字の上端からベースラインまでの距離です。


    このメソッドを使うには SDL_ttf が必要です。
    * See Also
      
      ((<SDL::TTF#height>)), ((<SDL::TTF#descent>)), ((<SDL::TTF#line_skip>))

--- SDL::TTF#descent

    文字のdescent(ベースラインから下の部分の高さ)の最大値を返します。
    つまり文字の下端からベースラインまでの距離です。


    このメソッドを使うには SDL_ttf が必要です。
    * See Also
      
      ((<SDL::TTF#height>)), ((<SDL::TTF#ascent>)), ((<SDL::TTF#line_skip>))

--- SDL::TTF#line_skip

    そのフォントに一行あたり何ピクセルの高さを割当てるべきかを
    返します。複数行描画したい場合には ((<SDL::TTF#height>)) の値より
    こちらの値を使ったほうが良いかもしれません。
    この値は通常 ((<SDL::TTF#height>)) の値より大きいです。


    このメソッドを使うには SDL_ttf が必要です。
    * See Also
      
      ((<SDL::TTF#height>)), ((<SDL::TTF#ascent>)), ((<SDL::TTF#descent>))

--- SDL::TTF#faces

    フォントに含まれる利用可能なフェイス(「サブフォント」)の数を返します。
    通常この値は利用価値はないでしょう、というのはこの値は ((<SDL::TTF>)) の他の
    メソッドになんら影響を与えないからです。


    このメソッドを使うには SDL_ttf が必要です。
--- SDL::TTF#fixed_width?

    ((|self|)) が等幅であれば true を、なければ false を返す。
    等幅フォントはすべての文字が同じであり、文字列をレンダリングした結果
    のサーフェスの幅は単に「文字の幅 * 文字列の長さ」になります。


    このメソッドを使うには SDL_ttf が必要です。
    * See Also
      
      ((<SDL::TTF#faces>)), ((<SDL::TTF#family_name>))

--- SDL::TTF#family_name
--- SDL::TTF#familyName

    ((|self|)) の現在のフォントフェイスの名前を返します。
    名前情報が無い場合は nil を返します。


    このメソッドを使うには SDL_ttf が必要です。
    * See Also
      
      ((<SDL::TTF#faces>)), ((<SDL::TTF#fixed_width?>)), ((<SDL::TTF#style_name>))

--- SDL::TTF#style_name
--- SDL::TTF#styleName

    ((|self|)) の現在のフォントフェイスのスタイルの名前を返します。
    名前情報が無い場合は nil を返します。


    このメソッドを使うには SDL_ttf が必要です。
    * See Also
      
      ((<SDL::TTF#faces>)), ((<SDL::TTF#fixed_width?>)), ((<SDL::TTF#family_name>))

--- SDL::TTF#text_size(text)
--- SDL::TTF#textSize(text)

    ((|text|)) で与えられた文字列をレンダリングするのに必要な((<サーフェス|SDL::Surface>))
    のサイズを計算し、その幅、高さを返します。((|text|)) のエンコーディングは
    UTF8でなければなりません。
    実際には一切レンダリングされませんが、カーニングの影響を考慮した幅が
    得られます。
    高さは ((<SDL::TTF#height>)) と同じ値が得られます。

    失敗したときには例外((<SDL::Error>))を発生させます。


    このメソッドを使うには SDL_ttf が必要です。

    EXAMPLE
      w, h = font.size_text("Hello World!")
      puts "width=#{w} height=#{h}"

    * See Also
      
      ((<SDL::TTF#render_solid_utf8>)), ((<SDL::TTF#render_shaded_utf8>)), ((<SDL::TTF#render_blended_utf8>)), ((<SDL::TTF#draw_solid_utf8>)), ((<SDL::TTF#draw_shaded_utf8>)), ((<SDL::TTF#draw_blended_utf8>))

--- SDL::TTF#render_solid_utf8(text, r, g, b)
--- SDL::TTF#renderSolidUTF8(text, r, g, b)

    ((|text|)) で指定した文字列(エンコーディングはUTF8)を
    ((|r|)), [g], ((|b|)) で指定した色でレンダリングし、結果を
    ((<SDL::Surface>)) のインスタンスで返します。
    
    ((<SDL::TTF#render_shaded_utf8>)) や ((<SDL::TTF#render_blended_utf8>))
    より高速ですが見た目はこれらより良くありません。
    
    生成されるサーフェスは8bppのサーフェスで、指定した色
    および透明色の2色のみ使われます。
    透明色として 0 のピクセル値が、 文字の部分に 1 のピクセル値が
    使われ、パレットの1に指定した色の値が置かれます。
    そのため再レンダリングすることなしに文字の色を変えることができます。
    0 はカラーキーで、透明ですから、
    パレット 0 の色は当然他のサーフェスに((<転送|SDL.blit_surface>))しても
    描画されません。実はこの色は (255-((|r|)), 255-((|g|)), 255-((|b|)))
    です。
    これは ((<SDL::TTF#render_shaded_utf8>)) や ((<SDL::TTF#render_blended_utf8>))
    に比べて高速なレンダリングができますが、
    アンチエイリアシング等はかかっていません。
    また、このメソッドで作ったサーフェスは、
    ((<TTF#render_blended_utf8] で生成したサーフェスを @[転送|SDL.blit_surface>))
    するより高速に転送できます。
    とにかく高速な動作が必要な場合に使うとよいでしょう。


    このメソッドを使うには SDL_ttf が必要です。
    * See Also
      
      ((<SDL::TTF#render_shaded_utf8>)), ((<SDL::TTF#render_blended_utf8>)), ((<SDL::TTF#draw_solid_utf8>))

--- SDL::TTF#render_shaded_utf8(text,fg_r,fg_g,fg_b,bg_r,bg_g,bg_b)
--- SDL::TTF#renderShadedUTF8(text,fg_r,fg_g,fg_b,bg_r,bg_g,bg_b)

    ((|text|)) で指定した文字列(エンコーディングはUTF8)を
    ((|fg_r|)), [fg_g], ((|fg_b|)) で指定した色を文字の色、
    ((|bg_r|)), [bg_g], ((|bg_b|)) で指定した色を背景の色として
    レンダリングし、結果を
    ((<SDL::Surface>)) のインスタンスで返します。
    
    ((<SDL::TTF#render_solid_utf8>))よりレンダリングは低速ですが、
    見た目は ((<SDL::TTF#render_solid_utf8>)) より優れています。
    
    生成される((<サーフェス|SDL::Surface>))は8bppで、ピクセル値 0 が背景で、
    その他のピクセル値は背景色と前景色との中間の色を表現するため
    に使われます。文字にはアンチエイリアスがされています。
    レンダリングの速度は ((<SDL::TTF#render_solid_utf8>)) より低速で、
    ((<SDL::TTF#render_blended_utf8>)) と同じくらいです。
    また、このメソッドで作ったサーフェスは、
    ((<TTF#render_solid_utf8] で生成したサーフェスを@[転送|SDL.blit_surface>))
    するのと同じくらいの速度で転送できます。
    カラーキーによる抜きやアルファブレンドなどは仕組み上使えないので、
    高品質なレンダリングが必要で、背景が一色で問題ない場合に使ってください。


    このメソッドを使うには SDL_ttf が必要です。
    * See Also
      
      ((<SDL::TTF#render_solid_utf8>)), ((<SDL::TTF#render_blended_utf8>)), ((<SDL::TTF#draw_shaded_utf8>))

--- SDL::TTF#render_blended_utf8(text, r, g, b)
--- SDL::TTF#render_blended_utf8(text, r, g, b)

    ((|text|)) で指定した文字列(エンコーディングはUTF8)を
    ((|r|)), [g], ((|b|)) で指定した色でレンダリングし、結果を
    ((<SDL::Surface>)) のインスタンスで返します。
    
    ((<SDL::TTF#render_solid_utf8>))よりレンダリングは低速ですが、
    見た目は優れています。
    
    生成されるサーフェスは32bppARGBのもので、アルファを使いディザリング
    をし高品質な文字描画をします。背景はアルファ値が完全に透明な値なので、
    ((<SDL::TTF#render_shaded_utf8>)) のように文字のまわりに四角が描かれる
    ことはありません。文字にはアンチエイリアシングがされています。
    レンダリングに必要な時間は ((<SDL::TTF#render_solid_utf8>)) より長く、
    ((<SDL::TTF#render_shaded_utf8>)) と同じくらいです。
    また、生成したサーフェスを((< blit 転送|SDL.blit_surface>))するのには、
    ((<SDL::TTF#render_solid_utf8>)) や ((<SDL::TTF#render_shaded_utf8>)) で生成した
    サーフェスを転送するより時間がかかります。
    このメソッドは高品質なレンダリングが必要で、速度がそれほど必要と
    されない場合に利用してください。


    このメソッドを使うには SDL_ttf が必要です。
    * See Also
      
      ((<SDL::TTF#render_solid_utf8>)), ((<SDL::TTF#render_shaded_utf8>)), ((<SDL::TTF#draw_blended_utf8>))

--- SDL::TTF#draw_solid_utf8(dest, text, x, y, r, g, b)
--- SDL::TTF#drawSolidUTF8(dest, text, x, y, r, g, b)

    ((|text|)) で指定した文字列を ((|dest|)) で指定した((<サーフェス|SDL::Surface>))の
    (((|x|)), ((|y|))) を左上とした場所に(((|r|)), ((|g|)), ((|b|)))で指定した色で
    描画します。描画される文字の品質や速度などは ((<SDL::TTF#render_solid_utf8>))
    と同じ特性を持ちます。詳しくはそちらを見てください。


    このメソッドを使うには SDL_ttf が必要です。
    * See Also
      
      ((<SDL::TTF#draw_shaded_utf8>)), ((<SDL::TTF#draw_blended_utf8>)), ((<SDL::TTF#render_solid_utf8>))

--- SDL::TTF#draw_shaded_utf8(dest, text, x, y, fg_r, fg_g, fg_b, bg_r, bg_g, bg_b)
--- SDL::TTF#drawShadedUTF8(dest, text, x, y, fg_r, fg_g, fg_b, bg_r, bg_g, bg_b)

    ((|text|)) で指定した文字列を ((|dest|)) で指定した((<サーフェス|SDL::Surface>))の
    (((|x|)), ((|y|))) を左上とした場所に(((|fg_r|)), ((|fg_g|)), ((|fg_b|)))で指定した
    色で文字を、(((|bg_r|)), ((|bg_g|)), ((|bg_b|)))で指定した色を背景として
    描画します。描画される文字の品質や速度などは ((<SDL::TTF#render_shaded_utf8>))
    と同じ特性を持ちます。そのため(((|x|)), ((|y|)))を左上とし、
    ((<SDL::TTF#size_text>))(((|text|))) を幅、高さとする長方形が指定した背景色で
    塗りつぶされます。


    このメソッドを使うには SDL_ttf が必要です。
    * See Also
      
      ((<SDL::TTF#draw_solid_utf8>)), ((<SDL::TTF#draw_blended_utf8>)), ((<SDL::TTF#render_shaded_utf8>))

--- SDL::TTF#draw_blended_utf8(dest, text, x, y, r, g, b)
--- SDL::TTF#drawBlendedUTF8(dest, text, x, y, r, g, b)

    ((|text|)) で指定した文字列を ((|dest|)) で指定した((<サーフェス|SDL::Surface>))の
    (((|x|)), ((|y|))) を左上とした場所に(((|r|)), ((|g|)), ((|b|)))で指定した色で
    描画します。描画される文字の品質や速度などは ((<SDL::TTF#render_blended_utf8>))
    と同じ特性を持ちます。詳しくはそちらを見てください。


    このメソッドを使うには SDL_ttf が必要です。
    * See Also
      
      ((<SDL::TTF#draw_solid_utf8>)), ((<SDL::TTF#draw_shaded_utf8>)), ((<SDL::TTF#render_blended_utf8>))

--- SDL::TTF#render_solid(text, r, g, b)
--- SDL::TTF#renderSolid(text, r, g, b)

    ((|text|))がUTF8でなくても良いこと以外、
    ((<SDL::TTF#render_solid_utf8>))と同じです。
    ((|text|))のエンコードは適切に変換されます。
    
    このメソッドはRuby 1.9でRuby/SDLのm17n機能を有効にしている
    場合にのみ利用できます。


    このメソッドを使うには SDL_ttf が必要です。
--- SDL::TTF#render_shaded(text, r, g, b)
--- SDL::TTF#renderShaded(text, r, g, b)

    ((|text|))がUTF8でなくても良いこと以外、
    ((<SDL::TTF#render_shaded_utf8>))と同じです。
    ((|text|))のエンコードは適切に変換されます。
    
    このメソッドはRuby 1.9でRuby/SDLのm17n機能を有効にしている
    場合にのみ利用できます。


    このメソッドを使うには SDL_ttf が必要です。
--- SDL::TTF#render_blended(text, r, g, b)
--- SDL::TTF#renderBlended(text, r, g, b)

    ((|text|))がUTF8でなくても良いこと以外、
    ((<SDL::TTF#render_blended_utf8>))と同じです。
    ((|text|))のエンコードは適切に変換されます。
    
    このメソッドはRuby 1.9でRuby/SDLのm17n機能を有効にしている
    場合にのみ利用できます。


    このメソッドを使うには SDL_ttf が必要です。
--- SDL::TTF#draw_solid(dest, text, r, g, b)
--- SDL::TTF#drawSolid(dest, text, r, g, b)

    ((|text|))がUTF8でなくても良いこと以外、
    ((<SDL::TTF#draw_solid_utf8>))と同じです。
    ((|text|))のエンコードは適切に変換されます。
    
    このメソッドはRuby 1.9でRuby/SDLのm17n機能を有効にしている
    場合にのみ利用できます。


    このメソッドを使うには SDL_ttf が必要です。
--- SDL::TTF#draw_shaded(dest, text, r, g, b)
--- SDL::TTF#drawShaded(dest, text, r, g, b)

    ((|text|))がUTF8でなくても良いこと以外、
    ((<SDL::TTF#draw_shaded_utf8>))と同じです。
    ((|text|))のエンコードは適切に変換されます。
    
    このメソッドはRuby 1.9でRuby/SDLのm17n機能を有効にしている
    場合にのみ利用できます。


    このメソッドを使うには SDL_ttf が必要です。
--- SDL::TTF#draw_blended(dest, text, r, g, b)
--- SDL::TTF#drawBlended(dest, text, r, g, b)

    ((|text|))がUTF8でなくても良いこと以外、
    ((<SDL::TTF#draw_blended_utf8>))と同じです。
    ((|text|))のエンコードは適切に変換されます。
    
    このメソッドはRuby 1.9でRuby/SDLのm17n機能を有効にしている
    場合にのみ利用できます。


    このメソッドを使うには SDL_ttf が必要です。
--- SDL::BMFont.open(filename, flags)

    ((|filename|)) で指定したフォントをロードし、そのフォントを表わす
    オブジェクトを ((<SDL::BMFont>)) のインスタンスとして返します。
    
    ((|flags|)) としては以下の値を与えることができます。
    :SDL::BMFont::TRANSPARENT
      ((<SDL::Surface#set_color_key>)) で適当な透過色を与える(常に使うべき)。
    :SDL::BMFont::NOCONVERT
      読み込んだフォント画像に対し ((<SDL::Surface#display_format>)) を呼ばない。
    :SDL::BMFont::SFONT
      読み込んだフォント画像を SFont フォーマットと仮定する。
      これを与えない場合は独自形式と仮定する。
    :SDL::BMFont::PALETTE
      読みこんだサーフェスを 8bppパレット付きサーフェスに変換する。
      これは SFont 形式のフォントに対しては使えません。
      これをすると描画が少し遅くなりますが ((<SDL::BMFont#set_color>)) は速くなります。


    このメソッドを使うには SGE が必要です。
--- SDL::BMFont#close

    ビットマップフォントを閉じ、確保しているリソースを解放します。


    このメソッドを使うには SGE が必要です。
    * See Also
      
      ((<SDL::BMFont.open>)), ((<SDL::BMFont#closed?>))

--- SDL::BMFont#closed?

    ビットマップフォントが((<SDL::BMFont#close>))によって閉じられたか
    どうかを返します。


    このメソッドを使うには SGE が必要です。
    * See Also
      
      ((<SDL::BMFont#close>))

--- SDL::BMFont#set_color(r, g, b)
--- SDL::BMFont#setColor(r, g, b)

    フォントの色を (((|r|)), ((|g|)), ((|b|))) に変更します。多色フォントおよび
    SFontに対しては利用できません。このメソッドを何度も呼ぶのであれば
    ((<SDL::BMFont.open>)) で ((<SDL::BMFont::PALETTE>)) を与えておくと良いでしょう。


    このメソッドを使うには SGE が必要です。
--- SDL::BMFont#height

    フォントの高さを返します。


    このメソッドを使うには SGE が必要です。
    * See Also
      
      ((<SDL::BMFont#width>))

--- SDL::BMFont#width

    文字一つ分の幅を返します。SFont に対しては使えません。


    このメソッドを使うには SGE が必要です。
    * See Also
      
      ((<SDL::BMFont#height>))

--- SDL::BMFont#text_size(string)
--- SDL::BMFont#textSize(string)

    ((|self|)) で表わされるフォントで ((|string|)) を描画するのに必要な
    サーフェスの大きさを [幅, 高さ] という配列で返します。
    長さの単位はピクセル数です。


    このメソッドを使うには SGE が必要です。
    * See Also
      
      ((<SDL::BMFont#textout>))

--- SDL::BMFont#textout(surface, string, x, y)

    ((|string|)) を ((|surface|)) の (((|x|)), ((|y|))) に描画します。


    このメソッドを使うには SGE が必要です。
    * See Also
      
      ((<SDL::BMFont#text_size>))

--- SDL::Kanji.open(filename, size)

    ((|filename|)) で指定した bdf ファイルを読みこみ、((<SDL::Kanji>)) のインスタンス
    を返します。((|size|)) で文字のサイズを指定します。この値は
    文字の高さに相当します。またいわゆる半角文字2文字分の幅にもなります。

    * See Also
      
      ((<SDL::Kanji#add>))

--- SDL::Kanji#close

    読みこんだフォントを閉じ、それが占めていた
    メモリを解放します。

    * See Also
      
      ((<SDL::Kanji.open>)), ((<SDL::Kanji#closed?>))

--- SDL::Kanji#closed?

    ((<SDL::Kanji#close>))でフォントを閉じたかどうかを返します。

    * See Also
      
      ((<SDL::Kanji#close>))

--- SDL::Kanji#add(filename)

    ((|filename|)) で指定した bdf ファイルを読みこみ、((|self|)) に無かった文字を
    新しいフォントで補完します。これを使って英語と日本語を別のフォント
    から読みこむ、といったことができます。

    * See Also
      
      ((<SDL::Kanji.open>))

--- SDL::Kanji#set_coding_system(sys)
--- SDL::Kanji#setCodingSystem(sys)

    文字コードを指定します。 ((|sys|)) として以下のいずれかを指定できます。
    * SDL::Kanji::SJIS
    * SDL::Kanji::EUC
    * SDL::Kanji::JIS
    デフォルトでは SDL::Kanji::JIS が指定されています。

--- SDL::Kanji#get_coding_system
--- SDL::Kanji#getCodingSystem

    既定の文字コード返します。 返り値は以下のいずれかです。
    
    * SDL::Kanji::SJIS
    * SDL::Kanji::EUC
    * SDL::Kanji::JIS
    デフォルトでは SDL::Kanji::JIS が指定されています。

--- SDL::Kanji#height

    フォントの高さをピクセル数で返します。これはいわゆる全角文字の幅であり、
    いわゆる半角文字の幅の2倍の値です。

--- SDL::Kanji#textwidth(text)

    ((|text|)) で指定した文字列を描画するのに必要な幅をピクセル数で返します。

    * See Also
      
      ((<SDL::Kanji#width>))

--- SDL::Kanji#width

    半角文字1文字の幅をピクセル数で得ます。

    * See Also
      
      ((<SDL::Kanji#textwidth>))

--- SDL::Kanji#put(surface, text, x, y, r, g, b)

    ((|text|)) で指定した文字列を ((|surface|)) の (((|x|)), ((|y|))) に (((|r|)), ((|g|)), ((|b|)))
    で指定した色で描画します。

    * NOTES

      Ruby 1.9ではRuby/SDLのm17n機能を有効にしている限り
      必要に応じてエンコーディングの自動変換を行います。

    * See Also
      
      ((<SDL::Kanji#put_tate>))

--- SDL::Kanji#put_tate(surface, x, y, r, g, b)
--- SDL::Kanji#putTate(surface, x, y, r, g, b)

    ((|text|)) で指定した文字列を ((|surface|)) の (((|x|)), ((|y|))) に (((|r|)), ((|g|)), ((|b|)))
    で指定した色で縦書きで描画します。
    
    ASCII文字は縦書きにできません。

    * NOTES

      Ruby 1.9ではRuby/SDLのm17n機能を有効にしている限り
      必要に応じてエンコーディングの自動変換を行います。

    * See Also
      
      ((<SDL::Kanji#put>))

