Delphi-PRAXiS
Seite 1 von 2  1 2   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi PC auf Vista Kompatibilität testen (Pixel Shader 2.0) (https://www.delphipraxis.net/84893-pc-auf-vista-kompatibilitaet-testen-pixel-shader-2-0-a.html)

Alex_kfm 23. Jan 2007 12:36


PC auf Vista Kompatibilität testen (Pixel Shader 2.0)
 
Hallo,

ich habe das Forum rauf- und runter durchsucht, doch für mein Problem keine Lösung gefunden. Daher muss ich euch jetzt mal belästigen.

Ich würde gern ein kleines Tool zur Ermittlung der Vista-Tauglichkeit eines PCs erstellen. Das Programm soll nicht kompliziert sein und nur für jeden entscheidenden Punkt OK oder nicht OK ausgeben. Ein PC ist Vista kompatibel wenn er:

- min. 1 GHz CPU (besser 2 GHz)
- min 512 MB RAM
- DirectX 9 kompatible Grafikkarte mit Unterstützung für Pixel Shader 2.0 und 32 Bit pro Pixel.

… hat, recht grob gesagt. Mein Problem ist die Überprüfung der Grafikkarte. Ich habe die WMI Bibliothek durchsucht und auch die Online-Hilfe zu Delphi durchforstet, nirgends eine Möglichkeit den unterstützen Level des Pixel Shaders auszulesen. Zudem habe ich von DirectX keine Ahnung. :?

Hat jemand eine Idee, wie ich an diese Info kommen kann? Ich fand bisher keine konkrete Info, wie und wo man diese Info auslesen kann.

Gruß und Danke,
Alex

JasonDX 23. Jan 2007 12:45

Re: PC auf Vista Kompatibilität testen (Pixel Shader 2.0)
 
Zitat:

Zitat von Alex_kfm
Ich habe die WMI Bibliothek durchsucht und auch die Online-Hilfe zu Delphi durchforstet, nirgends eine Möglichkeit den unterstützen Level des Pixel Shaders auszulesen. Zudem habe ich von DirectX keine Ahnung. :?

Hi

Also um das ganze ueber DirectX zu loesen brauchts nicht viel. Eigentlich lediglich die Header fuers IDirect3D9-Interface. Das enthaelt naemlich die Funktion MSDN-Library durchsuchenGetDeviceCaps, die dir eine Struktur namens MSDN-Library durchsuchenD3DCAPS9 fuellt, in der es wiederum eine Eigenschaft MSDN-Library durchsuchenPixelShaderVersion gibt. Dort steht dann drinnen, welche PS-Version die Grafikkarte maximal unterstuetzt.

Dem ist allerdings noch hinzuzufuegen: PS2.0 ist die Anforderung fuer Aero, nicht fuer Vista. Generell laesst sich Vista wahrscheinlich auf der selben Hardware[*] wie XP installieren. ;)

greetz
Mike
[*]Von der Festplattenkapazitaet abgesehn :?

MagicAndre1981 23. Jan 2007 12:47

Re: PC auf Vista Kompatibilität testen (Pixel Shader 2.0)
 
Dx bietet die möglichkeit die Eigenschaften der Karte abzufragen, damit musst du abfragen welche Shaderversion die Karte kann. Schau dich mal im DxSDK um, ich glaube da war ein C-Beispile dabei um die Eigenschaften auszulesen :gruebel:

// oder das Tool von Ms oder von ATI nehmen

RobertP 23. Jan 2007 13:12

Re: PC auf Vista Kompatibilität testen (Pixel Shader 2.0)
 
Btw son Programm gibts schon von Microsoft :wink:

Alex_kfm 23. Jan 2007 13:13

Re: PC auf Vista Kompatibilität testen (Pixel Shader 2.0)
 
Hallo JasonDX,

erst einmal vielen Dank für die schnelle und ausführliche Hilfe. Das hört sich schon einmal gut an. Zwei Fragen hab ich da aber noch. Ich bin noch Delphi Anfänger, entschuldige also die etwas „grundlegenden“ Fragen ;-)

- Woher bekomme ich die Header fürs IDirect3D9-Interface, die C-Header aus dem Microsoft SDK werden wohl nicht gehen…
- Hast du vielleicht ein Delphi Beispiel parat, wo man den Aufruf von solchen DirectX Aufrufen mal sehen kann?

Bei den Anforderungen hast du natürlich recht, ich meinte auch die Kompatibilität mit Aero. ;-)

Gruß,
Alex

Alex_kfm 23. Jan 2007 13:16

Re: PC auf Vista Kompatibilität testen (Pixel Shader 2.0)
 
Zitat:

Zitat von MrPayne
Btw son Programm gibts schon von Microsoft :wink:

Stimmt, von ATI auch. Doch ich will nur eine kleine Anwendung ohne überladene Informationen. Wie ne Ampel: Passt, passt evtl., passt nicht.

JasonDX 23. Jan 2007 13:31

Re: PC auf Vista Kompatibilität testen (Pixel Shader 2.0)
 
Zitat:

Zitat von Alex_kfm
Woher bekomme ich die Header fürs IDirect3D9-Interface, die C-Header aus dem Microsoft SDK werden wohl nicht gehen…

Nein, da hast du Recht, mit den C-Headern kann man unter Delphi nicht allzuviel anfangen. Es gibt aber Leute, die sich die Muehe gemacht haben, die Header zu uebersetzen. Eine Version davon findest du hier.
Zitat:

Zitat von Alex_kfm
Hast du vielleicht ein Delphi Beispiel parat, wo man den Aufruf von solchen DirectX Aufrufen mal sehen kann?

Nein, leider nicht. Die DX-Quellcodes die ich hier hab sind entweder C oder C#, aber es sollte eigentlich ziemlich dem entsprechen:
Delphi-Quellcode:
function SupportsPS2(): boolean;
var
  D3D: IDirect3D9;
  Caps: D3DCAPS9;
begin
  D3D := Direct3DCreate9(D3D_SDK_VERSION);
  if (Failed(D3D.GetDeviceCaps(0, D3DDEVTYPE_HAL, Caps))) then
    result := false
  else
    result := (Caps.PixelShaderVersion and $FFFF) >= $0200;
  D3D.Release();
end;
greetz
Mike

RainerO 23. Jan 2007 13:32

Re: PC auf Vista Kompatibilität testen (Pixel Shader 2.0)
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,

ich hab da noch ein wenig Code gefunden, der das Shadermodell abfragt, leider weiss ich nicht genau, wo der herkommt, kann also keinen Dank einfügen. Wenn ich mich recht erinnere (ich hab den code benutzt, um auf Kundenrechnern die Hardware zu testen), kann es ein paar fehler geben, die nicht abgefragt werden, muss also getestet werden. Code mit Beispiel im Anhang.

ciao

ups - das mit dem Anhang muss ich noch üben..

RainerO 23. Jan 2007 13:41

Re: PC auf Vista Kompatibilität testen (Pixel Shader 2.0)
 
Ergänzung - ein Prob war auf jeden Fall, wenn auf dem PC KEIN direkt3d9 installiert war :cyclops:

Alex_kfm 24. Jan 2007 09:30

Re: PC auf Vista Kompatibilität testen (Pixel Shader 2.0)
 
Hallo JasonDX und RainerO,

euch beiden noch einmal einen besonders herzlichen Dank. Ihr habt mich auf den richtigen Weg gebracht. Es scheint zu funktionieren, werde jetzt erst einmal zusehen, dass ich die Abrage auf möglichst vielen PCs teste.. bei den meisten meiner alten PCs und natürlich im VMware gibts eine Pixel Shader Version 0.0 ;-)

Das mit dem DirectX 9 ist klar. Ich werde mal zusehen, dass ich vorher abfrage, ob die richtige DirectX Version überhaupt installiert ist. Weiss jemand zufällig auf die Schnelle, wie man das am sinnvollsten macht? Ich könnte ja auf das Vorhandensein der d3dx9.dll prüfen, doch das scheint mir eine wenig saubere Methode zu sein.

Gruß und Danke,
Alex


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:21 Uhr.
Seite 1 von 2  1 2   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz