Other Types, Functions

 

定数, グローバル変数

DGFMT_*

//なんでもいい、αナシ
DGFMT_RGB:Array[0..3] of D3DFORMAT = (D3DFMT_X8R8G8B8, D3DFMT_R8G8B8, D3DFMT_R5G6B5, D3DFMT_X1R5G5B5);
//なんどもいいのでα付き
DGFMT_ARGB:Array[0..2] of D3DFORMAT = (D3DFMT_A8R8G8B8, D3DFMT_A4R4G4B4, D3DFMT_A1R5G5B5);
//16ビットので、αナシ
DGFMT_HighColor:Array[0..1] of D3DFORMAT = (D3DFMT_R5G6B5, D3DFMT_X1R5G5B5);
//16ビットので、αアリ
DGFMT_HighColorA:Array[0..1] of D3DFORMAT = (D3DFMT_A4R4G4B4, D3DFMT_A1R5G5B5);
//なんでもいいからTrueColor、αはいらん
DGFMT_TrueColor:Array[0..1] of D3DFORMAT = (D3DFMT_X8R8G8B8, D3DFMT_R8G8B8);


/////バンプマップのフォーマット
//単なるバンプ、ルミナンス付きでもいいや
DGFMT_Bump:Array[0..2] of D3DFORMAT  =  (D3DFMT_V8U8, D3DFMT_X8L8V8U8, D3DFMT_L6V5U5);
//ルナミンス付きバンプ
DGFMT_BumpL:Array[0..1] of D3DFORMAT  = (D3DFMT_X8L8V8U8, D3DFMT_L6V5U5);

 TDGTexture.Createメソッドに渡す、テクスチャのフォーマットを第一希望から順に並べたものです。

 

DGFMT_Z*

/////デプスステンシルバッファフォーマット
//なんでもいいから安上がりの
DGFMT_ZCheap:Array[0..2] of D3DFORMAT = (D3DFMT_D16, D3DFMT_D16_LOCKABLE, D3DFMT_D32);
//できれば32
DGFMT_ZDetail:Array[0..3] of D3DFORMAT  = (D3DFMT_D32, D3DFMT_D24X8, D3DFMT_D16_LOCKABLE, D3DFMT_D16);
//ステンシル欲しい
DGFMT_ZStencil:Array[0..2] of D3DFORMAT  = (D3DFMT_D24S8, D3DFMT_D24X4S4, D3DFMT_D15S1);

 TDGCarad.WidoeMode, TDGCarad.FullscreenModeメソッドに渡す、デプスステンシルバッファのフォーマットを第一希望から順に並べたものです。

 

DGCarad_debugIndent

DGCarad_debugIndent:Integer = 0;

 デバッグメッセージを出力する際の、インデントの深さを指定します。0でインデント無し、1以上にすると、2 * DGCarad_debugIndent個のスペースがメッセージ本文の前に入れられます。

 

ヘルパー関数

DGCarad_PutDebugMessage

procedure DGCarad_PutDebugMessage(mes:String);

 デバッグログに mes で示される文字列を出力します。

 デバッグログは、アプリケーションと同じディレクトリに、「DGCarad_debugLog.txt」というファイル名で保存されます。

 

D3DFORMATToString

function D3DFORMATToString(fmt:D3DFORMAT):String;

 フォーマットを文字列に変換します。例えば、fmtにD3DFMT_A8R8G8 が指定されると、返り値は 'A8R8G8' になります。

 

IsARGBFormat

function IsARGBFormat(fmt:D3DFORMAT):Boolean; //色情報を含むテクスチャフォーマットかどうか判断

 fmtが色情報を格納するためのフォーマットならTrueを、そうでなければFalseを返します。

 例えば、fmtがD3DFMT_A8R8G8B8やD3DFMT_X1R5G5B5などならばTrueを返します。 D3DFMT_Z16など、デプスステンシルバッファ用のフォーマットや、D3DFMT_U8V8など、バンプマップ用のフォーマットならFalseを返します。

 

GetPixelBits

function GetPixelBits(fmt:D3DFORMAT):UINT;

  fmtで示されるフォーマットを持ったテクスチャの1ピクセルは、何ビットのメモリを食うかを返します

 

D3DColorToPhysical
ARGBToPhysical
PhysicalToARGB

function D3DColorToPhysical(col:D3DCOLOR; fmt:D3DFORMAT):DWord;
function ARGBToPhysical(a,r,g,b:DWord; fmt:D3DFORMAT):DWord;
function PhysicalToARGB(pcol:DWord; fmt:D3DFORMAT):D3DCOLOR;

 fmtで指定されるフォーマットを持つテクスチャでの色表現(物理カラー)と、ARGB値やD3DCOLORによる色表現を相互に変換します。

 

LoadBMPStreamToTexture

procedure LoadBMPStreamToTexture(texture:IDirect3DTexture9; source:TStream);

 textureで示されるIDirect3DTexture9オブジェクト(TDGTexture.Textureなど)に対して、sourceで示されるBMPを格納したストリームから、画像を読み込みます

 

LoadBMPStreamToLockedRect

procedure LoadBMPStreamToLockedRect(LockedRect:D3DLOCKED_RECT; lockedRegion:TRect;
 ddsd:D3DSURFACE_DESC; source:TStream);

 ロックされたテクスチャに対して、BMP画像を読み込みます。

 LockedRectTDGCarad.LockRectや、IDirect3DTexture9.Lockで返されるロック情報を、lockedRegionには、ロックされた範囲を示す座標値を指定してください。

 また、ddsdは読み込み先のロック範囲を持つテクスチャのサーフェス情報(TDGCarad.Texture.GetLevelDescで取得できます)を指定してください。

 sourceで示されるBMPを格納したストリームから画像を読み込みます。