Direct3D9_CreateDevice.pdf

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Direct3D9_CreateDevice

Direct3D9 CreateDevice 搬砖工大叔 knieiu@163.com 2015年 2月 14日 1 Direct3D9程序必备 1.1 用到的Direct3D9结构描述 1.1.1 Direct3DCreate9 创建一个 IDirect3D9对象并且返回一个接口指针。 1 IDirect3D9 * Direct3DCreate9 (UINT SDKVersion ) ; 参数 列表 SDKVersion 这个参数的值应该是D3D_SDK_VERSION. 1.1.2 D3DPRESENT_PARAMETERS 描述D3D9展示方式的参数 1 typedef s t ruct D3DPRESENT_PARAMETERS { 2 UINT BackBufferWidth , BackBufferHeight ; 3 D3DFORMAT BackBufferFormat ; 4 UINT BackBufferCount ; 5 D3DMULTISAMPLE_TYPE MultiSampleType ; 6 DWORD MultiSampleQuality ; 7 D3DSWAPEFFECT SwapEffect ; 8 HWND hDeviceWindow ; 9 BOOL Windowed; 10 BOOL EnableAutoDepthStencil ; 11 D3DFORMAT AutoDepthStencilFormat ; 12 DWORD Flags ; 13 UINT FullScreen_RefreshRateInHz ; 14 UINT PresentationInterval ; 15 } D3DPRESENT_PARAMETERS, *LPD3DPRESENT_PARAMETERS; 成员 列表 BackBufferWidth,BackBufferHeight 新交换链的后台缓冲区的宽和高,以像素为单位。如果Windowed是 FALSE (全屏显示),这两个值必须等于 IDirect3D9::EnumAdapterModes找到的所有显示模式的某个 1 显示模式的宽和高。如果Windowed为 TRUE并且这两个值其中有一个为零,用 hDeviceWindow(或 者如果 hDeviceWindow为 NULL,采用当前的焦点窗口)指定的窗口的客户区域的宽和高来替代这 两个值。 BackBufferFormat 后台缓冲区的格式。关于这个格式的更多信息,请参考D3DFORMAT.这个值必须是由 IDirect3D9::CheckDeviceType验证有效的一个渲染目标格式。我们也可以用 IDirect3DDevice9::GetDisplayMode 来获取当前的格式。 事实上,当我们使用窗口模式 (非全屏模式) 显示时,可以把 BackBufferFormat 的值设置为 D3DFMT_UNKNOWN.这样处理,运行时就会使用当前显示模式的格式并且不需要再调用 IDi- rect3DDevice9::GetDisplayMode. 当应用程序运行在窗口模式时,后台缓冲区模式不再需要跟显示模式的格式相匹配;因为现在硬 件可以处理色彩转换 (如果硬件支持色彩转换).可用的后台缓冲区格式是有限的,但是 D3D9运行 时允许任何有效的后台缓冲区格式能够被呈现到桌面格式。(有一个附加条件:D3D设备在桌面模 式下必须是可操作的;D3D设备通常不能操作每像素 8位的模式。) 全屏的应用程序不能做色彩转换。 BackBufferCount 这个值可以是 0到 D3DPRESENT_BACK_BUFFERS_MAX (或者当使用 Direct3D9Ex时 的D3DPRESENT_BACK_BUFFERS_MAX_EX)之间的任何整数值。值如果为 0,则会把它当作 1.如果 不能创建此值所指定的这么多个后台缓冲区,D3D9运行时就会在调用函数中出错,并且把这个值修 改为可以创建的后台缓冲区的数目。结果就是,应用程序可以用相同的D3DPRESENT_PARAMETERS 结构调用这个方法 (如 CreateDevice )两次并且期望它在第二次时能正常运行。 如果不能创建一个后台缓冲区,这个方法就会失败。BackBufferCount的值影响什么样的交换效果 集合可以被使用。具体来说,任何D3DSWAPEFFECT_COPY交换效果必须有一个后台缓冲区。 MultiSampleType 值为D3DMULTISAMPLE_TYPE枚举类型的成员。这个值必须为D3DMULTISAMPLE_NONE, 除非 SwapEffect已经被设置为D3DSWAPEFFECT_DISCARD .仅当交换效果的值为D3D

文档评论(0)

l215322 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档