DirectX

Direct3Dでスクリーン座標を指定して描画する

FVFの頂点座標にD3DFVF_XYZRHWを使う
変換済みの頂点座標的な意味らしい

(FVF例)
struct VERTEX{
    D3DXVECTOR4 pos;
    D3DCOLOR diffuse;
}
 
#define VERTEX_FVF ( D3DFVF_XYZRHW | D3DFVF_DIFFUSE )
 
頂点座標の4番目wには1.0fを入れておけばいいらしい

(描画例)
void drawRect(LPDIRECT3DDEVICE9 pDevice, float x, float y, float width, float height, D3DCOLOR color)
{
    D3DXVECTOR4 v4;
    VERTEX vertex[4]={
        {D3DXVECTOR4(x, y, 0.0f, 1.0f), color},
        {D3DXVECTOR4(x + width, y, 0.0f.0f, 1.0f), color},
        {D3DXVECTOR4(x, y + height, 0.0f, 1.0f), color},
        {D3DXVECTOR4(x + width, y + height, 0.0f, 1.0f), color}
    };
 
    m_pD3DDevice->SetFVF(VERTEX_FVF);
    m_pD3DDevice->DrawPrimitiveUP(D3DPT_TRIANGLESTRIP, 2, vertex, sizeof(VERTEX));
}
 
最終更新:2010年10月11日 03:52
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。