ビットマップハンドルをDirectXで描画 – プログラミング – Home

ビットマップハンドルをDirectXで...
 
通知
すべてクリア

[解決済] ビットマップハンドルをDirectXで描画


ダイ
 ダイ
(@ダイ)
ゲスト
結合: 22年前
投稿: 16
Topic starter  

はじめまして。

DirectXを使ったプログラムを行っています。

よくDirectXで画像を描画したりするのですが、
ビットマップハンドル(HBitmap,CBitmap)のハンドルから
DirectX側のテクスチャに変換する方法って何かご存知ですか?

通常だと、1度画像を取り込めばいい話なので、
ファイルから読み込んだりするのですが、
今回、何度も読込を行わせたいのです。(ライブ画像のように)

何かご存じの方おりましたら、
メッセージ頂けたら幸いです。


引用未解決
トピックタグ
きのこ
 きのこ
(@きのこ)
ゲスト
結合: 15年前
投稿: 3
 

D3D9で軽く調べた感じでは、IDirect3DTexture9はDCが取得できず、変わりにIDirect3DSurface9は
DCが取得できるようなので、IDirect3DTexture9のGetSurfaceLevelメソッドで、
IDirect3DSurface9としてのptrを取得し、IDirect3DSurface9のGetDCメソッドでDCを取得して
Win32APIのBitBltで画素の転送を行う感じで実現できないでしょうか。

と書きつつ実際には試していないので、ご参考まで。


返信引用
ダイ
 ダイ
(@ダイ)
ゲスト
結合: 22年前
投稿: 16
Topic starter  

きのこ さん

お返事有難うございます。

以下の方法で出来ました!

1)空のテクスチャを作成
2)テクスチャ->GetSurfaceLevelメソッドでサーフェイスを取得
3)サーフェイス->GetDCメソッドでDCを取得
4)取得したDCへと画像をコピー

非常に悩んでいたので、助かりました。

(気にしていた処理時間もBitBlt以外はほぼ0msecに近かったです。)

有難うございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました