The information in this article applies to:
SUMMARYDirectX version 5.0 and later includes support for processors that support MMX technology. MMX devices are enumerated only by IDirect3D2::EnumDevices(). The MMX device will not be enumerated by IDirect3D::EnumDevices(). You must use the IDirect3D2 interface to enumerate the Direct3D MMX emulation driver. MORE INFORMATION
DirectX version 5.0 includes both the IDirect3D and the IDirect3D2
interfaces. Applications use the methods of the IDirect3D and IDirect3D2
interfaces to create Direct3D objects and set up the environment. The
IDirect3D2 interface is obtained by calling the QueryInterface() method from a DirectDraw object. You must enumerate all DirectDraw objects on the system and enumerate all Direct3D objects off of every DirectDraw object in order to obtain all possible Direct3D objects.
Now, in the enumDeviceFunc callback function, you can check for the MMX Emulation driver with the following code:
The major difference between the IDirect3D2 and the IDirect3D interface is
the addition of the CreateDevice method. This method creates a Direct3D
device to be used with the DrawPrimitive methods. To use execute buffers
with an MMX device, you can call the IDirect3D2::CreateDevice method to
create an MMX IDirect3DDevice2 interface and then use the QueryInterface() method to create an IDirect3DDevice interface from IDirect3DDevice2.
REFERENCESFor additional information about source code on properly enumerating Direct3D devices, please see the following article in the Microsoft Knowledge Base: Q172947 SAMPLE: Rendering a Triangle with the Direct3D Immediate Mode Additional query words:
Keywords : kbDirect3dIM KbDirectX KbDirectX500 kbSDKWin32 kbfaq |
Last Reviewed: January 21, 2000 © 2000 Microsoft Corporation. All rights reserved. Terms of Use. |