IDirect3DDevice9* g_Device = NULL;
IDirect3DVertexBuffer9* g_VB = 0; //立方体顶点
IDirect3DIndexBuffer9* g_IB = 0; //索引数据
struct Vertex {
Vertex(){}
Vertex(float x, float y, float z)
{ _x = x; _y=y; _z=z; }
float _x, _y, _z;
static const DWORD FVF;
};
const DWORD Vertex::FVF = D3DFVF_XYZ;
//创建顶点,索引缓存
g_Device->CreateVertexBuffer(8*sizeof(Vertex),
D3DUSAGE_WRITEONLY,
Vertex::FVF,
D3DPOOL_MANAGED,
&g_VB,
0);
g_Device->CreateIndexBuffer(36*sizeof(DWORD),
D3DUSAGE_WRITEONLY,
D3DFMT_INDEX16,
D3DPOOL_MANAGED,
&g_IB,
0);
//向立方体的顶点缓存填充数据
Vertex* vertices;
g_VB->Lock(0, 0, (void**)&vertices, 0);
vertices[0]=Vertex(-1.0f, -1.0f, -1.0f);
vertices[1]=Vertex(-1.0f, 1.0f, -1.0f);
vertices[2]=Vertex(1.0f, 1.0f, -1.0f);
vertices[3]=V