注目キーワード
  1. Web
  2. GUI
  3. DirectX

DirectX11 | 16. 文字の描画

今回は、字体を描画してみます。

プロジェクトの作成

前回同様にプロジェクトを新しく作成します。

プロジェクト名は、” 0016_Font “としておきましょう。

プロジェクトの設定

DirectXSDKのパスを通すために、毎回プロジェクトの設定をいちいちしなければなりません。

前の記事「4. 三角形」と同じように「インクルードディレクトリパス」と「ライブラリディレクトリパス」の設定をしてください。

やり方は前と同じです。

ソースコード

以下がソースです。これも前回同様、流れが分かりやすいようにmain.cppだけでまとめました。

長いコードになっていますが、記事として読みやすいように一つのファイルにまとめることは一貫しておこうと思います。

以下のソースをコピペするか、ダウンロードしてVisual Studio の「ソースファイル」に保存してください。

コピペするなら、
「ソースファイル」で右クリックして
「追加」→「新しい項目」で、「C++ ファイル」を選び、名前を” main.cpp “にして追加ボタンを押して作成してください。

ダウンロードなら、
同じく「ソースファイル」で右クリックして
「追加」→「既存の項目」で、main.cppを選択して追加してください。

予めフォントテキストクラスを作り、次のプロジェクトの文字列を描画するための準備を行いました。

文字列として一気に描画できないため、一つ一つの文字をフォントビットマップとして、「GetGlyphOutlineW」で取得してテクスチャとして描画することになります。

テストとして、Shift-JIS漢字の中で最も画数が多い漢字「驫」を描画してみました。

馬が三つある漢字です。

一番難しい漢字であるビャンビャン麺の漢字を描画してみたいと思っていましたが、PCでは表示できないもののため諦めました(悲)

それと、字体の描画にはアルファブレンドが必要なのでお忘れなく。


次に、シェーダ本文です。

これは「ソース ファイル」から「追加」→「新しい項目」で、

「Visual C++」→「HLSL」の中で.hlslなら何でもいいのですが(Visual Studio側が勝手にテンプレートを作るだけなので)、

ここでは「ジオメトリ シェーダー ファイル (.hlsl)」を選んで、

名前を” shaders.hlsl “にして追加ボタンを押してください。

すると、「ソース ファイル」中にshaders.hlslが作れますので、

中にあるコードを全て以下のコードでコピペして上書きするか、

ダウンロードして「既存の項目」で追加しましょう。

このシェーダ本文は、「DirectX11 | 8. 左上座標の2D描画」のものと同じです。

今回も引き続き、前回と同じようにプロパティで「カスタムビルドツール」に設定しましょう。

以上で作成は完了です!!

以下のようになっていればOK。

ツールバーの「デバッグ」から「デバッグの開始(F5)」で実行できます。

ビルドするときは、「0016_Font」を右クリックして「スタートアップ プロジェクトに設定」を押してプロジェクトターゲットを変更してからするようにしてください。

テクスチャを左上のピクセル座標で字体を表示できれば終わりです。

フォントテクスチャのサイズは横350px×縦350pxです。

お疲れさまでした。

最新情報をチェックしよう!