Windモードでの描画サイズ設定
Windモードで800X600のゲーム画面で表示設定したい時のメモです。
CreateWindow でウインドのサイズを指定しても、Wind枠や、メニューバーを含んだ
サイズになってしまうので、変換が必要
RECT rect = { 0, 0, 800, 600 } ; AdjustWindowRect( &rect, // クライアント矩形 WS_OVERLAPPED | WS_SYSMENU | WS_CAPTION, // ウィンドウスタイル FALSE // メニューフラグ ); hWnd = CreateWindow( PROC_NAME, L"View Test", WS_OVERLAPPED | WS_SYSMENU | WS_CAPTION, CW_USEDEFAULT, CW_USEDEFAULT, rect.right - rect.left, // ウィンドウの幅 rect.bottom - rect.top, // ウィンドウの高さ NULL, NULL, hInstance, NULL);
■DirectXの方にも縦横の比率を渡すのを忘れないように
float width,height; widtth = rect.right - rect.left; height = rect.button - rect.top; D3DXMatrixPerspectiveFovLH( &matProj, D3DX_PI/4, width/height, 10.0f, 2000.0f );