Registriert: Di Sep 30, 2003 22:22 Beiträge: 78 Wohnort: irgendwo in den Korridoren der Von Braun
Frage 1:
ich möchte die Unit glBMP von Jason Allen mit dem dgl-header kompilieren, allerdings tritt permanent der Fehler...
Incompatible Types: 'Cardinal' and 'PGLUint'
...auf, obwohl ich alle GLuint in der Unit nach TGLUint geändert habe (ebenfalls die Definitionen für die fehlenden Prozeduren bei Borlands header entfernt). Das Nachschlagen in dglopengl.pas hat auch nicht weitergeholfen, die Deklarationen sind identisch.
Das gleiche Problem tritt bei der, in den dgl-Tutorials verwendeten, Textures.pas von Jan Horn auf, mit Borlands header kompilieren beide einwandfrei, allerdings nicht mit dem neuen 1.5 header?
Ich denke ich übersehe da etwas, kann mir vielleicht jemand auf die Sprünge helfen?
Frage 2:
Beim wechsel von Fenster-modus nach Vollbild (und vice versa) werden alle Texturen weiß. Gibt es eine Alternative zum Löschen/erneut Laden der Texturen für den Wechsel?
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Sag mal genau wo er den Fehler bringt.Ich hab die glBmp.pas zwar noch nicht mit dem neuen Header genutzt,aber die Textures.pas verwende ich tagtäglich.Die lies sich auch ohne eine Zeile abzuändern mit der dglOpenGL.pas verwenden.
Zitat:
Frage 2: Beim wechsel von Fenster-modus nach Vollbild (und vice versa) werden alle Texturen weiß. Gibt es eine Alternative zum Löschen/erneut Laden der Texturen für den Wechsel?
Da bein Moduswechsel ja der DC ungültig wird,müsstest du eigentlich alles neu initialisieren,inklusive Texturen und 3D-Modellen.
Registriert: Di Sep 30, 2003 22:22 Beiträge: 78 Wohnort: irgendwo in den Korridoren der Von Braun
Frage1:
Sowohl Jan Horn's als auch Jason Allen's Units lassen sich mit eurem header verwenden, insofern man nicht dglopengl in deren uses clause hat sondern Borlands header.
Der Fehler tritt in beiden Units bei glGenTextures auf (Zeile 70 bei Textures.pas). Ich benutze Delphi 6, könnte es damit zusammenhängen?
Frage2:
Danke, so hab ich das auch gelöst, ich hatte gehofft es ginge ohne einen Hack
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Silk hat geschrieben:
Frage1: Sowohl Jan Horn's als auch Jason Allen's Units lassen sich mit eurem header verwenden, insofern man nicht dglopengl in deren uses clause hat sondern Borlands header.
Das ist definitiv nicht so.Ich hab in Jah Horn's Unit dglOpenGL.pas in der Uses-Klausel (statt der alten Unit) und hab keine Probleme.Allerdings kann ich dir nicht genau sagen ob/und was ich geändert habe,da ich die Unit schon vor recht langer Zeit auf OpenGL12.pas aktualisiert habe.Deshalb wärs am besten wenn du mal die Zeile(n) in der das Problem auftrit hier direkt postest.
Registriert: Di Sep 30, 2003 22:22 Beiträge: 78 Wohnort: irgendwo in den Korridoren der Von Braun
Danke Euch beiden! wieder etwas über Pointer gelernt und jetzt macht die Namengebung im OpenGL-header auf einmal auch mehr Sinn
Mit der Übergabe der Adresse von 'Texture' an glGenTextures klappt es einwandfrei, habe die glBMP-Unit jetzt soweit geändert das sie problemlos mit dglopengl.pas compiliert. Danke nochmals
Registriert: Di Sep 30, 2003 22:22 Beiträge: 78 Wohnort: irgendwo in den Korridoren der Von Braun
Wo ich jetzt schon dabei bin mit Fragen zu nerven, gleich noch eine:
Was ist die minimale Texturgröße die OpenGL verarbeiten kann? Ich habe mal gelesen es sei 64², allerdings kann ich eine 2² große Textur Laden und Darstellen. Wird die Textur intern auf 64² skaliert oder existiert nur das Limit 2^n?
Die maximale Texturgröße ist Treiber- und vom verwendeten Texturformat abhängig (8 Bit Luminancetexturen brauchen halt weniger Platz als 32Bit RGBA-Texturen), mindestens aber 64x64 (wobei, außer bei uralten 3d-Beschleunigern (Voodoo), selbst bei Softwareimplementationen mindestens von 1024x1024 Pixeln ausgegangen werden kann - im Zweifelsfall halt abfragen).
Bei 3D-Texturen heißt es da schon eher vorsichtig sein, da die z.B. auf Geforce 4MX Karten nur sehr halbherzig (Software!) unterstützt werden.
Registriert: Di Sep 30, 2003 22:22 Beiträge: 78 Wohnort: irgendwo in den Korridoren der Von Braun
Mars hat geschrieben:
Die minimale Texturgröße ist 1 Pixel
Ob eine 1 Pixel große Textur sinnvoll ist sei mal so dahin gestellt, vielleicht für MIPMaps?
Mit großen Texturen hatte ich bisher keine Probleme aber da ich jetzt, beim Umstieg von nehe's VCL template mit glaux auf dgl API template mit glbmp, einige Probleme mit kleinen Texturen (<64²) bemerkt habe die mit glaux nicht auftraten dachte ich es hängt mit der internen Vergrößerung zusammen. Kann es aber wohl nicht sein, ich werde das mal genauer untersuchen.
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Mit der glBMP-Lib hatte ich auch schon so meine Probleme,ganz besonders bei einigen JPG.Selbst wenn die 100% allen Standards entsprachen,hat er sie nicht oder fehlerhaft geladen.Bin dann auch vor längerer Zeit auf die Textures.pas gewechselt,die ich dann mit meinem eigenen Texturenmanager nutze und hab seitdem keine Probleme.V.a. die Tatsache das Jan Horn's Unit auch komprimierte TGAs laden kann hat mir dort gut gefallen.
Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.