[HOME]
ここからダウンロード(27KB)できます.

Delphi2.0用のDirect3D(DirectX2,X3)ヘッダーファイル

DirectDraw, Direct3DIM, Direct3DRMの部分に関して Microsoft DirectX3 のヘッダーファイルから新たにDelphi用に書き換えました.

DirectX5またはDirectX6から追加された機能には対応していません.このソースを使用したプログラムを DirectX5またはDirectX6のランタイムライブラリで動作させることはできます.

以下のファイルが含まれています.(DX3D3D04.LZH)
. readme.txt
DirectDraw ddraw.pas
Direct3D IM d3dtypes.pas, d3dcaps.pas, d3d.pas
Direct3D RM d3drmwin.pas, d3drmdef.pas, d3drm.pas, d3drmobj.pas

基本的に以下の方針に基づいて変換しました.

  1. 列挙型をすべてDWORDと宣言,要素は定数に変換.
  2. ポインタ渡しの引数は基本的に参照渡し(var)に変更.この時,引数の変数名は対応する型に合わせた.
  3. オリジナルのヘッダー中の引数が型名のみの部分はドキュメントで使用されてる名前を使用した.
  4. コメントは主として変数名以上の情報が含まれていない場合が多いことと,コードの見通しが悪くなるため削除. 日本語で記述する根性が無かった.
LHA E DX3D3D04.LZH として解凍してください。

これはDirectX2,X3のヘッダーユニットソースのみです。 実行するためには本 ソースを使用してプログラムを作成する必要があります。

作成したプログラムを実行するためにはDirectX2またはDirectX3, DirectX5 のランタイムがインストールされていることが必要です

本ユニットを使用される場合はSDKのドキュメントか書籍(例えば DirextX2 開発マニュアル)と本ユニット中の宣言を比較しながら使用されることをお勧め します.また作業の都合上,宣言の順序は大きく異なっています. Delphiの浮動小数点ユニットの使い方によると思われる問題が出る個所があり ます. 以下の関数を使用する場合は

  IDirect3DRMViewport.Render(...);
  IDirect3DDevice.Execute(...);
関数を呼出す直前に
    asm finit end; 

の1行を挿入すると改善されます.

(注意)
DDraw,D3DIM,D3DRMに関してはサンプルを作成して部分的に動作確認 を行いましたが,すべてを網羅してチェックしておりません.実行する 環境(ビデオカード,ドライバ)によっても動作が異なる場合があるよ うです.私の環境はPentium133, MELCO WGP-VG4(S3 ViRGE) + DirectX5 付属S3汎用ドライバ(またはMELCO WGP-VG専用ドライバ)です.

本ソースのすべて,または一部分の配布,使用,使用したプログラムの公開, 販売,改変は自由にして頂いてかまいませんが,改変したソースを公開され る場合は,改変した旨をソース内に記述してください. バグ報告は歓迎いたします.また今後変更される可能性があることにご留意くだ さい.


ご意見・ご感想は,mizutani.jun@nifty.ne.jp まで.