ZFX
ZFX Neu
Home
Community
Neueste Posts
Chat
FAQ
IOTW
Tutorials
Bücher
zfxCON
ZFXCE
Mathlib
ASSIMP
NES
Wir über uns
Impressum
Regeln
Suchen
Mitgliederliste
Membername:
Passwort:
Besucher:
4422653
Jetzt (Chat):
30 (0)
Mitglieder:
5239
Themen:
24223
Nachrichten:
234554
Neuestes Mitglied:
-insane-

ZFX
Coding-Foren
DirectX API
Enumeration von DX9
GepinntSeite: 1 2 3 >
AutorThema
Hunter Offline
ZFX'ler


Registriert seit:
20.05.2002

Deutschland
Enumeration von DX9Nach oben.
Hi,

ich habe da ein Problem ich habe irgentwie keine Ahnung wie ich bei DX9 damit anfangen kann.

Also ich habe es so weit das er alle Adapter durchgeht aber wie soll ich das Mit den Display modes machen dort muss man ja angeben welches Format genutzt werden soll aber wo bekomme ich her welche der Adapter unterstützt???

irgentwie komme ich auf keinen grünen Zweig wie mahct ihr das???

Danke
04.01.2003, 22:15:13 Uhr
Eisflamme Offline
ZFX'ler


Registriert seit:
26.05.2002

Nordrhein-Westfalen
Re: Enumeration von DX9Nach oben.
Das ist einfacher, als man denkt

Ich benutze z.B. für 32 BIT einfach immer als Modus X8R8G8B8, das unterstützt jeder Adaopter, der auch 32 BIT unterstützt und auf alle Fälle eher als A8R8G8B8 (IMVHO).
Und als 16 BIT: D3DFVF_R5G6B5, sollte auch jeder Adapter unterstützen.
Klappt jedenfalls vorzüglich

MfG MAV
04.01.2003, 22:38:27 Uhr
Mihahome Revolution 2.0
Stefan Zerbst Offline
Administrator


Registriert seit:
25.02.2002

Deutschland
Re: Enumeration von DX9Nach oben.
Hi,

dem SDK liegt doch ein Beispiel bei? Falls es gewünscht wird können wir ja wieder ein Tutorial dazu bringen, aber da der Code auch im SDK ist wiess ich nicht, ob das viel Sinn machen würde?

caio,
Stefan
04.01.2003, 22:47:57 Uhr
ZFX - 3D Entertainment
Hippokrates Offline
ZFX'ler


Registriert seit:
15.09.2002

Niedersachsen
121891811
Re: Enumeration von DX9Nach oben.
Ich hatte mir überlegt, ob ich eines schreibe, weil der Code im SDK absolut unlesbar ist. Zumindest für mich.
04.01.2003, 22:49:08 Uhr
jigga Offline
ZFX'ler


Registriert seit:
12.05.2002

Deutschland
79266204
Re: Enumeration von DX9Nach oben.
HRESULT EnumAdapterModes( UINT Adapter,
D3DFORMAT Format,
UINT Mode,
D3DDISPLAYMODE* pMode
);
Parameters

Adapter
[in] Ordinal number denoting the display adapter to enumerate. D3DADAPTER_DEFAULT is always the primary display adapter. This method returns D3DERR_INVALIDCALL when this value equals or exceeds the number of display adapters in the system.
Format
[in] Allowable pixel formats. The application specifies a pixel format, and the enumeration is restricted to those display modes that exactly match the format. Valid formats are: D3DFMT_X8R8G8B8, D3DFMT_A8R8G8B8, D3DFMT_A2R10G10B10, D3DFMT_X1R5G5B5, D3DFMT_A1R5G5B5, and D3DFMT_R5G6B5, which are members of D3DFORMAT.
Mode
[in] Represents the adapter mode. This must be set to the display-mode index, which must be in the range of zero to one less than the value returned by IDirect3D9::GetAdapterModeCount. See Remarks.
pMode
[out] Array of display modes. Each is of type D3DDISPLAYMODE.

Sonst einfach mal die D3DEnumeration.cpp angucken
Da ist die komplette Enumeration in einer Klasse

[edit]
Wieso denn ein Tutorial??
Ich denke mal das nen Tutor nur Sinn macht wenn es noch keins gibt.. aber wenn man Zerbies Tutor ( http://www.zfx.info/Tutorials.php?ID=5 )
erstmal gelesen hat ist es kein problem die Enumeration für DXG9 umzuschreiben...

Naja... vielleicht Irre ich mich auch! Aber wenn jemand die Enumeration nicht hinbekommt sollte er mal Zerbies Tutor lesen... So nu hab ich ne viertel Seite dazugeschrieben und doch immer nur das selbe gesagt

[edit2]
@Hippo:
Die Klasse ist eigentlich sehr einfach zu verstehen... man muss sich nur hinsetzen und Zeile für Zeile mitm SDK zusammen durchgehen
04.01.2003, 22:50:25 Uhr
Hunter Offline
ZFX'ler


Registriert seit:
20.05.2002

Deutschland
Re: Enumeration von DX9Nach oben.
Ich bin eigentlich auch der meinung das die Klasse im vergleich zu der aus dem SDK von 8.1 wesentlich komnplizierter.

Gibt es nicht eine Möglichkeit die Verfügbaren Modes zu bekommen damit wäre es ja leichter da man dan diese durchgehen kann oder einfach alle verwenden ???
04.01.2003, 23:35:57 Uhr
Hippokrates Offline
ZFX'ler


Registriert seit:
15.09.2002

Niedersachsen
121891811
Re: Enumeration von DX9Nach oben.
Nun, ich habe es auch ohne diese Klasse geschafft. Ich habe sie mir einmal angesehen, aber war ziemlich fix abgeschreckt *g*

@Hunter:
Um an alle Modi zu kommen, kannst du einfach eine Schleife über alle AdapterFormate laufen lassen.

Code:
D3DFORMAT AdapterFormats[] = {D3DFMT_X8R8G8B8, D3DFMT_A8R8G8B8, 
D3DFMT_A2R10G10B10, D3DFMT_X1R5G5B5, D3DFMT_A1R5G5B5, 
D3DFMT_R5G6B5};

for(UINT iAdapterFormat = 0; iAdapterFormat < 6; iAdapterFormat++) {
  //Testen ob das Adapterformat unterstützt wird
  if(pDirect3D->GetAdapterModeCount(iAdapter, AdapterFormats[iAdapterFormat]) > 0) {...

05.01.2003, 00:02:36 Uhr
Hunter Offline
ZFX'ler


Registriert seit:
20.05.2002

Deutschland
Re: Enumeration von DX9Nach oben.
Danke das ist eigentlich logisch aber ich habe mal wieder total falsch gedacht *grrrrrrrr*
05.01.2003, 12:41:04 Uhr
Stefan Zerbst Offline
Administrator


Registriert seit:
25.02.2002

Deutschland
Re: Enumeration von DX9Nach oben.
Hi,

in der Tutorial Sektion auf unserer Homepage findet sich nun ein Tutorial über die Enumeration bei Direct3D 9

Ciao,
Stefan
05.01.2003, 14:21:26 Uhr
ZFX - 3D Entertainment
ChrisM Offline
ZFX'ler


Registriert seit:
16.03.2002

Rheinland Pfalz
65348179
Re: Enumeration von DX9Nach oben.
GEIL ZERBIE!!!!!!!!!!!!

Werd ich sofort einbauen

ChrisM
05.01.2003, 14:23:29 Uhr
ChrisMs Baustelle
Stefan Zerbst Offline
Administrator


Registriert seit:
25.02.2002

Deutschland
Re: Enumeration von DX9Nach oben.
Hi,

hey, das ist doch nicht von mir Glücklicherweise gibt es auch andere Leute, die Tutorials schreiben. Sonst hätte ich ja verdammt viel zu tun.

Ciao,
Stefan
05.01.2003, 14:46:33 Uhr
ZFX - 3D Entertainment
ChrisM Offline
ZFX'ler


Registriert seit:
16.03.2002

Rheinland Pfalz
65348179
Re: Enumeration von DX9Nach oben.
Ich weiß, aber ohne ZFX hätte ich es nicht.

ChrisM
05.01.2003, 14:54:45 Uhr
ChrisMs Baustelle
jigga Offline
ZFX'ler


Registriert seit:
12.05.2002

Deutschland
79266204
Re: Enumeration von DX9Nach oben.
Hab das Tutor mal eben überflogen... Da wird aber nicht von wegen Stencil Buffer oder Multisampling enumeriert, oder? Also ich konnte das so aufm ersten Blick nicht sehen...
05.01.2003, 14:59:11 Uhr
ChrisM Offline
ZFX'ler


Registriert seit:
16.03.2002

Rheinland Pfalz
65348179
Re: Enumeration von DX9Nach oben.
Nein, aber das ist nicht weiter schwer (finde ich).
Du rufst mit GetDeviceCaps() die Device Capabilities ab und siehst dann, was das Device kann. Wenn das Device z.B. halt keinen Stencil Buffer hat, nimmst du es einfach nicht in die Liste auf (oder setzt einen Hinweis hinter den Devicenamen oder sowas ).

ChrisM
05.01.2003, 15:06:42 Uhr
ChrisMs Baustelle
Patrick Offline
ZFX'ler


Registriert seit:
25.02.2002

Deutschland
143040199
Re: Enumeration von DX9Nach oben.
Geiles Tutorial!!!!!!!!!!!!!!!!!!!

Sehr sehr hilfreich, vorallem jetzt bin ich dahinter gekommen wie man seine Auswahl abspeichert und sie wieder läd!!!
05.01.2003, 15:08:51 Uhr
GermanGameDev
jigga Offline
ZFX'ler


Registriert seit:
12.05.2002

Deutschland
79266204
Re: Enumeration von DX9Nach oben.
Zitat:
Nein, aber das ist nicht weiter schwer (finde ich).
Du rufst mit GetDeviceCaps() die Device Capabilities ab und siehst dann, was das Device kann. Wenn das Device z.B. halt keinen Stencil Buffer hat, nimmst du es einfach nicht in die Liste auf (oder setzt einen Hinweis hinter den Devicenamen oder sowas ).

ChrisM


Mhh.... ich mache das mit der CheckDeviceFormat Methode...
Achso... In den Caps sollte man dann noch prüfen ob der Adapter nen PureDevice...

Dann ist die Enumeration glaube ich vollständig!
Achso... mit CehckDeviceMultiSampleType kann man das Multisampling testen...

mehr habe ich bei meiner Enumeration auch nicht...
05.01.2003, 16:09:36 Uhr
Eisflamme Offline
ZFX'ler


Registriert seit:
26.05.2002

Nordrhein-Westfalen
Re: Enumeration von DX9Nach oben.
Übernehmt es lieber von Zerbies Tutorial.
Ich habe mich Tage zu Tode geschuftet, als ich versucht habe es anhand der SDK hinzubekommen. X-(

mfG MAV
06.01.2003, 18:53:10 Uhr
Mihahome Revolution 2.0
ChrisM Offline
ZFX'ler


Registriert seit:
16.03.2002

Rheinland Pfalz
65348179
Re: Enumeration von DX9Nach oben.
Du weißt aber schon, dass Zerbie Enumeration großteils auf dem Sample aus dem SDK basiert?

ChrisM
06.01.2003, 19:06:42 Uhr
ChrisMs Baustelle
Crash32 Offline
ZFX'ler


Registriert seit:
20.10.2002

Thüringen
10763955
Re: Enumeration von DX9Nach oben.
zum glück haben die götter copy&past erfunden, sonst müßte man ja alles selber coden, und würde mitkriegen was für ein Lamer man ist!
06.01.2003, 23:31:39 Uhr
-
xcvb Offline
ZFX'ler


Registriert seit:
09.06.2002

Deutschland
Re: Enumeration von DX9Nach oben.
das tutorial ist auch dahingehend unbefriedigend, da man einfach bei 16 oder 32 bit nen haken setzt, ohne das es geprüft wird. 32bit z-buffer bei 16 farbtiefe laufen auf ner gf2 nämlich nicht.

einmal anders [code update 30.01.03]:
http://www.freakconnection.de/d3d9enum.zip
26.01.2003, 20:56:13 Uhr
Linksammlung
dryas Offline
ZFX'ler


Registriert seit:
28.01.2003

Nordrhein-Westfalen
20320644
Re: Enumeration von DX9Nach oben.
Hallo,

mmmh... über EnumAdapterModes kann ich also abfragen was die GraKa alles kann... Ich versteh im Moment noch nicht so 100%ig wie ich die nun abfrage... Sorry, bin quasi Beginner.

Wenn ich z.B. wissen will welche Antialiasing Möglichkeiten die GraKa kann (2x,4x,6x,8x etc.), wie frage ich das ab?

Benny
30.01.2003, 19:52:40 Uhr
Linuworx.de
xcvb Offline
ZFX'ler


Registriert seit:
09.06.2002

Deutschland
Re: Enumeration von DX9Nach oben.
@enumeration: dazu gibts das tutorial, da wird der ganze code beschrieben. in meinem post vor deinem findest du noch nen download mit nem enumerationscode (unkommentiert).

@antialiasing: siehe jiggas post vom 05.01.
30.01.2003, 20:16:59 Uhr
Linksammlung
dryas Offline
ZFX'ler


Registriert seit:
28.01.2003

Nordrhein-Westfalen
20320644
Re: Enumeration von DX9Nach oben.
Hallo,

ja @ jiggas post. Aaaaaaaaber: wie genau wende ich GetDeviceCaps an? Sorry, aber es ist noch kein Meister vom Himmel gefallen...

Benny

30.01.2003, 23:18:02 Uhr
Linuworx.de
dryas Offline
ZFX'ler


Registriert seit:
28.01.2003

Nordrhein-Westfalen
20320644
Re: Enumeration von DX9Nach oben.
Hallo,

was ich über VSync nun rausgefunden hab ist, daß es keine direkte DirectX Funktion ist, also das es softwaregesteuert ist... das soll mit folgenden Funktionen funktionieren:

The function to do this looks like this:

void vsync(void)
{
// wait for verticle retrace to avoid flicker
while (inportb(0x3da) & 0x08);
/* vga is in retrace */
while (!(inportb(0x3da) & 0x08));
/* wait for start of retrace */
}

Then all you need to do is modify your do-while loop in main() to look like this:

do
{
set_hot(); // generate random hotspots
mk_lines(); // do all the math and screen updating
vsync();
flip(); // move your new frame to the video screen
} while(!kbhit());

stimmt das so? Also ist diese Funktion von der Grafikkarte vollkommen unabhängig? Ich seh euch schon alle vor Lachen zusammenbrechen... ;-)

BTW: Wie ich AntiAliasing abfrage (was die Karte kann) und dann anwende hab ich bisher noch nicht rausgefunden... erbarme sich doch einer... ;-(

Benny
31.01.2003, 15:57:16 Uhr
Linuworx.de
xcvb Offline
ZFX'ler


Registriert seit:
09.06.2002

Deutschland
Re: Enumeration von DX9Nach oben.
CehckDeviceMultiSampleType zum abfragen der mutlisamplefähigkeiten.

vsync stellt man über D3DPRESENT_PARAMETERS.PresentationInterval mit D3DPRESENT_INTERVAL_ONE (vsync) oder D3DPRESENT_INTERVAL_IMMEDIATE (ohne sync). es gibt auch noch D3DPRESENT_INTERVAL_TWO, ..._THREE, ..._FOUR

andere fähigkeiten kann man über GetDeviceCaps abfragen.
31.01.2003, 16:08:34 Uhr
Linksammlung
GepinntSeite: 1 2 3 >


ZFX Community Software, Version 0.9.1
Copyright 2002-2003 by Steffen Engel