D2D1CreateDevice function (d2d1_1.h)

Creates a new Direct2D device associated with the provided DXGI device.


HRESULT D2D1CreateDevice(
  [in]           IDXGIDevice                    *dxgiDevice,
  [in, optional] const D2D1_CREATION_PROPERTIES *creationProperties,
  [out]          ID2D1Device                    **d2dDevice


[in] dxgiDevice

The DXGI device the Direct2D device is associated with.

[in, optional] creationProperties

The properties to apply to the Direct2D device.

[out] d2dDevice

When this function returns, contains the address of a pointer to a Direct2D device.

Return value

The function returns an HRESULT. Possible values include, but are not limited to, those in the following table.

HRESULT Description
S_OK No error occurred.
E_OUTOFMEMORY Direct2D could not allocate sufficient memory to complete the call.
E_INVALIDARG An invalid value was passed to the method.


This function will also create a new ID2D1Factory1 that can be retrieved through ID2D1Resource::GetFactory.

If the creation properties are not specified, then d2dDevice will inherit its threading mode from dxgiDevice and debug tracing will not be enabled.


Requirement Value
Minimum supported client Windows 8 and Platform Update for Windows 7 [desktop apps | UWP apps]
Minimum supported server Windows Server 2012 and Platform Update for Windows Server 2008 R2 [desktop apps | UWP apps]
Target Platform Windows
Header d2d1_1.h
DLL D2d1.dll

See also