Original Post
hey. this is the SECOND time i don understand the Render error. can some one Help me and Explain in a Easy understanding way? The DirectX code
bool InitD3D()
{
if(NULL == (pD3D = Direct3DCreate9(D3D_SDK_VERSION) ) )
{
MessageBox(NULL,"Error - Wrong SDK","Error",MB_OK);
return FALSE;
}
D3DDISPLAYMODE d3ddm;
d3ddm.Format = D3DFMT_X8R8G8B8;
d3ddm.Height = 480;
d3ddm.RefreshRate = 0;
d3ddm.Width = 640;
D3DPRESENT_PARAMETERS d3dpp;
ZeroMemory(&d3dpp,sizeof(d3dpp));
d3dpp.BackBufferCount = 1;
d3dpp.BackBufferFormat = d3ddm.Format;
d3dpp.BackBufferHeight = 480;
d3dpp.BackBufferWidth = 640;
d3dpp.hDeviceWindow = wndHandle;
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
d3dpp.Windowed = TRUE;
if(FAILED(pD3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, wndHandle,D3DCREATE_SOFTWARE_VERTEXPROCESSING, &d3dpp, &pd3dDevice)))
{
MessageBox(NULL,"Error - Creating Device","Error",MB_OK);
return FALSE;
}
pd3dDevice->SetRenderState(D3DRS_LIGHTING, FALSE);
VertexBuffer();
return TRUE;
}
void RenderD3D(void)
{
D3DXMATRIX matView;
D3DXMATRIX matProj;
pd3dDevice->Clear(0,NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0,0,0), 1.0f,0);
pd3dDevice->BeginScene();
pd3dDevice->SetFVF(VertexFVF);
pd3dDevice->SetStreamSource(0,pD3DVB,0,sizeof(VERTEX));
pd3dDevice->DrawPrimitive(D3DPT_TRIANGLELIST,0,1);
D3DXMatrixLookAtLH(&matView, &D3DXVECTOR3 (0.0f,0.0f,-10.0f),
&D3DXVECTOR3 (0.0f, 0.0f, 0.0f),
&D3DXVECTOR3 (0.0f, 1.0f, 0.0f));
pd3dDevice->SetTransform(D3DTS_VIEW, &matView);
D3DXMatrixPerspectiveFovLH(&matProj, D3DXToRadian(45), (FLOAT)640/(FLOAT)480, 1.0f, 100.0f);
pd3dDevice->SetTransform(D3DTS_PROJECTION, &matProj);
pd3dDevice->EndScene();
pd3dDevice->Present(NULL,NULL,NULL,NULL);
}
void Exit()
{
pd3dDevice->Release();
pD3D->Release();
pD3DVB->Release();
}
void VertexBuffer()
{
VERTEX Verts[] =
{
{320.0f, 10.0f, 5.0f, D3DCOLOR_ARGB(100,255,0,0),},
{160.0f, 400.0f, 5.0f, D3DCOLOR_ARGB(100,0,255,0),},
{480.0f, 400.0f, 5.0f, D3DCOLOR_ARGB(100,0,0,255),},
};
VOID *Void;
if(D3D_OK(pd3dDevice->CreateVertexBuffer(sizeof(VERTEX)*3,0,D3DFVF_XYZ | D3DFVF_DIFFUSE, D3DPOOL_DEFAULT, &pD3DVB, NULL)))
{
pD3DVB->Lock(0,0,(void**)&Void, 0);
memcpy(Void, Verts, sizeof(Verts));
pD3DVB->Unlock();
}
}