A combination of one or more flags that control the device create behavior.
|D3DCREATE_ADAPTERGROUP_DEVICE||Application asks the device to drive all the heads that this master adapter owns. The flag is illegal on nonmaster adapters. If this flag is set, the presentation parameters passed to CreateDevice should point to an array of D3DPRESENT_PARAMETERS. The number of elements in D3DPRESENT_PARAMETERS should equal the number of adapters defined by the NumberOfAdaptersInGroup member of the D3DCAPS9 structure. The DirectX runtime will assign each element to each head in the numerical order specified by the AdapterOrdinalInGroup member of D3DCAPS9.|
|D3DCREATE_DISABLE_DRIVER_MANAGEMENT||Direct3D will manage resources instead of the driver. Direct3D calls will not fail for resource errors such as insufficient video memory.|
|D3DCREATE_DISABLE_DRIVER_MANAGEMENT_EX||Like D3DCREATE_DISABLE_DRIVER_MANAGEMENT, Direct3D will manage resources instead of the driver. Unlike D3DCREATE_DISABLE_DRIVER_MANAGEMENT, D3DCREATE_DISABLE_DRIVER_MANAGEMENT_EX will return errors for conditions such as insufficient video memory.|
|D3DCREATE_DISABLE_PRINTSCREEN||Causes the runtime not register hotkeys for Printscreen, Ctrl-Printscreen and Alt-Printscreen to capture the desktop or window content.
|D3DCREATE_DISABLE_PSGP_THREADING||Restrict computation to the main application thread. If the flag is not set, the runtime may perform software vertex processing and other computations in worker thread to improve performance on multi-processor systems.
|D3DCREATE_ENABLE_PRESENTSTATS||Enables the gathering of present statistics on the device. Calls to GetPresentStatistics will return valid data.
|D3DCREATE_FPU_PRESERVE||Set the precision for Direct3D floating-point calculations to the precision used by the calling thread. If you do not specify this flag, Direct3D defaults to single-precision round-to-nearest mode for two reasons:
|D3DCREATE_HARDWARE_VERTEXPROCESSING||Specifies hardware vertex processing.|
|D3DCREATE_MIXED_VERTEXPROCESSING||Specifies mixed (both software and hardware) vertex processing. For Windows 10, version 1607 and later, use of this setting is not recommended. See D3DCREATE_SOFTWARE_VERTEXPROCESSING.|
|D3DCREATE_SOFTWARE_VERTEXPROCESSING||Specifies software vertex processing. For Windows 10, version 1607 and later, use of this setting is not recommended. Use D3DCREATE_HARDWARE_VERTEXPROCESSING.
|D3DCREATE_MULTITHREADED||Indicates that the application requests Direct3D to be multithread safe. This makes a Direct3D thread take ownership of its global critical section more frequently, which can degrade performance. If an application processes window messages in one thread while making Direct3D API calls in another, the application must use this flag when creating the device. This window must also be destroyed before unloading d3d9.dll.|
|D3DCREATE_NOWINDOWCHANGES||Indicates that Direct3D must not alter the focus window in any way.
|D3DCREATE_PUREDEVICE||Specifies that Direct3D does not support Get* calls for anything that can be stored in state blocks. It also tells Direct3D not to provide any emulation services for vertex processing. This means that if the device does not support vertex processing, then the application can use only post-transformed vertices.|
|D3DCREATE_SCREENSAVER||Allows screensavers during a fullscreen application. Without this flag, Direct3D will disable screensavers for as long as the calling application is fullscreen. If the calling application is already a screensaver, this flag has no effect.
D3DCREATE_HARDWARE_VERTEXPROCESSING, D3DCREATE_MIXED_VERTEXPROCESSING, and D3DCREATE_SOFTWARE_VERTEXPROCESSING are mutually exclusive flags. At least one of these vertex processing flags must be specified when calling CreateDevice.
|Minimum operating system||Windows 98|