1.下载directX9.0c安装包和directX sdk安装包,都安装好了,然后要设置vc++的工作目录,加入include和lib路径
2.下面开始写程序,
首先引入头文件#include <d3dx9.h>然后注册wnd窗口,最后把窗口hwnd和directx操作函数关联.
这里介绍几个结构体:
HWND hWnd;
LPDIRECT3DDEVICE9 pDev3D9;//directX设备接口指针
D3DDISPLAYMODE d3ddm;//显卡信息描述
D3DPRESENT_PARAMETERS d3dpp;//directX设备对象
然后在注册窗口完成后,加入directx的初始化工作:
pd3d = Direct3DCreate9(D3D_SDK_VERSION)//函数创建一个directx对象
pd3d->GetAdapterDisplayMode(D3DADAPTER_DEFAULT, &d3ddm)//函数得到当前显卡的相关信息
填充D3DPRESENT_PARAMETERS的结构体
::ZeroMemory(&d3dpp, sizeof(d3dpp));
d3dpp.BackBufferWidth = 640;
d3dpp.BackBufferHeight = 450;
d3dpp.BackBufferFormat = d3ddm.Format;
d3dpp.BackBufferCount = 1;
d3dpp.MultiSampleType = D3DMULTISAMPLE_NONE;
d3dpp.MultiSampleQuality = 0;
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
d3dpp.hDeviceWindow = hWnd;
d3dpp.Windowed = true;
// d3dpp.EnableAutoDepthStencil = true;
// d3dpp.AutoDepthStencilFormat = D3DFMT_D24S8;
d3dpp.Flags = 0;
d3dpp.FullScreen_RefreshRateInHz = D3DPRESENT_RATE_DEFAULT;
d3dpp.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE;
pd3d->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd, D3DCREATE_HARDWARE_VERTEXPROCESSING, &d3dpp, &pDev3D9)//创建directx设备对象,所有具体操作都是由
directx的设备对象完成的,directx的对象只是一个过度,并不参与相关的设置.
到这里就完成了directx的初始化工作,下面就可以调用directx的api去实现相关的功能了.
3.跟住在某事件响应操作
pDev3D9->Clear(0, 0, D3DCLEAR_TARGET, D3DCOLOR_ARGB(0,0, 255, 255), 1.0f, 0);
pDev3D9->Present(NULL, NULL, NULL, NULL);
注意: