创建一个directX程序的步骤

1.下载directX9.0c安装包和directX sdk安装包,都安装好了,然后要设置vc++的工作目录,加入include和lib路径

 

2.下面开始写程序,

首先引入头文件#include <d3dx9.h>然后注册wnd窗口,最后把窗口hwnd和directx操作函数关联.

这里介绍几个结构体:

HWND hWnd;
LPDIRECT3DDEVICE9 pDev3D9;//directX设备接口指针

 LPDIRECT3D9 pd3d;//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);

 

注意:

IDirect3DDevice9::Clear( )函数:
Ø在绘制图形前用此函数初始化视口颜色储存区、深度缓存区或模板缓 存区。
IDirect3DDevice9::BeginScene( )和 IDirect3DDevice9::EndScene( )函数
Ø开始图形绘制前,必须调用BeginScene( )函数,通知Direct3D设备渲染 开始;//不可嵌套
Ø 渲染程序完成后,必须调用EndScene( )函数结束渲染;
Ø这两个函数必须成对出现,并且不允许嵌套和交错;任何Direct3D渲 染函数都必须在这两个函数之间出现。
IDirect3DDevice9::Present( )函数://提交
Ø所有图形绘制结束后,调用此函数将后台缓存区的数据复 制到前台缓存区。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值