Main Site Links Resources Tutorials
News VB Gaming Code Downloads DirectX 7
Contact Webmaster VB Programming Product Reviews DirectX 8
  General Multimedia Articles DirectX 9

DirectDraw: Adapter Information
By: Jack Hoxley
Written: August 2000

Download: DxInfo_src.Zip (14kb)

You may have noticed that several games give you the option of selecting to use the hardware/software renderer AND giving the hardware renderer as the graphics card name; for example on my system "Hardware rendering through 3D Blaster Savage4".

To get your application to do this is extremely simple; and it also adds an extra, very neat feature for identifying graphics cards. Just use this code:

Public Function GetAdapterInfo(ByRef Name As String, ByRef GUID As String)
Dim Info As DirectDrawIdentifier
Set Info = DD.GetDeviceIdentifier(DDGDI_DEFAULT)
Name = Info.GetDescription
GUID = Info.GetDeviceIndentifier
End Function

'Then use the function like so:

Dim CardName as string, CardGUID as string
Call GetAdapterInfo(CardName, CardGUID)

You can now use the card name as any normal string....

But what about the GUID bit? well, this is more important than you may believe - the string returned will be totally unique for the graphics card - all Voodoo 3 2000 PCI cards will have the same GUID and all 3D Blaster Savage4 cards will have the same GUID - but no two (different) cards will have the same GUID. You may well think that you can identify a graphics card using it's name, in theory you could; but it's not guaranteed to be 100% accurate - driver revisions may well change the name slightly (for example).

You may well want to identify the card using the GUID should you know through testing that your game doesn't work ever on a certain card. If you identify the GUID for the problem card you can alert users to this problem before they run the program...

There are other things that you can get from the "DirectDrawIdentifier" type - but most of them are useless really:

Property What it means
GetDescription This is the name of the card
GetDeviceID A number unique to the chipset, this is not unique to the graphics card. Any graphics card that has, for example, an nvidia Riva TNT 2 chipset will have the same value.
GetDeviceIdentifier This is the GUID - we've already discussed this...
GetDriver This returns the name of the driver, almost always the DLL filename...
GetDriverSubVersion Returns the Low part of the version number, you should not use this to track specific cards.
GetDriverVersion Returns the high part of the version number, again, do not use for identification
GetRevision returns the revision of the chipset - not the driver
GetSubSysID Returns a number representing the graphics subsytem. Typically, this means the particular board.
GetVendorID Returns a number representing the manufacturer, such as "Guillemot" or "Creative Labs" - it's only a number though...
GetWHQLLevel The Windows Hardware Quality Level for the current hardware/driver setup

You should now be able to identify everything you'll ever need about the current video card...

DirectX 4 VB 2000 Jack Hoxley. All rights reserved.
Reproduction of this site and it's contents, in whole or in part, is prohibited,
except where explicitly stated otherwise.
Design by Mateo
Contact Webmaster