TSXTextWriterオブジェクトは、TDGTextureオブジェクトに対して文字列を書き込んだり、文字列を書き込んだTDGTextureオブジェクトを生成します。
TSXTextwriterの原理についてですが、
としています。つまり、以下の点を留意してTSXTextwriterによって文字列を描きいれるテクスチャを運用しなければなりません。
| フォント | Font |
| アンチエイリアシング | AntiAliasing |
| コンストラクタ | Create |
| デストラクタ | Destroy |
| 描画 | Write |
| CreateStringTexture | |
| 情報 | TextWidth |
| TextHeight |
AntiAliasing : Boolean;
Trueを指定すると、以降の文字の描画について、文字のアンチエイリアシング(文字の輪郭に出るギザギザの除去)を行います。
デフォルトではTrueです。
実行時に値を書き換えると、TSXTextwriterオブジェクトが内部で管理しているフォントキャッシュの内容が消去されるため、頻繁に変更するとパフォーマンスに悪影響を及ぼすので注意してください。
Font : TFont;
文字列を書き入れるのに用いるフォントを示します。
constructor Create(ADG:TDGCarad; format; format:D3DFORMAT; cacheSize:Integer = 16);
TSXTextWriterオブジェクトを生成します。
ADGには、使用するTDGCaradコンポーネントを指定します。
formatには、文字列を書き込む対象となるテクスチャのピクセルフォーマットを指定します。
cacheSizeには、文字列キャッシュのサイズを指定します。最大で256 * cacheSize個の文字がキャッシュされます。
destructor Destroy;
TSXTextWriterオブジェクトを解放します。
procedure Write(x,y:Integer; str:String; Target:TDGTexture);
Targetで示されるテクスチャ上のx , y で示される位置を左上隅に取って、文字列strを書き入れます。
Font.Colorプロパティは文字列を書き入れる際に無視され、常にRGB値は白(255,255,255)でα値に不透明度のみが書き込まれます。
function CreateStringTexture(str:String; fmt:Array of D3DFORMAT; debugStr:String = ''):TDGTexture;
文字列strを書き入れたテクスチャを生成して、返り値に設定します。
fmtはテクスチャのフォーマットを第一希望から並べたものです。必ずαチャンネルの付いたテクスチャを作れるようにしてください。
debugStrには、デバッグログに出力される、テクスチャの識別名を指定します。アプリケーションの実行自体には直接影響を与えません。
function TextWidth(str:String):Integer function TextHeight(str:String):Integer
文字列strがテクスチャ上でどれだけの幅、高さを占めるかを返します。