スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Direct X の IDirect3DDevice9::SetViewport メソッドで指定範囲の描画をする

今更感丸出しな上、久々にプログラムを触ったなぁ~。
今回はタイトルにあるように、指定範囲の描画メソッドを作りましょうということで作成。

まずは MSDN ライブラリより、IDirect3DDevice9::SetViewport メソッドに関してのリンク。
http://msdn.microsoft.com/ja-jp/library/cc324255.aspx

関数の説明:デバイスにビューポート パラメータを設定する。

このなんとも言い難い相変わらずの説明具合・・・。
なんのこっちゃわからん!

要するにこのメソッド使えば、指定範囲の描画ができますよということです。
とりあえずざくっとソース載っけときます。


//*******************************************
// ビューポートの設定(指定範囲を描画する用)
// 第一引数 : 指定描画位置X
// 第二引数 : 指定描画位置Y
// 第三引数 : 描画幅
// 第四引数 : 描画高さ
// 戻り値 : D3D_OK:成功 E_FAIL:失敗
//*******************************************

HRESULT SetViewport(DWORD Xpos, DWORD Ypos, DWORD Width, DWORD Height)
{

m_Viewport.X = Xpos;
m_Viewport.Y = Ypos;
m_Viewport.Width = Width;
m_ViewPort.Height = Height;
m_Viewport.MinZ = 0.0f;
m_Viewport.MaxZ = 1.0f;

// ビューポートの設定に失敗したら終了
if( m_pDev->SetViewport(&m_Viewport) == D3DERR_INVALIDCALL)
return E_FAIL;

return D3D_OK;
}


ビューポートを指定するために、Direct X で用意してくれてる D3DVIEWPORT9 構造体 を使用します。
m_ViewPort は、D3DVIEWPORT9 型となってます。
また、m_pDev はお馴染みの LPDIRECT3DDEVICE9 型のデバイスオブジェクトとなってます。
作成に関しては割愛しております。

引数でもらってきた値をセットしているだけなので特に何もないんですが、一応念のため。

http://msdn.microsoft.com/ja-jp/library/cc323943.aspx

SetViewport メソッドのリンクにもありますが、構造体の中身はわかりやすいです。


D3DVIEWPORT9::X
  描画の開始位置X座標。
  この X 地点から描画される。

D3DVIEWPORT9::Y
  描画の開始位置Y座標。
  この Y 地点から描画される。

D3DVIEWPORT9::Width
  この幅分描画される。

D3DVIEWPORT9::Height
  この高さ分描画される。

D3DVIEWPORT9::Min
  ほとんどのアプリケーションでは、この値を 0.0 に設定する。
  と書いてるくらいなので、0.0f を指定してます。

D3DVIEWPORT9::MaxZ
  ほとんどのアプリケーションでは、この値を 1.0 に設定する。
  と書いてるくらいなので、1.0f を指定してます。


このメソッドは、成功した場合は、D3D_OK を返す。
失敗した場合は、D3DERR_INVALIDCALL を返す。

とあるので、戻り値のチェックも入れてます。


使い方は、SetViewport(0, 0, 640, 480);
こんな風にすれば、一般のウインドウサイズのアプリケーション全体を描画することができます。
このサイズからはみ出た分は描画されないので、何かの演出に使ってみたりするのいいかもしれませんね~。

ちゃんとブログ更新することができたけど・・・
一応環境が移って、少しずつ元に戻ってきてます。

何とか、遊べる形に・・・と欲張ると、また更新がとまりそうな気配がするので
地道にできることをやって生きたいと思います。
スポンサーサイト
NEXT≫
検索フォーム
プロフィール

DVDM

Author:DVDM
自作ゲームの開発過程ブログ。
赤髪愛なら誰にも負けない。

 
Pixiv バナー


ブロとも申請フォーム
最新記事
カテゴリ
最新コメント
最新トラックバック
RSSリンクの表示
リンク
ブロとも一覧
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。