#include "d3dUtility.h" // // Globals//全局变量 // IDirect3DDevice9* Device = 0; // //接口IDirect3D9的指针.该接口用于获取系统中物理硬件设备的信息并创建接口IDirect3DDevice9 //该接口是一个C++对象,代表我们用来显示3D图形的物理硬件设备 // const int Width = 640;//窗口的宽 const int Height = 480;//高 IDirect3DVertexBuffer9* VB = 0;//顶点缓存指针 IDirect3DIndexBuffer9* IB = 0;//索引缓存指针 // // Classes and Structures // //为创建自定义的顶点格式,我们需要创建一个包含了我们所希望具有顶点数据的结构体。 // struct Vertex //顶点结构定义好之后,就需要用灵活顶点格式(Flexible Vertex Format,FVF)标记的组合来描述顶点组织结构 { 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; // // Framework Functions // bool Setup() { // // Create vertex and index buffers. // //创建一个可容纳8个vertex类型的顶点的静态顶点缓存 Device->CreateVertexBuffer( 8 * sizeof(Vertex), D3DUSAGE_WRITEONLY,//规定应用程序对缓存操作模式为“只写” Vertex::FVF,//存储在顶点缓存中顶点的灵活顶点格式 D3DPOOL_MANAGED, // //放入该托管内存池中的资源将交Direct3D管理(即,这些资源将根据需要被设备自动转移到显存或AGP存储区中)。 //此外,这些资源将在系统存储区中保留一个备份。这样,必要时Direct3D会将这些资源自动更新到显存中。 // &VB, //接受创建的顶点缓存的指针 0); //pSharedHandle 不适用,改值设为0。 // //创建动态缓存,可容纳36个16位索引 // Device->CreateIndexBuffer( 36 * sizeof(WORD), D3DUSAGE_WRITEONLY, D3DFMT_INDEX16,//指定索引的大小。D3DFMT_INDEX16表示16位索引,D3DFMT_INDEX32表示32位索引。 //注意并非所有的图形设备都支持32位索引,如需使用,请检查硬件的性能。 D3DPOOL_MANAGED, &IB, 0); // // Fill the buffers with the cube