始めまして。
DirectX Graphicsについて質問させてください。
今、Pictureboxで画像を表示させ、ネットワークでコマンドが来ると、
DirectX Graphicsを使ってフルスクリーンモードで画面を色変わりさせ、
またコマンドで元のPictureboxを表示させるプログラムを作っています。
チラつきを無くしたいが為にDirectXを使ったのですが、Direct3Dデバイスを生成した所で画面がほんの一瞬ですが黒味になってしまいます。
途中、待ち時間を入れてみた所、
'====================================================================
'Direct3D初期化処理
'====================================================================
Private Sub InitD3D()
On Error Resume Next 'エラーの場合次の行から再開
'変数の宣言
Dim D3DDM As D3DDISPLAYMODE 'ディスプレイ・モード格納構造体
Dim D3DPP As D3DPRESENT_PARAMETERS'ディスプレイ・パラメータ格納構造体
'オブジェクトの生成
Set D3D = DX.Direct3DCreate() 'Direct3Dシステム生成
'プレゼンテーション・パラメータの設定
D3D.GetAdapterDisplayMode D3DADAPTER_DEFAULT, D3DDM
'ディスプレイ・モードを取得
With D3DPP 'プレゼンテーション・パラメータに関する設定
.Windowed = False 'ウインドウ・モード
.SwapEffect = D3DSWAPEFFECT_COPY_VSYNC '画面の更新方法
.BackBufferFormat = D3DDM.Format 'ディスプレイのフォーマット
.BackBufferHeight = D3DDM.height
.BackBufferWidth = D3DDM.width
End With
wait 3000 −−−−ここでは黒味になってない
'Direct3Dデバイスの生成
Set D3DDevice = D3D.CreateDevice(D3DADAPTER_DEFAULT, _
D3DDEVTYPE_HAL, Me.hwnd, _
D3DCREATE_SOFTWARE_VERTEXPROCESSING, D3DPP)
wait 3000 −−−−ここで黒味になっている!
If D3DDevice Is Nothing Then 'Direct3Dデバイスが生成されない場合
Set D3DDevice = D3D.CreateDevice(D3DADAPTER_DEFAULT, _
D3DDEVTYPE_REF, Me.hwnd, _
D3DCREATE_SOFTWARE_VERTEXPROCESSING, D3DPP)
If D3DDevice Is Nothing Then 'Direct3Dデバイスが生成されない場合は処理を終了
Call ReleaseObject '解放処理
End 'プログラムの終了
End If
End If
End Sub
というところまでは判ったのですが、これをどうすれば回避できるのかが解りません。
回避方法、ヒントがあれば宜しく御教授ください。
宜しくお願いします。
開発環境:WinXP VB6(SP6) DirectX8.0SDK
ちなみにProg使用環境 Win2000 SDK無 です。
ツイート | ![]() |