How to use GraphicsAdapter in XNA

In this article I will show you how to use GraphicsAdapter.


Before that lets talk about what it means:

A graphics adapter is a video card that fits into the video slot or interface on a computer motherboard. Video interfaces have evolved over the years, most recently from Advanced Graphics Port (AGP) and all its flavors, to Peripheral Component Interconnect Express, or PCI Express (PCIe). The newer interface allows for faster rendering of images to meet standards that are becoming increasingly demanding.

GraphicsAdapter helps us to get Information about Graphics Adapters that we have on our pcand provides methods to retrieve and manipulate graphics adapters.

Lets take a look at its structure:

Adapters: Collection of available adapters on the system.

To get all the available Adapters use this code;

foreach (GraphicsAdapter e inGraphicsAdapter.Adapters)
{
   Window.Title +=e.DeviceName;
}


image1.gif

CurrentDisplayMode: Gets the current display mode.

To get infos about DisplayModes use this;

GraphicsAdapter e=graphics.GraphicsDevice.Adapter;
Window.Title = "Width: " + e.CurrentDisplayMode.Width +
" Height: " + e.CurrentDisplayMode.Height;

image2.gif

DefaultAdapter: Gets the default adapter.

To work with DefaultAdapter use this kind of code;

Window.Title= GraphicsAdapter.DefaultAdapter.DeviceName;
Window.Title += " Graphics Card->" + GraphicsAdapter.DefaultAdapter.Description;

image3.gif

We get our DeviceName and the description of the Graphics Adapter.

Description: Retrieves a string used for presentation to the user.

As we have made a sample about Description earlier,it gives us the name of your 3D Graphics Adapter(ATI Mobility Radeon HD 3650 in one of my laptop for example)

DeviceId: Retrieves a value that is used to help identify a particular chip set.

Using this code,we can get the id of the graphics adapter;

GraphicsAdapter e = graphics.GraphicsDevice.Adapter;
Window.Title = e.DeviceId.ToString();

image4.gif

DeviceName: Retrieves a string that contains the device name for a Microsoft Windows Graphics Device Interface (GDI).

Using this code you can get the DeviceName of the Graphics Adapter;

GraphicsAdapter e = graphics.GraphicsDevice.Adapter;
Window.Title = e.DeviceName;


image5.gif

IsDefaultAdapter: Determines if this instance of GraphicsAdapter is the default adapter.

Using this code you can get whether its Default Adapter or not.

GraphicsAdapter e = graphics.GraphicsDevice.Adapter;
if (e.IsDefaultAdapter)
{
   Window.Title = "Default Adapter";
}
else
{
  Window.Title = "Not Default Adapter";
}


image6.gif

IsWideScreen: Determines if the graphics adapter is in widescreen mode.

Using this code you can determine if Adapter is in widescreen mode:

GraphicsAdapter e = graphics.GraphicsDevice.Adapter;
if (e.IsWideScreen)
{
   Window.Title = "Wide Screen!";
}
else
{
   Window.Title="Not Wide Screen!";
}


MonitorHandle: Retrieves the handle of the monitor associated with the Microsoft Direct3D object.

Using this code you can get the String value of Pointer variable MonitorHandle;

GraphicsAdapter e = graphics.GraphicsDevice.Adapter;
Window.Title = e.MonitorHandle.ToString();

image7.gif

Revision: Retrieves a value used to help identify the revision level of a particular chip set.

Using this code you can get the integer value of chip set;

GraphicsAdapter e = graphics.GraphicsDevice.Adapter;
Window.Title = e.Revision.ToString();

image8.gif

SubSystemId: Retrieves a value used to identify the subsystem.

Using this code you can get the integer value of the subsystem;

GraphicsAdapter e = graphics.GraphicsDevice.Adapter;
Window.Title = e.SubSystemId.ToString();

image9.gif

SupportedDisplayModes: Returns a collection of supported display modes for the current adapter.

Using this code you can get all the Supported Display Modes;

GraphicsAdapter e = graphics.GraphicsDevice.Adapter;
foreach (DisplayMode c in e.SupportedDisplayModes)
{
MessageBox.Show("Height: " + c.Height + " Width: " + c.Width);               
}


By executing this code you will get all the available Display Modes in Graphics Adapter.

*Add System.Windows.Forms for "MessageBox.Show"

VendorId: Retrieves a value used to identify the manufacturer.

Using this code you can get the Vendor ID;

GraphicsAdapter e = graphics.GraphicsDevice.Adapter;
Window.Title = e.VendorId.ToString();

image10.gif

4098 is the id of ATI

Hope you like this article.

This article will be updated later for more information's.