D言語 Part15at TECH
D言語 Part15 - 暇つぶし2ch521:502
07/11/01 07:05:47
DirectX10ヘッダーファイルをDにポーティングしていれば、一番みんなが使いやすいんだろうと思うんだけど
C++でまずDirectX10をラップしてそれをDで使用するようにしました。
DirectX10.1とかでるし、dxgi.h、d3d10.h、d3dx10.hがころころ変わると思ったので。
以下スレチにならない程度にさわりを・・・
/* C++ */
class Device {
public:
 _cptr<ID3D10Device> _cp; // _cpt<T>rはCOMをあつかうスマートポインタ
};
class Swapchain {
public:
 uint32 _width, _height;
 _cptr<IDXGISwapChain> _cp;
 int init( Device &dev, const DXGI_SWAP_CHAIN_DESC &ds);
};
class Buffer {
public:
 _cptr<ID3D10Buffer> _cp;
};
とこんな風にまんま包み込んで、
Dに以下の様な関数をエキスポート
Device * dx10g0_Device_new();
void dx10_Device_delete(Device *pthis);
int dx10_Device_init(Device *pthis, void *pdevicesettings);
int dx10_Device_DrawPrimitive(Device *pthis, uint type, uint n);
int dx10_Device_DrawIndexedPrimitive(Device *pthis, uint type, uint indexcount);
中の関数はDirectX10APIより少々便利めにつくるようにしてます。
こうすることのメリットは、上でいったヘッダーファイルがかわっても(少しは)大丈夫なこと、
DirectX9に同様のものをつくることで、D側からはDirectX10、DirectX9が同じように扱えること。
Shader4.0をつかってしまったら、意味がないかもだけど・・・


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch