游戏开发论坛

 找回密码
 立即注册
搜索
查看: 7107|回复: 8

D3D9用D3DDEVTYPE_REF参数创建设备失败,返回D3DERR_NOTAVAILABLE

[复制链接]

9

主题

39

帖子

43

积分

注册会员

Rank: 2

积分
43
发表于 2008-12-10 12:22:00 | 显示全部楼层 |阅读模式

  1.         memset(&m_d3dpp, 0, sizeof(m_d3dpp));
  2.         m_d3dpp.Windowed = TRUE;
  3.         m_d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
  4.         m_d3dpp.BackBufferFormat = D3DFMT_UNKNOWN;
  5.         m_d3dpp.EnableAutoDepthStencil = TRUE;
  6.         m_d3dpp.AutoDepthStencilFormat = D3DFMT_D16;
  7.         //if(ret = SUCCEEDED(m_pD3D->CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd, D3DCREATE_HARDWARE_VERTEXPROCESSING, &m_d3dpp, &m_pd3dDevice)))
  8.         if(ret = SUCCEEDED(m_pD3D->CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_REF, hWnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING, &m_d3dpp, &m_pd3dDevice)))
复制代码


用前面被注释掉的HAL硬件方式可以创建成功,但是用下面的REF就会创建失败。
请问这是什么原因导致的呢?

19

主题

638

帖子

638

积分

高级会员

Rank: 4

积分
638
发表于 2008-12-10 14:28:00 | 显示全部楼层

Re:D3D9用D3DDEVTYPE_REF参数创建设备失败,返回D3DERR_NOTAVAILABL

REF设备只在装了DXSDK的开发机器上存在,在用户的机器上没有,不能使用。

我以前也曾经把REF当成软件模拟模式用,其实不是那么回事,REF只是用来开发测试的。所以WARP才很有存在的意义。

5

主题

686

帖子

697

积分

高级会员

Rank: 4

积分
697
QQ
发表于 2008-12-10 16:40:00 | 显示全部楼层

Re:D3D9用D3DDEVTYPE_REF参数创建设备失败,返回D3DERR_NOTAVAILABL

ls正解,ref设备需要d3dref9.dll

9

主题

39

帖子

43

积分

注册会员

Rank: 2

积分
43
 楼主| 发表于 2008-12-10 17:07:00 | 显示全部楼层

Re:D3D9用D3DDEVTYPE_REF参数创建设备失败,返回D3DERR_NOTAVAILABL

原来是这样,谢谢LS两位了?
不过我还是有一个疑问,那就是那些在虚拟机里面也可以玩起来的3D游戏是怎么实现的?
虚拟机没有硬件设备支持,我用HAL方式,在虚拟机里面创建失败,画面出不来。。。

9

主题

39

帖子

43

积分

注册会员

Rank: 2

积分
43
 楼主| 发表于 2008-12-11 10:01:00 | 显示全部楼层

Re:D3D9用D3DDEVTYPE_REF参数创建设备失败,返回D3DERR_NOTAVAILABL

D3D9到底有没有软件方式的呢?

19

主题

638

帖子

638

积分

高级会员

Rank: 4

积分
638
发表于 2008-12-11 16:36:00 | 显示全部楼层

Re: Re:D3D9用D3DDEVTYPE_REF参数创建设备失败,返回D3DERR_NOTAVAI

w_anthony: Re3D9用D3DDEVTYPE_REF参数创建设备失败,返回D3DERR_NOTAVAILABLE???

D3D9到底有没有软件方式的呢?

有,但没有提供官方的软件渲染器,理论上可以安装第三方软件渲染器,不过从来没见过有人做。

5

主题

686

帖子

697

积分

高级会员

Rank: 4

积分
697
QQ
发表于 2008-12-12 22:24:00 | 显示全部楼层

Re:D3D9用D3DDEVTYPE_REF参数创建设备失败,返回D3DERR_NOTAVAILABL

虚拟机里面ms装一些特殊的设备驱动也是可以跑d3d的,我以前就看过一个帖子说如何用VMWare运行跑跑卡丁车,硬件加速的,帧数还不错

9

主题

39

帖子

43

积分

注册会员

Rank: 2

积分
43
 楼主| 发表于 2008-12-13 08:48:00 | 显示全部楼层

Re: Re:D3D9用D3DDEVTYPE_REF参数创建设备失败,返回D3DERR_NOTAVAI

jk20012001: Re3D9用D3DDEVTYPE_REF参数创建设备失败,返回D3DERR_NOTAVAILABLE???

虚拟机里面ms装一些特殊的设备驱动也是可以跑d3d的,我以前就看过一个帖子说如何用VMWare运行跑跑卡丁车,硬件加速的,帧数还不错


愿闻其详!

9

主题

39

帖子

43

积分

注册会员

Rank: 2

积分
43
 楼主| 发表于 2008-12-13 17:06:00 | 显示全部楼层

Re:D3D9用D3DDEVTYPE_REF参数创建设备失败,返回D3DERR_NOTAVAILABL

网上随便找了一下,就找到虚拟机开硬件的方法了,谢谢了……
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-20 17:07

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表