Code:
#define CUSTOMFVF (D3DFVF_XYZRHW | D3DFVF_DIFFUSE)
struct CUSTOMVERTEX
{
FLOAT x, y, z, rhw; // from the D3DFVF_XYZRHW flag
DWORD color; // from the D3DFVF_DIFFUSE flag
};
CUSTOMVERTEX OurVertices[] =
{
{0.0f, 0.0f, 1.0f, 1.0f, D3DCOLOR_XRGB(0, 0, 255),},
{0.0f, 100.0f, 1.0f, 1.0f, D3DCOLOR_XRGB(0, 255, 0),},
{100.0f, 0.0f, 1.0f, 1.0f, D3DCOLOR_XRGB(255, 0, 0),},
};
LPDIRECT3DVERTEXBUFFER9 v_buffer;
void xD3::xD3Engine::Initialize(LPDIRECT3DDEVICE9 device)
{
device->CreateVertexBuffer(3*sizeof(CUSTOMVERTEX),
0,
CUSTOMFVF,
D3DPOOL_MANAGED,
&v_buffer,
NULL);
VOID* pVoid; // the void* we were talking about
v_buffer->Lock(0, 0, (void**)&pVoid, 0); // locks v_buffer, the buffer we made earlier
memcpy(pVoid, OurVertices, sizeof(OurVertices));
v_buffer->Unlock(); // unlock v_buffer
}
void xD3::xD3Engine::OnDraw(LPDIRECT3DDEVICE9 device)
{
//device->GetTransform(D3DTS_WORLD, &matTranslate);
device->SetFVF(CUSTOMFVF);
device->SetRenderState(D3DRS_ZENABLE, FALSE);
device->SetRenderState(D3DRS_LIGHTING, FALSE);
device->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE);
device->SetPixelShader(NULL);
device->SetVertexShader(NULL);
device->Clear(0,
NULL,
D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER,
D3DCOLOR_XRGB(0,0,0),
1.0f,
0);
D3DXMATRIX matTranslate;
D3DXMatrixIdentity(&matTranslate);
device->SetStreamSource(0, v_buffer, 0, sizeof(CUSTOMVERTEX));
device->SetTransform(D3DTS_WORLD, &matTranslate);
device->SetTransform(D3DTS_VIEW, &matTranslate);
device->SetTransform(D3DTS_PROJECTION, &matTranslate);
device->DrawPrimitive(D3DPT_TRIANGLELIST, 0, 1);
}
Any help please.