通知
すべてクリア
Topic starter
2009年9月16日 8:32 PM
はじめまして。
DirectXを使ったプログラムを行っています。
よくDirectXで画像を描画したりするのですが、
ビットマップハンドル(HBitmap,CBitmap)のハンドルから
DirectX側のテクスチャに変換する方法って何かご存知ですか?
通常だと、1度画像を取り込めばいい話なので、
ファイルから読み込んだりするのですが、
今回、何度も読込を行わせたいのです。(ライブ画像のように)
何かご存じの方おりましたら、
メッセージ頂けたら幸いです。
2009年9月21日 8:47 PM
D3D9で軽く調べた感じでは、IDirect3DTexture9はDCが取得できず、変わりにIDirect3DSurface9は
DCが取得できるようなので、IDirect3DTexture9のGetSurfaceLevelメソッドで、
IDirect3DSurface9としてのptrを取得し、IDirect3DSurface9のGetDCメソッドでDCを取得して
Win32APIのBitBltで画素の転送を行う感じで実現できないでしょうか。
と書きつつ実際には試していないので、ご参考まで。
Topic starter
2009年9月24日 2:55 PM
きのこ さん
お返事有難うございます。
以下の方法で出来ました!
1)空のテクスチャを作成
2)テクスチャ->GetSurfaceLevelメソッドでサーフェイスを取得
3)サーフェイス->GetDCメソッドでDCを取得
4)取得したDCへと画像をコピー
非常に悩んでいたので、助かりました。
(気にしていた処理時間もBitBlt以外はほぼ0msecに近かったです。)
有難うございました。