D3D基本框架

 
创建D3D对象: 
1  Direct3DCreate9(D3D_SDK_VERSION);
 
获取显卡显示模式: 
1 HRESULT GetAdapterDisplayMode(
2   UINT Adapter,  // 指定显示卡序列号
3    D3DDISPLAYMODE *pMode  // 存储显示模式的指针
4  ); 

 

 创建D3D设备接口:   
1 HRESULT CreateDevice(
2          UINT Adapter, // 显卡序列号
3           D3DXDEVTYPE DeviceType, // D3D设备类型
4           HWND hFocusWindow, // 所属窗口句柄
5           DWORD BehaviorFlags, // 设备进行3D运算方式
6           D3DPRESENT_PARAMETERS *pPresentionParameters, // 用于存储D3D设备相关信息的指针
7           IDirect3DDevice9 **ppReturnedDeviceInterface // 返回D3D设备接口指针的地址
8           ); 

第二个参数DeviceType 取值:
D3DDEVTYPE_HAL //硬件抽象层,通过显示硬件来完成图形渲染工作
D3DDEVTYPE_REF //参考光栅器,一般用于测试显卡不支持的D3D 功能
D3DDEVTYPE_SW //用于支持第三方软件
第四个参数BehaviorFlags 取值:
D3DCREATE_SOFTWARE_VERTEXPROCESSING //由D3D 软件进行顶点运算(常用)
D3DCREATE_FPU_PRESERVE //激活双精度浮点运算或浮点运算异常检测,设置该项会降低系统性能
D3DCREATE_MULTITHREADED //保证D3D 是多线程安全的,设置该项会降低系统性能

D3DCREATE_MIXED_VERTEXPROCESSING //由混合方式进行顶点运算
D3DCREATE_HARDWARE_VERTEXPROCESSING //由D3D 硬件进行顶点运算
D3DCREATE_PUREDEVICE //禁用D3D 的Get*()函数,禁止D3D使用虚拟设备模拟顶点运算

 
开始渲染和结束渲染:
1  BeginScene(); // 开始渲染
2   ......
3  实际的渲染工作 
4  ......
5  EndScene(); // 结束渲染 

注意:
这两个函数必须成对出现,不允许交错和嵌套的发生,实际的渲染工作在这两个函数的
中间进行。

 
清空图形绘制区:
1  HRESULT Clear(
2  DWORD Count,  // 清除的矩形区域数量
3    const D3DRECT *pRects,  // 清除的矩形区域数组指针
4   DWORD Flags,  // 清除的缓冲区标志,指定清除哪一个缓
5   冲区
6  D3DCOLOR Color,  // 清除后重置的颜色
7    float Z,  // 清除后重置的深度值,从0-1.0
8   DWORD Stencil  // 重置的模板值
9   );

第三个参数Flags 取值(可任意组合):
D3DCLEAR_STENCIL //模板缓冲区
D3DCLEAR_TARGET //颜色缓冲区
D3DCLEAR_ZBUFFER //深度缓冲区

 
屏幕反转:
1  HRESULT Present(
2  CONST RECT *pSourceRect,  // 复制源的矩形区域指针
3   CONST RECT *pDestRect,  // 复制目的地的矩形区域指针
4   HWND hDestWindowOverride,  // D3D 设备窗口句柄
5   CONST RGNDATA *pDirtyRegion  // 最小更新区域指针
6   );

注意:
除非D3D 的交换链是用D3DSWAPEFFECT_COPY 的标志创建,在大多数的情况下,此
函数的各个参数都设置为NULL。

转载于:https://www.cnblogs.com/liwenbin/archive/2011/12/06/2277520.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值