Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Database Mini JLI'ler
Anmeldedatum: 20.11.2004 Beiträge: 24 Wohnort: Hinter den sieben Bergen Medaillen: Keine
|
Verfasst am: 25.01.2006, 02:27 Titel: HAL_VERTEXPROCESSING |
|
|
Ich brauche dringend Hilfe. Nehmen wir mal an ich habe ein DirectX9 Object names pD3D.
Wie kann ich jetzt den Adapter abfragen, ob er fähig ist HAL_VERTEXPROCESSING auszuführen?
Welche Funktionen muss ich hierfür verwenden. Eine Erklärung wäre echt Spitze.
Vielen Dank,
Alex |
|
Nach oben |
|
 |
KI JLI Master

Alter: 39 Anmeldedatum: 04.07.2003 Beiträge: 965 Wohnort: Aachen Medaillen: Keine
|
Verfasst am: 25.01.2006, 11:47 Titel: |
|
|
Am einfachsten ist es, du versuchst einfach das Device mit D3DCREATE_HARDWARE_VERTEXPROCESSINGzu erstellen und überprüfst danach, ob dein pD3DDevice == null ist.
Wenn ja, ist die Funktion fehlgeschlagen und du initialisierst es mit D3DCREATE_SOFTWARE_VERTEXPROCESSING.
Ansonsten musst du die DeviceCaps überprüfen. |
|
Nach oben |
|
 |
Database Mini JLI'ler
Anmeldedatum: 20.11.2004 Beiträge: 24 Wohnort: Hinter den sieben Bergen Medaillen: Keine
|
Verfasst am: 25.01.2006, 13:13 Titel: |
|
|
Danke schoen, dass ist genau das was ich gesucht habe.
Kann mir jemand vielleicht auch ein bisschen Code geben.
Vielen Dank |
|
Nach oben |
|
 |
KI JLI Master

Alter: 39 Anmeldedatum: 04.07.2003 Beiträge: 965 Wohnort: Aachen Medaillen: Keine
|
Verfasst am: 25.01.2006, 14:12 Titel: |
|
|
CPP: | if(FAILED(m_pDirect3D9->CreateDevice(
D3DADAPTER_DEFAULT,
D3DDEVTYPE_HAL,
hWnd,
D3DCREATE_HARDWARE_VERTEXPROCESSING,
&d3dPresentParams,
&m_pDevice)))
{
// Falls CreateDevice beim ersten Mal fehlgeschlagen ist,
// versuche es nochmal mit D3DCREATE_SOFTWARE_VERTEXPROCESSING
if(FAILED(m_pDirect3D9->CreateDevice(
D3DADAPTER_DEFAULT,
D3DDEVTYPE_HAL,
hWnd,
D3DCREATE_SOFTWARE_VERTEXPROCESSING,
&d3dPresentParams,
&m_pDevice)))
{
// Falls das auch fehlschlägt, hier Fehlerbehandlung einfügen
// z.B. return false;
}
} |
FAILED ist übrigens eine praktische Präprozessor Definition
edit: vorher natürlich m_pDevice als LPDIRECT3DDEVICE9 deklarieren und auf null setzen, sowie d3dPresentParams initiealisieren... siehe Buch. |
|
Nach oben |
|
 |
Jonathan_Klein Living Legend

Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 25.01.2006, 14:32 Titel: |
|
|
HRESULT GetDeviceCaps( UINT Adapter,
D3DDEVTYPE DeviceType,
D3DCAPS9 *pCaps
);
Damit kannste so ziemlic alles ws die Grafikkarte kann abfragen (in der Doku danach suchen).
Es gibt auch dne DX CpasViewer da kansnte dir schonmal so die Daten deiner Grafikkarte abfragen, quasi so als übersicht. Du kannst es natürlich so machen wie KI aber wer rennt schon gegen ne Tür um zu gucken ob sie auf ist?
Nagut, es ist natürlich 10 mal einfacher aber äh, es geht ums Prinzip! _________________ https://jonathank.de/games/ |
|
Nach oben |
|
 |
Jones Senior JLI'ler

Alter: 33 Anmeldedatum: 03.03.2005 Beiträge: 208 Wohnort: Köln Medaillen: Keine
|
Verfasst am: 25.01.2006, 15:06 Titel: |
|
|
mit D3DCREATE_HARDWARE_VERTEXPROCESSING und D3DCREATE_SOFTWARE_VERTEXPROCESSING hatte ich letzten ne lustige sache.
Zitat: | [16:47] <Jones> wenn ich 800 texturequads erstlle und zeichne mit Hardwarevertexprocessing hab ich ne framerate von 28, mit Softwarevertexprocessing hab ich ne framerate von 85fps(enspricht der bildschirmwiederholfrequenz). mit meiner vorherigen sprite klasse habe ich ein framerate von 30fps bei 800 objekten nur dauert es erstmal ein bisschen bevor etwas angezeigt wird |
|
|
Nach oben |
|
 |
|