Windows Graphics Documentation

DXGI Interfaces

The DirectX Graphics Infrastructure (DXGI) provides a set of interfaces that enable applications to interact with graphics hardware and display adapters. These interfaces abstract low-level details, allowing for more consistent and robust graphics programming across different hardware and driver versions.

Key DXGI Interfaces

Below is a list of some of the most important DXGI interfaces and their primary roles:

  • IDXGIFactory: The entry point for DXGI. It allows enumeration of adapters and output surfaces, and creation of DXGI objects.
  • IDXGIAdapter: Represents a graphics adapter (GPU) in the system. It provides information about the adapter's capabilities and allows for enumeration of its outputs.
  • IDXGIOutput: Represents a display output connected to an adapter. It allows for querying display modes, monitor information, and managing full-screen transitions.
  • IDXGISwapChain: Manages the presentation of rendered frames to the screen. It handles buffer flipping and V-Sync.
  • IDXGIDevice: Represents a DXGI device, which is typically derived from a Direct3D device. It provides access to low-level DXGI functionality associated with that device.
  • IDXGIResource: A base interface for DXGI objects that represent resources like textures and buffers.

Interface Hierarchy and Relationships

DXGI interfaces often form a hierarchical structure. For example, you typically start with an IDXGIFactory to enumerate IDXGIAdapter objects, and from each adapter, you can enumerate IDXGIOutput objects. A IDXGISwapChain is usually created via the IDXGIFactory and is associated with an IDXGIDevice.

Further Reading

Understanding these interfaces is fundamental to leveraging the full power of DirectX for graphics development on Windows.

Related Topics