#include<d3d9.h> //Direct3D程序不需的头文件
#include<d3dx9.h>//如果要使用D3DX库就必须加入这个头文件
#include<mmsystem.h>
#include<windows.h>
#pragma comment(lib,"d3d9.lib")
#pragma comment(lib,"d3dx9.lib")
#pragma comment(lib,"winmm.lib")
//4个本程序用到的全局变量
LPDIRECT3D9 g_pD3D = NULL; //Direct3D指针
LPDIRECT3DDEVICE9 g_pD3DDevice = NULL;//Direct3D设备
LPDIRECT3DVERTEXBUFFER9 g_pVB = NULL;//顶点缓冲区指针
LPDIRECT3DINDEXBUFFER9 g_pIB = NULL;//索引缓冲区指针
//定义使用到的顶点结构
struct CUSTOMVERTEX
{
FLOAT x,y,z;
DWORD color;
};
//定义上述顶点的FVF结构
#define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZ|D3DFVF_DIFFUSE)
//初始化Direct3D设备过程函数
HRESULT InitD3D(HWND hWnd)
{
//创建Direct3D对象
if(NULL == (g_pD3D = Direct3DCreate9(D3D_SDK_VERSION)))
{
return E_FAIL;
}
//填写创建Direct3D设备结构体
D3DPRESENT_PARAMETERS d3dpp;
ZeroMemory(&d3dpp,sizeof(d3dpp));
d3dpp.Windowed = false;//运行在窗口模式
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;//最高效的工作方式
d3dpp.BackBufferFormat = D3DFMT_UNKNOWN;//屏幕缓冲区数据像素格式
//创建Direct3D设备
if(FAILED(g_pD3D->CreateDevice(D3DADAPTER_DEFAULT,D3DDEVTYPE_HAL,hWnd,
D3DCREATE_SOFTWARE_VERTEXPROCESSING,&d3dpp,&g_pD3DDevice)))
{
return E_FAIL;
}
return S_OK;
}
//初始化与本程序绘图相关的数据函数
HRESULT InitDraw()
{
//创建顶点缓冲区
g_pD3DDevice->CreateVertexBuffer( 8 * sizeof(CUSTOMVERTEX),
D3DUSAGE_WRITEONLY,
#include<d3dx9.h>//如果要使用D3DX库就必须加入这个头文件
#include<mmsystem.h>
#include<windows.h>
#pragma comment(lib,"d3d9.lib")
#pragma comment(lib,"d3dx9.lib")
#pragma comment(lib,"winmm.lib")
//4个本程序用到的全局变量
LPDIRECT3D9 g_pD3D = NULL; //Direct3D指针
LPDIRECT3DDEVICE9 g_pD3DDevice = NULL;//Direct3D设备
LPDIRECT3DVERTEXBUFFER9 g_pVB = NULL;//顶点缓冲区指针
LPDIRECT3DINDEXBUFFER9 g_pIB = NULL;//索引缓冲区指针
//定义使用到的顶点结构
struct CUSTOMVERTEX
{
FLOAT x,y,z;
DWORD color;
};
//定义上述顶点的FVF结构
#define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZ|D3DFVF_DIFFUSE)
//初始化Direct3D设备过程函数
HRESULT InitD3D(HWND hWnd)
{
//创建Direct3D对象
if(NULL == (g_pD3D = Direct3DCreate9(D3D_SDK_VERSION)))
{
return E_FAIL;
}
//填写创建Direct3D设备结构体
D3DPRESENT_PARAMETERS d3dpp;
ZeroMemory(&d3dpp,sizeof(d3dpp));
d3dpp.Windowed = false;//运行在窗口模式
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;//最高效的工作方式
d3dpp.BackBufferFormat = D3DFMT_UNKNOWN;//屏幕缓冲区数据像素格式
//创建Direct3D设备
if(FAILED(g_pD3D->CreateDevice(D3DADAPTER_DEFAULT,D3DDEVTYPE_HAL,hWnd,
D3DCREATE_SOFTWARE_VERTEXPROCESSING,&d3dpp,&g_pD3DDevice)))
{
return E_FAIL;
}
return S_OK;
}
//初始化与本程序绘图相关的数据函数
HRESULT InitDraw()
{
//创建顶点缓冲区
g_pD3DDevice->CreateVertexBuffer( 8 * sizeof(CUSTOMVERTEX),
D3DUSAGE_WRITEONLY,