IDirect3DDevice9Ex interface

Applications use the methods of the IDirect3DDevice9Ex interface to render primitives, create resources, work with system-level variables, adjust gamma ramp levels, work with palettes, and create shaders. The IDirect3DDevice9Ex interface derives from the IDirect3DDevice9 interface.


The IDirect3DDevice9Ex interface has these methods.

Method Description
IDirect3DDevice9Ex::CheckDeviceState Reports the current cooperative-level status of the Direct3D device for a windowed or full-screen application.
IDirect3DDevice9Ex::CheckResourceResidency Checks an array of resources to determine if it is likely that they will cause a large stall at Draw time because the system must make the resources GPU-accessible.
IDirect3DDevice9Ex::ComposeRects Copy a text string to one surface using an alphabet of glyphs on another surface. Composition is done by the GPU using bitwise operations.
IDirect3DDevice9Ex::CreateDepthStencilSurfaceEx Creates a depth-stencil surface.
IDirect3DDevice9Ex::CreateOffscreenPlainSurfaceEx Create an off-screen surface.
IDirect3DDevice9Ex::CreateRenderTargetEx Creates a render-target surface.
IDirect3DDevice9Ex::GetDisplayModeEx Retrieves the display mode's spatial resolution, color resolution, refresh frequency, and rotation settings.
IDirect3DDevice9Ex::GetGPUThreadPriority Get the priority of the GPU thread.
IDirect3DDevice9Ex::GetMaximumFrameLatency Retrieves the number of frames of data that the system is allowed to queue.
IDirect3DDevice9Ex::PresentEx Swap the swapchain's next buffer with the front buffer.
IDirect3DDevice9Ex::ResetEx Resets the type, size, and format of the swap chain with all other surfaces persistent.
IDirect3DDevice9Ex::SetConvolutionMonoKernel Prepare the texture sampler for monochrome convolution filtering on a single-color texture.
IDirect3DDevice9Ex::SetGPUThreadPriority Set the priority on the GPU thread.
IDirect3DDevice9Ex::SetMaximumFrameLatency Set the number of frames that the system is allowed to queue for rendering.
IDirect3DDevice9Ex::TestCooperativeLevel Reports the current cooperative-level status of the Direct3D device for a windowed or full-screen application.
IDirect3DDevice9Ex::WaitForVBlank Suspend execution of the calling thread until the next vertical blank signal.


The IDirect3DDevice9Ex interface is obtained by calling IDirect3D9Ex::CreateDeviceEx.

The LPDIRECT3DDEVICE9EX and PDIRECT3DDEVICE9EX types are defined as pointers to the IDirect3DDevice9Ex interface:

typedef struct IDirect3DDevice9Ex *LPDIRECT3DDEVICE9EX, *PDIRECT3DDEVICE9EX;

Creating a Device

Follow these two steps to initialize a Direct3D device:
  1. Call Direct3DCreate9Ex to create the Direct3D object.
  2. Call CreateDeviceEx to create the Direct3D device.
Here is an example:

IDirect3D9Ex *pDirect3DEx;

Direct3DCreate9Ex(D3D_SDK_VERSION, &pDirect3DEx);
pDirect3DEx->CreateDeviceEx(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd, behaviorFlags, &d3dpp, NULL, &pDeviceEx);


Target Platform Windows
Header d3d9.h

See Also

Direct3D Interfaces