#1 04.06.2005 07:58:33

MexDelphi
ProMember
Ort: Göppingen
Registriert: 24.01.2005
Beiträge: 235
Web-Seite

[DirectX] Enumeration

Hallo,

mein Enumerationstutorial, wurde zwar schonmal gepostet, soll aber auch
in der richtigen Rubrik stehen smile

***
Um die Grafikkarte und ihre Fähigkeiten zu erforschen, hat Microsoft die Enumeration erfunden. Für die meisten kleineren 3D-Projekte (Bildschirmschoner etc.) reicht es vollkommen aus, die 5 Schritte aus dem DX-SDK als Initialisierung auszuführen und sich eine aufwändige Enumeration zu sparen.  Für alle anderen ist dieses Tutorial gedacht.
Im Gegensatz zu anderen Enumerationen, wird bei dieser Klasse KEINE vorauswahl getroffen. Es werden ALLE zulässigen Kombinationen enumeriert und in die Datenstrukture gespeichert, so dass ein späterer Zugriff problemlos möglich ist ohne ein erneutes enumerieren.
***


Attachments:
Attachment Icon MexDelphis Enumerations-Tutorial Unit.pdf, Größe: 56,475 bytes, Downloads: 1,952
Attachment Icon MexDelphis Enumerations-Tutorial Part 2.pdf, Größe: 80,270 bytes, Downloads: 1,460
Attachment Icon MexDelphis Enumerations-Tutorial Part 1.pdf, Größe: 112,066 bytes, Downloads: 1,427

goto: http://mexdelphi.cybton.com

Offline

 

#2 31.07.2006 07:28:04

nitschchedu
Member
Registriert: 16.03.2006
Beiträge: 36
Web-Seite

Re: [DirectX] Enumeration

So nun mal eine Kredik an das Tutorial.
Erstmal ist es total Fehlerhaft !!
Mal Fehlt ein Minus, mal ein @ bei einem Pointer und

beim so kommt ein Fehler bei mir !!!

Code: delphi

d3ddevtypes: array[0..2] of d3ddevtype = (d3ddevtype_hal,
                                        d3ddevtype_sw,
                                        d3ddevtype_ref);



Un so geht es bei mir

Code: delphi

//Constante Device Type
  d3ddevtypes: array[0..2] of td3ddevtype = (d3ddevtype_hal,
                                        d3ddevtype_sw,
                                        d3ddevtype_ref);


.

Und alls wir das gesehen haben mussten wir lachen !

Code: delphi

// Speichern
              tmpdevice[deviceloop].comboinfo[tmpdevice[deviceloop
              ].anzfmt_adapter-1].bbinfo[tmpdevice[deviceloop
              ].comboinfo[tmpdevice[deviceloop].anzfmt_adapter-1
              ].anzfmt_backbuffer-1].stencilinfo[tmpdevice[deviceloop
              ].comboinfo[tmpdevice[deviceloop].anzfmt_adapter-1
              ].bbinfo[tmpdevice[deviceloop].comboinfo[tmpdevice[deviceloop
              ].anzfmt_adapter-1].anzfmt_backbuffer-1
              ].anz_fmt_stencil-1].msinfo[tmpdevice[deviceloop
              ].comboinfo[tmpdevice[deviceloop].anzfmt_adapter-1
              ].bbinfo[tmpdevice[deviceloop].comboinfo[tmpdevice[deviceloop
              ].anzfmt_adapter-1].anzfmt_backbuffer-1
              ].stencilinfo[tmpdevice[deviceloop
              ].comboinfo[tmpdevice[deviceloop].anzfmt_adapter-1
              ].bbinfo[tmpdevice[deviceloop].comboinfo[tmpdevice[deviceloop
              ].anzfmt_adapter-1].anzfmt_backbuffer-1
              ].anz_fmt_stencil-1].anz_msinfos].msquality := msquality-1;

              tmpdevice[deviceloop].comboinfo[tmpdevice[deviceloop
              ].anzfmt_adapter-1].bbinfo[tmpdevice[deviceloop
              ].comboinfo[tmpdevice[deviceloop].anzfmt_adapter-1
              ].anzfmt_backbuffer-1].stencilinfo[tmpdevice[deviceloop
              ].comboinfo[tmpdevice[deviceloop].anzfmt_adapter-1
              ].bbinfo[tmpdevice[deviceloop].comboinfo[tmpdevice[deviceloop
              ].anzfmt_adapter-1].anzfmt_backbuffer-1
              ].anz_fmt_stencil-1].msinfo[tmpdevice[deviceloop
              ].comboinfo[tmpdevice[deviceloop].anzfmt_adapter-1
              ].bbinfo[tmpdevice[deviceloop].comboinfo[tmpdevice[deviceloop
              ].anzfmt_adapter-1].anzfmt_backbuffer-1
              ].stencilinfo[tmpdevice[deviceloop
              ].comboinfo[tmpdevice[deviceloop].anzfmt_adapter-1
              ].bbinfo[tmpdevice[deviceloop].comboinfo[tmpdevice[deviceloop
              ].anzfmt_adapter-1
              ].anzfmt_backbuffer-1].anz_fmt_stencil-1
              ].anz_msinfos].mstyp := multisampletypes[msloop];




Das ist so schlecht das musste mal noch überarbeiten !!!

Ich werde dann erstmal deine anderen 2 PDF Dateien Durchlesen! big_smile 

Code:


Ich gebe nicht auf !

Offline

 

#3 31.07.2006 08:00:27

Coolcat
ProGuru
Ort: Aachen, NRW
Registriert: 24.01.2005
Beiträge: 2780
Web-Seite

Re: [DirectX] Enumeration

Zitat:

Kredik

=> Kritik
Sorry, der musste sein wink

Das Tutorial stammt noch aus der Zeit als wir alles ungeprüft übernommen haben.
Habe gerade keine Zeit mir das näher anzuschauen, aber werde das nachher mal genauer unter die Lupe nehmen.

Zitat:

Und alls wir das gesehen haben mussten wir lachen !

Jo, super Implementierung....man sieht doch sofort was da passiert  :mrgreen:

Coolcat


My software never has bugs. It just develops random features.

Offline

 

#4 31.07.2006 11:11:22

Coolcat
ProGuru
Ort: Aachen, NRW
Registriert: 24.01.2005
Beiträge: 2780
Web-Seite

Re: [DirectX] Enumeration

Ok, habs jetzt mal überflogen...

@nitschchedu:
Der Fehler der bei dir bei "D3DDevType" kommt liegt wohl daran das du andere Header als MexDelphi verwendest.
Es wäre sinnvoll wenn du nochmal genau sagst wo die "@" bzw. "-" fehlen, damit MexDelphi das korrigieren kann.

@MexDelphi:
Also das Tutorial hat wirklich viele Tippfehler und komische Formulierungen, ich habe ja schon beim überfliegen einiges gefunden... War zwar nichts wirklich schlimmes (wie fehlende "@"), aber stört natürlich beim lesen.
Es gibt irgendwie eine Klasse TDB_Enumeration und eine Klasse TTDB_Enumeration?? Wie sollen die zusammenhängen?
Das man "Programmzeilen" wie die oben von nitschchedu zititerte einem Leser nicht zu muten kann, dürfte klar sein.
Es macht wenig Sinn die ganze Unit in ein PDF zu werfen. Wenn jemand das ganze verwenden möchte muss er sich das erst rauskopieren. Warum nicht gleich eine normale PAS-Datei? Kann man sowieso viel besser lesen.
(war das nicht vorher auch mal da drin?)

Also bitte das Tutorial nochmal überarbeiten. smile

Coolcat


My software never has bugs. It just develops random features.

Offline

 

#5 31.07.2006 11:16:17

JorEl
ExtremeMember
Registriert: 29.01.2005
Beiträge: 894

Re: [DirectX] Enumeration

Zitat:

Warum nicht gleich eine normale PAS-Datei? Kann man sowieso viel besser lesen.

Also das pdf hat mich nichtmal wirklich gestört - nur sollte man dann eine passende Schriftart wählen, zumindest Courier New, wenn schon keine andere vorhanden ist. Denn der source ist im pdf nicht leicht zu lesen mit dieser Schriftart.

Ansonsten - ja, ein paar kleinere Tippfehler und unvorteilhafte Formulierungen gibt es in der Tat, besonders gleich der erste Satz kommt etwas ungut rüber - ich kann dir versichern, dass Microsoft nicht die Enumeration erfunden hat.  wink

JorEl


Jesus hat gesagt - selig sind die, die da Leid erfahren, denn sie sollen getröstet werden... Ford Prefect hat gesagt - es ist unheimlich wichtig, dass wir miteinander reden und einen trinken.

Offline

 

#6 31.07.2006 13:04:22

nitschchedu
Member
Registriert: 16.03.2006
Beiträge: 36
Web-Seite

Re: [DirectX] Enumeration

Sorry das mit den Tip Fehlern musste schnell gehen, musst noch was machen !  big_smile


Ich gebe nicht auf !

Offline

 

#7 01.08.2006 10:01:41

nitschchedu
Member
Registriert: 16.03.2006
Beiträge: 36
Web-Seite

Re: [DirectX] Enumeration

Mal noch ne Frage, habe nun alle Drei PDF durchgelesen.
Wie Rufe ich das ganze richtig auf ? Bitte mit Code :_)


Ich gebe nicht auf !

Offline

 

#8 01.08.2006 10:36:45

Coolcat
ProGuru
Ort: Aachen, NRW
Registriert: 24.01.2005
Beiträge: 2780
Web-Seite

Re: [DirectX] Enumeration

Ich würde mal behaupten das es so geht, habs aber nicht probiert...

Code: delphi

var enumeration: tdb_enumeration;
    master: tmaster;

enumeration := tdb_enumeration.create(@master);
if (enumeration.enumerate <> s_ok) then
begin
    // Fehler
end;

//Die Infos sind jetzt im TMaster drin.

enumeration.free;



Coolcat


My software never has bugs. It just develops random features.

Offline

 

#9 01.08.2006 10:44:09

nitschchedu
Member
Registriert: 16.03.2006
Beiträge: 36
Web-Seite

Re: [DirectX] Enumeration

Ha..ja aber er hat doch irgentwo oben davon gesprochen das das ding die einstellungen speichert ! Das tut sie nicht (eben nur in den Speicher ) oder, wie darf man das verstehen ?

Er sollte das noch mal überarbeiten  :rock:

Danke erstmal für die Hilfe  :thx2:


Ich gebe nicht auf !

Offline

 

#10 01.08.2006 11:00:55

Coolcat
ProGuru
Ort: Aachen, NRW
Registriert: 24.01.2005
Beiträge: 2780
Web-Seite

Re: [DirectX] Enumeration

So wie ich das verstehe sind dann im TMaster alle Konfigurationen gespeichert die auf der vorhandenen Hardware verfügbar sind.

Coolcat


My software never has bugs. It just develops random features.

Offline

 

#11 13.10.2006 13:46:31

firlefanz
GodlikeMember
Ort: Olpe in NRW
Registriert: 31.01.2005
Beiträge: 1035
Web-Seite

Re: [DirectX] Enumeration

Hier wäre mal ein Sample toll, denn genau diese Probleme (mit Clootie Headern) habe ich auch, was kann die Grafikkarte und was darf ich den User setzen lassen und welche Kombinationen sind zulässig... :?

Firle

Offline

 

#12 22.11.2007 20:17:10

nitschchedu
Member
Registriert: 16.03.2006
Beiträge: 36
Web-Seite

Re: [DirectX] Enumeration

Wollte mal Fragen ob nun eine Unit gibt ? Und ein Sample ? Und dann stellt sich mir noch die Frage welche Einstellung ist dann die besste ?

^^


Ich gebe nicht auf !

Offline

 

#13 23.11.2007 13:36:07

bjoern
ProMember
Ort: OBK
Registriert: 18.07.2006
Beiträge: 112
Web-Seite

Re: [DirectX] Enumeration

Weiß nicht obs schon wo steht aber hier http://zfx.info/Tutorials.php?ID=78 gibts auch ein Tutorial...

Offline

 

Brett Fußzeile

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson