játékfejlesztés.hu
FórumGarázsprojectekCikkekSegédletekJf.hu versenyekKapcsolatokEgyebek
Legaktívabb fórumozók:
Asylum:    5448
FZoli:    4892
Kuz:    4455
gaborlabor:    4449
kicsy:    4304
TPG:    3402
monostoria:    3284
DMG:    3172
HomeGnome:    2919
Matzi:    2520

Pretender:    2498
szeki:    2440
Seeting:    2306
Geri:    2188
Orphy:    1893
Joga:    1791
Bacce:    1783
MaNiAc:    1735
ddbwo:    1625
syam:    1491
(VB) DX7 DirectDraw - 3. Grafikus kártya információk 2006.05.26 12:22


Grafikus kártya információk



Feltűnhetett már, hogy több játék megadja a választási lehetőséget, hogy hardveres vagy szoftveres renderelést használj, és a hardveres renderelést a grafikuskártya nevével adja meg; például nálam "Hardveres renderelés a 3D Blaster Savage4 használatával" (A cikk 2000-ben íródott - a ford.)

Hogy a te alkalmazásod is tudja ezt egyszerűen megoldható; itt kapsz egy elegáns módszert a grafikus kártyák azonosítására. Használd ezt a kódot:

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.GetDeviceIdentifier
End Function

'A függvényt hívd meg így:

Dim CardName As String, CardGUID As String
Call GetAdapterInfo(CardName, CardGUID)


Ezután a grafikus kártya nevét normál stringként használhatod.

De mi a helyzet a GUID-dal? Nos, ez fontosabb mint hiheted. A string amit visszakapsz teljesen egyedi lesz a grafikus kártyatípusonként: pl. az összes Voodoo2 2000 PCI kártya ugyanolyan GUID-dal rendelkezik. (Különböző típusúaknak értelemszerűen különböző GUID-juk van.) Ha úgy dondolod hogy a nevével azonosítod a kártyákat, megteheted: de nem garantálható, hogy 100% pontos lesz - pl. driver frissítések is cserélhetik a nevet.

Ha a GUID-dal azonosítod a kártyát, és tesztelés közden kiderül, hogy egy adott kártyán nem működik a program, megteheted, hogy lekéred a kártya GUID-ját, és megírod hogy dobjon hibaüzenetet ha ilyen kártyával találkozik.

A DirectDrawIdentifier típusból még több dolgot is megtudhatsz, bár legtöbbjük fölösleges:

TulajdonságLeírás
GetDescriptionA kártya neve
GetDeviceIDA chipsetet azonosító szám, nem azonos a kártyáéval! Pl. az összes NVidia TNT 2 chipset ugyanazt az értéket adja vissza.
GetDeviceIdentifierEz a GUID - már kitárgyaltuk...
GetDriverVisszaadja a driver nevét - ez szinte mindig egy dll fájl neve.
GetDriverSubVersionVisszaadja a driver verziószám végét - ne használd azonosításra
GetDriverVersionVisszaadja a driver verziószám elejét - ezt se használd azonosításra
GetRevisionA chipset verzióját adja meg - nem a driverét
GetSubSysIDVisszaadja a grafikai alrendszer azonosítóját - ez azonosítja magát a kártyát (minden darabé más)
GetVendorIDA kártya gyártóját azonosító szám.
GetWHQLLevelA jelenlegi beállítások Windows Hardware Quality Level-je


Kapcsolódó linkek:
A DirectX4VB oldal
Az eredeti cikk a DirectX4VB oldalon. (Jack Hoxley: DirectDraw: Adapter Information)

Értékelés: 0

Új hozzászólás
kicsy          2006.06.01 04:20
A fordítás VT műve
MaNiAc          2006.05.31 03:31
És ki fordította? Az is kikerülhetett volna
gymisi          2006.05.27 00:46
A srác elég durván nyomja, amiket láttam a blogjában...
TPG          2006.05.26 13:26
Jéé nem is gondoltam volna hogy valaha kikerül ide Jack egyik cikkje. Ő a kedvencem a gamedev.net-ről.