【C++】 DirectX初心者質問スレ 【C++】
■ このスレッドは過去ログ倉庫に格納されています
0600デフォルトの名無しさん
NGNG以下のような線の描画関数を毎フレーム数百回くらいループをまわして呼ぶと
だんだん重くなって挙動がおかしくなって最悪PCが落ちるのですが、
使い方が間違っているのでしょうか?(間違ってるからそうなるんだと思いますが…)
p1,p2を毎フレーム変えて線をアニメーションさせたりしたいのですが、
その場合、正しくはどんな手順で書いたら良いのか教えてください。
void DrawLine(LPDIRECT3DDEVICE9 lpd3dDev, D3DXVECTOR3 p1, D3DXVECTOR3 p2)
{
CUSTOMVERTEX vertices[] = {
{ p1.x, p1.y, p1.z, 1.0f, 0xffff0000, },// x, y, z, rhw, color
{ p2.x, p2.y, p2.z, 1.0f, 0xff00ff00, }
};
// Create the vertex buffer.
lpd3dDev->CreateVertexBuffer( 2*sizeof(CUSTOMVERTEX),
0, D3DFVF_CUSTOMVERTEX,D3DPOOL_DEFAULT, &g_pVB, NULL ) ) ;
// Now we fill the vertex buffer.
VOID* pVertices;
g_pVB->Lock( 0, sizeof(vertices), (void**)&pVertices, 0 ) ) ;
memcpy( pVertices, vertices, sizeof(vertices) );
g_pVB->Unlock();
lpd3dDev->SetStreamSource( 0, g_pVB, 0, sizeof(CUSTOMVERTEX) );
lpd3dDev->SetFVF( D3DFVF_CUSTOMVERTEX );
lpd3dDev->DrawPrimitive( D3DPT_LINELIST, 0, 1 );
}
■ このスレッドは過去ログ倉庫に格納されています