This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.
A version of this page is also available for

Microsoft® Direct3D Mobile® uses two methods to allow applications to discover and tailor their operations to the capabilities of the driver installed on the system: capability bits and profiles.

Capability Bits

Capability bits are predefined flags corresponding to very specific functional elements that a driver might support. The members of the D3DMCAPSstructure are used by the Direct3D Mobile middleware to record the presence or absence of these flags. By doing this the D3DMCAPS structure contains a complete description of a driver's capabilities.

You can retrieve the capability bits associated with a driver by calling the IDirect3DMobile::GetDeviceCapsor the IDirect3DMobileDevice::GetDeviceCapsmethods. Both of these methods return a D3DMCAPSstructure that describes the exact capabilities of the device.


With Direct3D Mobile profiles, Microsoft defines broad sets of driver features that must be present for a driver to implement a profile. You can write an application using these profiles and be confident that all features in a particular profile are implemented when a driver reports that it supports that profile.

IHVs may be certain that their driver complies with a given profile by using the Windows Embedded CE 6.0 Test Kit (CETK) for Direct3D Mobile. It contains validation tests for each profile that Microsoft defines.

You can query the driver to find out which profiles it supports by calling the IDirect3DMobile::CheckProfilemethod. You can specify which profile to check by using the elements of the D3DMPROFILEenumeration. All Direct3D Mobile drivers must support the base profile, D3DMPROFILE_BASE.

Even if your application is designed around a particular profile, you can still query individual capability bits directly to determine advanced levels of support or to implement special cases.

See Also