这个问题并没有完全正确,因为它在一句话中有点难以做,所以真正的问题是: 在Direct3D9中创建表示设备的对象的函数如下所示。
HRESULT IDirect3D9::CreateDevice(
UINT Adapter,
D3DDEVTYPE DeviceType,
HWND hFocusWindow,
DWORD BehaviorFlags,
D3DPRESENT_PARAMETERS *pPresentationParameters,
IDirect3DDevice9** ppReturnedDeviceInterface
);
Adapter
UINT参数指的是目标计算机上使用的特定视频卡,但DeviceType
参数指的是 HAL 或 REF 。那么,指定某些特定视频卡(例如0)和 REF 设备类型的重点是什么?是不是 REF 一些由处理器模拟的抽象实例,与视频卡没有任何关系?
答案 0 :(得分:0)
基本上,你是对的。参考设备在软件中实现大多数DirectX功能,不依赖于图形驱动程序。反过来,它们非常慢,应该只用于测试。您需要参考设备有两个原因:
如果您的图形卡不支持您要使用的DirectX功能,则可以使用参考设备,因为它将支持所有功能。但是,这在开发过程中才有意义(如果您暂时使用的是低端机器)。
如果您得到奇怪的结果,可能是驱动程序问题。要对此进行排除,您可以使用参考设备进行检查。如果这给您带来相同的结果,则问题出在您的代码中。如果它给你正确的结果,图形驱动程序是错误的。