|
|
前天做了个 vc++6.0、dx9.0 中sdk的例子“Tut02_Vertices”
把它修改成6个点图源,想移动下。
弹出窗口“MovePoint.exe 遇到问题需要关闭。我们对此引起的不便表示抱歉。”
错误签名:“AppName: movepoint.exe AppVer: 0.0.0.0 ModName: movepoint.exe
ModVer: 0.0.0.0 Offset: 0000f39a”
麻烦各位了,我添加代码如下:
HRESULT InitVB()
{
CUSTOMVERTEX vertices[] =
{
{150.0f,350.0f,0.5f,1.0f,D3DCOLOR_XRGB(255,0,0)}, //point 1
{250.0f,150.0f,0.5f,1.0f,D3DCOLOR_XRGB(0,255,0)}, //point 2
{350.0f,350.0f,0.5f,1.0f,D3DCOLOR_XRGB(0,0,255)}, //point 3
{450.0f,150.0f,0.5f,1.0f,D3DCOLOR_XRGB(255,0,0)}, //point 4
{550.0f,350.0f,0.5f,1.0f,D3DCOLOR_XRGB(0,255,0)}, //point 5
{650.0f,150.0f,0.5f,1.0f,D3DCOLOR_XRGB(0,0,255)}, //point 6
};
CUSTOMVERTEX *pv = (CUSTOMVERTEX *) data;
for(int i=0;i<6;++i)
{
pv.x += 0.1;
if(pv.x>800) pv.x -= 800;
break;
}
if( FAILED( g_pd3dDevice->CreateVertexBuffer( 6*sizeof(CUSTOMVERTEX),
0, D3DFVF_CUSTOMVERTEX,
D3DPOOL_DEFAULT, &g_pVB, NULL ) ) )
{
return E_FAIL;
}
VOID* pVertices;
if( FAILED( g_pVB->Lock( 0, sizeof(vertices), (void**)&pVertices, 0 ) ) )
return E_FAIL;
memcpy( pVertices, vertices, sizeof(vertices) );
g_pVB->Unlock();
return S_OK;
}
VOID Render()
{
g_pd3dDevice->Clear( 0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0,0,0), 1.0f, 0 );
if( SUCCEEDED( g_pd3dDevice->BeginScene() ) )
{
g_pd3dDevice->SetStreamSource( 0, g_pVB, 0, sizeof(CUSTOMVERTEX) );
g_pd3dDevice->SetFVF( D3DFVF_CUSTOMVERTEX );
g_pd3dDevice->DrawPrimitive( D3DPT_POINTLIST,0,6); // 画点 POINTLIST
g_pd3dDevice->EndScene();
}
g_pd3dDevice-> resent( NULL, NULL, NULL, NULL );
}
[em24] [em24] [em24] [em24] |
|