板ポリゴンの表示
板ポリゴン表示するだけなのに長かった・・・
とりあえずほぼサンプルの通り書いてみて動かした。
struct CUSTOMVERTEX{ float x, y, z; // 頂点座標 float rhw; // 除算数 DWORD dwColor; // 頂点の色 float u, v; // テクスチャ座標 }; CUSTOMVERTEX v[4] = { {200.0f, 100.0f, 0.0f, 1.0f, 0xffffffff, 0.0f, 0.0f}, {200.0f, 200.0f, 0.0f, 1.0f, 0xffffffff, 0.0f, 1.0f}, {100.0f, 100.0f, 0.0f, 1.0f, 0xffffffff, 1.0f, 0.0f}, {100.0f, 200.0f, 0.0f, 1.0f, 0xffffffff, 1.0f, 1.0f} }; HRESULT hr; IDirect3DVertexBuffer9* pVertex; hr = m_pd3dDevice->CreateVertexBuffer( sizeof(CUSTOMVERTEX)*4, D3DUSAGE_WRITEONLY, FVF_CUSTOM, D3DPOOL_MANAGED, &pVertex, NULL ); void *pData; hr = pVertex->Lock(0, sizeof(CUSTOMVERTEX)*4, (void**)&pData, 0); if(hr == D3D_OK){ memcpy(pData, v, sizeof(CUSTOMVERTEX)*4); pVertex->Unlock(); } m_pd3dDevice->BeginScene(); // 描画開始 m_pd3dDevice->SetStreamSource(0, pVertex, 0, sizeof(CUSTOMVERTEX)); m_pd3dDevice->SetFVF(FVF_CUSTOM); m_pd3dDevice->DrawPrimitive(D3DPT_TRIANGLESTRIP, 0, 2); m_pd3dDevice->EndScene(); // 描画終了 m_pd3dDevice->Present(NULL, NULL, NULL, NULL);
実行結果
正方形のポリゴンが表示されただけ。