/*!
  \page draw_text_page 文字列の描画

  \image html drawText_image.png

  \n
  SDL_ttf で SDL 用のサーフェスを作成し、それを OpenGL 用のテクスチャーに変換してから描画します。

  \section draw_text_ttf_section SDL_ttf の利用

  SDL_ttf を用いることで、指定したフォントの文字サーフェスを作ることができます。SDL_ttf を利用した文字列描画の流れは、以下のようになります。

  - SDL_ttf の初期化
  - フォントファイルの読み出し
  - 文字列の SDL_Surface を作成
  - OpenGL のテクスチャーに変換
  - 描画

  これらは \ref draw_texture_page で解説した内容において SDL_Surface を作るのに SDL_LoadBMP() でなく SDL_ttf の関数を用いること以外は、基本的に同じです。

  \subsection draw_text_ttf_fonts フォントファイルの管理

  SDL_ttf では TTF_OpenFont(const char *file, int ptsize) のようにフォント資源をフォントと、そのフォントサイズで指定します。以下では、フォント資源を boost::shared_ptr 管理するクラスを作成してみましょう。

  作成するクラスの簡単な仕様としては、

  - コンストラクタで、フォントファイルとフォントサイズを受け取る
  - 指定されたフォント資源が、既に作成済みであれば、作成済みの資源を返す
  - 指定されたフォント資源が、作成されていなければ TTF_OpenFont() で作成する

  となります。\n
  コンストラクタは、以下のように定義し、背景の色や透過情報は Font に格納されているとします。

  \code
Font(const char* font_file, size_t font_size = DefaultSize); \endcode

  \n
  <a href="http://svn.sourceforge.jp/view/trunk/libs/gui/Font.h?view=co&root=qrobosdk">Font.h</a> \n
  <a href="http://svn.sourceforge.jp/view/trunk/libs/gui/Font.cpp?view=co&root=qrobosdk">Font.cpp</a> \n
  \include Font.cpp

  少し長いですが、処理自体は TTF_Font リソースを管理しているだけです。\n
  TTF_Font を boost::shared_ptr で管理し boost::weak_ptr を使ってそのフォント資源が有効であるかどうか、を判定しています。

  ここまでに説明した内容で、"こんにちはー" と表示するサンプルは、以下のようになります。

  \n
  <a href="http://svn.sourceforge.jp/view/trunk/libs/gui/samples/drawText.cpp?view=co&root=qrobosdk">drawText.cpp</a> \n
  \include drawText.cpp

  実行結果

  \image html drawText_image.png M+ FONTS フォントを使用

  簡単ですね。\n
  実行においては 日本語フォントの含まれる TrueType ファイルが必要なのと、ソースコードのエンコードが UTF-8 以外だと動作しない点にご注意下さい。

  このサンプルを実行するためのソースコードは、以下リポジトリから取得できます。\n
  svn checkout http://svn.sourceforge.jp/svnroot/qrobosdk/trunk/libs

  \n
  \section draw_text_comment_section コメントページ

  - http://sourceforge.jp/forum/forum.php?forum_id=18515

  \n
  \section draw_text_reference_section 参考

  - Web ページ <a href="http://mplus-fonts.sourceforge.jp">「M+ FONTS]</a>

  \n
*/
