include(PUN_ROOT.'syn/css.php'); ?>
Sie sind nicht angemeldet.
Hallo,
mein Enumerationstutorial, wurde zwar schonmal gepostet, soll aber auch
in der richtigen Rubrik stehen
***
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.
***
Offline
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 !!!
d3ddevtypes: array[0..2] of d3ddevtype = (d3ddevtype_hal, d3ddevtype_sw, d3ddevtype_ref);
Un so geht es bei mir
//Constante Device Type d3ddevtypes: array[0..2] of td3ddevtype = (d3ddevtype_hal, d3ddevtype_sw, d3ddevtype_ref);
.
Und alls wir das gesehen haben mussten wir lachen !
// 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!
Offline
Zitat:
Kredik
=> Kritik
Sorry, der musste sein
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
Offline
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.
Coolcat
Offline
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.
JorEl
Offline
Sorry das mit den Tip Fehlern musste schnell gehen, musst noch was machen !
Offline
Mal noch ne Frage, habe nun alle Drei PDF durchgelesen.
Wie Rufe ich das ganze richtig auf ? Bitte mit Code :_)
Offline
Ich würde mal behaupten das es so geht, habs aber nicht probiert...
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
Offline
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:
Offline
So wie ich das verstehe sind dann im TMaster alle Konfigurationen gespeichert die auf der vorhandenen Hardware verfügbar sind.
Coolcat
Offline
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
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 ?
^^
Offline