Platform SDK: DirectX |
ここでは、Visual Basic でのアプリケーション開発について説明する。C++ については、「DirectDraw C/C++ チュートリアル」を参照すること。
「チュートリアル 1 : スクリーンへのブリット」のサンプルでは、プライマリ サーフェスとロードしたビットマップを持つオフスクリーン サーフェスを作成した。ビットマップをスクリーン上に表示するには、オフスクリーン サーフェスをプライマリ サーフェスにブリットする必要がある。DirectDraw サーフェス オブジェクトのブリット メソッドは、4 つの引数を取り、ブリットが成功したかどうかを示す Long 型を返す。引数のうち 2 つは、転送先サーフェスと転送元サーフェスの境界矩形を指定する RECT 型である。
転送元サーフェスの座標は、オフスクリーン サーフェスの記述の lHeight メンバと lWidth メンバから取得する。転送先矩形を取得するには、さらにいくつかのステップを実行する必要がある。まず始めに、Visual Basic はスクリーンの測定に twip を、DirectX はピクセルを使用するため、転送先矩形を設定する前に、Visual Basic ピクチャ ボックス コントロールの寸法をピクセルに変換する必要がある。これを実行するには、フォームの ScaleMode プロパティを Pixels に設定し、ピクチャ ボックスの幅と高さをフォームの ScaleWidth と ScaleHeight に等しくする。注 : ScaleMode を変更した後もフォームの幅と高さの単位は twip のままだが、ScaleWidth と ScaleHeight の単位はピクセルになっている。チュートリアル 1 のブリット サンプルでは、これを以下の文で実行する。
Picture1.Width = Me.ScaleWidth Picture1.Height = Me.ScaleHeight
これらの文は Form_Resize イベント内にあり、フォームが最初に表示されサイズ変更されたときに実行される。
さらに、DirectX7.GetWindowRect が呼び出されると、転送先の RECT 型に情報が埋め込まれる。
最後に、プライマリ サーフェス オブジェクトの blt メソッドによって、ブリットが実行される。
ddrval = objDDPrimSurf.blt(r1, objDDSurf, r2, DDBLT_WAIT)
このメソッドの結果、ddrval に格納される Long 型が返される。この変数をチェックすれば、成功または失敗がわかる。メソッドの最後の引数は DDBLT_WAIT フラグである。このフラグは、ブリット機能がビジーの場合は DirectDraw に待機するよう指示し、利用可能な状態になるとサーフェスをブリットするように指示する。