class CD3DKanjiFont

【概要】
 Direct3D の 3D シーンに描画可能な texture を使用した漢字フォント。
 全ての文字をテクスチャ化するのは非現実的なので、最大196文字分のみ、
 テクスチャに置き、フォントキャッシュとして使用している。

重要度メソッド名と解説アクセス
CD3DKanjiFont( CD3DEnv *pEnv, TCHAR* strFontName, DWORD dwHeight, DWORD dwFlags)
コンストラクタ
public
~CD3DKanjiFont()
デストラクタ
public
virtual HRESULT DrawText( FLOAT x, FLOAT y, DWORD dwColor, TCHAR* strText, DWORD dwFlags)
テキストをそのままのサイズで描画する。
public
virtual HRESULT DrawTextScaled( FLOAT x, FLOAT y, FLOAT fXScale, FLOAT fYScale, DWORD dwColor, TCHAR* strText )
テキストを指定された倍率でスケーリングして表示する。
public
virtual HRESULT DrawTextClipped( LPRECT clipRect, FLOAT x, FLOAT y, DWORD dwColor, TCHAR* strText, DWORD dwFlags=0L )
テキストをそのままのサイズで描画する。描画可能な範囲を clipRect で指定すると。描画がクリッピングされる。
public
virtual HRESULT DrawTextClippedScaled( LPRECT clipRect, FLOAT x, FLOAT y, FLOAT fXScale, FLOAT fYScale, DWORD dwColor, TCHAR* strText, DWORD dwFlags=0L )
テキストを指定された倍率でスケーリングして表示する。描画可能な範囲を clipRect で指定すると。描画がクリッピングされる。
public
virtual HRESULT GetTextExtent( TCHAR* strText, SIZE* pSize )
テキストを、DrawText で描画した場合の画面上でのサイズを返す。ただしあまり正確では無い。
public

※重要度の意味:

◎これを知らないとこのライブラリを使えないレベル。
○知っておいたほうが良いレベル。
△知らなくても支障は無いレベル。


CD3DKanjiFont( CD3DEnv *pEnv, TCHAR* strFontName, DWORD dwHeight, DWORD dwFlags)

引数:pEnv:フォントを使用する描画環境。
strFontName:フォントの名称。
dwHeight:フォントサイズ(高さをポイント数で)。
dwFlags: フォント生成時に指定するフラグ。

コンストラクタ。クラスのメンバ変数の初期化は行うがテクスチャ等の初期化はしない 為、ReloadGraphics() などで、描画環境に対して明示的にテクスチャ等の生成を指示する必要がある。

フラグ解説
D3DFONT_SIZE_IN_PIXELSフォントのサイズをピクセルで指定。
D3DFONT_BOLDBOLDフォントを生成する。
表:dwFlagsに指定できるフラグ。


使用例
    pD3DEnv = new CD3DEnv();
    if (SUCCEEDED(pD3DEnv->InitD3D(hWnd))){
        pKanjiFont = new CD3DKanjiFont(pD3DEnv,_T("MS 明朝"),16,D3DFONT_SIZE_IN_PIXELS);
        pD3DEnv->ReloadGraphics();
    }


~CD3DKanjiFont()

デストラクタ。


virtual HRESULT DrawText( FLOAT x, FLOAT y, DWORD dwColor, TCHAR* strText)

引数:x:文字の描画を開始するX座標(左端)。
y:文字の描画を開始するY座標(上端)。
dwColor:フォントを描画するカラーを指定。
strText:描画する文字列(C言語形式)。

返値:成功ならS_OK 失敗した場合は失敗原因を返す DWORD 値。

描画環境に対して、文字列を描画する。


virtual HRESULT
DrawTextScaled( FLOAT x, FLOAT y, FLOAT fXScale, FLOAT fYScale, DWORD dwColor, TCHAR* str )

引数:x:文字の描画を開始するX座標(左端)。
y:文字の描画を開始するY座標(上端)。
fXScale:横方向の倍率。1.0f でフォントサイズのまま描画。
fYScale:縦方向の倍率。1.0f でフォントサイズのまま描画。
dwColor:フォントを描画するカラーを指定。
str:描画する文字列(C言語形式)。

返値:成功ならS_OK 失敗した場合は失敗原因を返す DWORD 値。

引数に指定された値でスケーリングを行い、描画環境に対して、文字列を描画する。


virtual HRESULT DrawTextClipped( LPRECT clipRect, FLOAT x, FLOAT y, DWORD dwColor, TCHAR* strText)

引数:clipRect:描画をクリッピングする矩形へのポインタ。
x:文字の描画を開始するX座標(左端)。
y:文字の描画を開始するY座標(上端)。
dwColor:フォントを描画するカラーを指定。
strText:描画する文字列(C言語形式)。

返値:成功ならS_OK 失敗した場合は失敗原因を返す DWORD 値。

描画環境に対して、文字列を描画する。描画は指定された矩形でクリッピングされる。


virtual HRESULT
DrawTextClippedScaled( LPRECT clipRect, FLOAT x, FLOAT y, FLOAT fXScale, FLOAT fYScale, DWORD dwColor, TCHAR* str )

引数:clipRect:描画をクリッピングする矩形へのポインタ。
x:文字の描画を開始するX座標(左端)。
y:文字の描画を開始するY座標(上端)。
fXScale:横方向の倍率。1.0f でフォントサイズのまま描画。
fYScale:縦方向の倍率。1.0f でフォントサイズのまま描画。
dwColor:フォントを描画するカラーを指定。
str:描画する文字列(C言語形式)。

返値:成功ならS_OK 失敗した場合は失敗原因を返す DWORD 値。

引数に指定された値でスケーリングを行い、描画環境に対して、文字列を描画する。


virtual HRESULT GetTextExtent( TCHAR* strText, SIZE* pSize )

引数:strText:描画する文字列(C言語形式)。
pSize:SIZE構造体へのポインタ、文字列のサイズを返す為に使用する。

返値:成功ならS_OK 失敗した場合は失敗原因を返す DWORD 値。

このフォントで文字列を描画した場合のサイズをピクセル単位で返す。
ただし、若干の誤差があり、目安程度に使用するのが良い。


D3DQuickLib のTOPページへ。