1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
void Area::Init(LPDIRECT3DDEVICE9 D3DDEV,D3DXVECTOR3 position,const D3DXVECTOR3 size,float gradient)
{
d3ddev = D3DDEV;
sizeX = floor(size.x);
sizeZ = floor(size.z);
CUSTOMVERTEX vertices[4];
for(int x = 0;x < sizeX;x++)
{
for(int z = 0;z < sizeZ;z++)
{
vertices[x + z * 2].x = x;
vertices[x + z * 2].y = 0;
vertices[x + z * 2].z = z;
vertices[x + z * 2].Color = D3DCOLOR_XRGB(255,255,255);
}
}
D3DDEV->CreateVertexBuffer(2 * 2*sizeof(CUSTOMVERTEX),0,D3DFVF_XYZ | D3DFVF_DIFFUSE,D3DPOOL_DEFAULT,&v_buffer,NULL);
VOID* pVoid;
v_buffer->Lock(0,0,(void**)&pVoid,0);
memcpy(pVoid,vertices,sizeof(vertices));
v_buffer->Unlock();
short indices[] =
{
0,1,2,
2,1,3,
};
D3DDEV->CreateIndexBuffer(6*sizeof(CUSTOMVERTEX),0,D3DFMT_INDEX16,D3DPOOL_DEFAULT,&i_buffer,NULL);
i_buffer->Lock(0,0,(void**)&pVoid,0);
memcpy(pVoid,indices,sizeof(indices));
i_buffer->Unlock();
}
|