Registriert: Di Apr 29, 2008 18:56 Beiträge: 1213
Programmiersprache: Delphi/FPC
Hey,
ich hab grad gemerkt, das da noch ne Abhängigkeit fehlt. Die werd ich demnächst mal noch auflösen, sodass das dann unabhängig von unseren anderen Projekten genutzt werden kann. Ob das ganze mit Delphi geht kann ich dir leider nicht sagen, ich hab nur D7 hier und da gab es noch keine Generics (die setzen wir aber vorraus). Die Anpassungen für Delphi sollten aber auch nicht weiter schwer sein, soweit ich das jetzt überblicken kann nutzen wir nix, was es in Delphi nich auch geben würde...
Gibt es vielleicht noch so eine kurzes Beispiel, wie das ganze angewendet wird? Der Interface-Teil war ziemlich mit Klassen "zugeholzt", so dass ich noch nicht mal weiss, bei welcher Klassen man überhaupt ansetzen muß.
Soo... Jetzt habe ich Zeit gefunden, Deinen Parser zu testen. Also so lief das überhaupt nicht auf Delphi. Dann habe ich die "uengShaderFile" genommen und versucht, die relevanten Sachen für Delphi zu korrigeren und die problematischen Listen durch Delphi-Listen zu ersetzen. Das Ding konnte dann eine Datei laden und ausgeben, die keine Tags enthält. Als ich dann den ersten Tag aus Deiner Testdatei eingesetzt habe, gab es Exceptions. Und die Verfolgung war mir dann irgendwann zu aufwendig. Sorry... Gruss Jens
Kostenlos gibts bei Emba nichts mehr. Nur noch bei Verlosungen auf irgendwelchen Veranstaltungen. Ich nutze die neue XE7 Version. Gibt es bei Lazarus eigentlich kein TStack? Ich hänge meine Version mal an.
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Als Test könntest du, Bergmann, mal den Delphi-Kompatibilitätsmodus von FreePascal benutzen. {$MODE DELPHI}. Vielleicht reicht das ja, um das Problem zu reproduzieren.
viele Grüße, Horazont
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
Probiere gerade den Test. Dies Consolen-Programm will 2 Parameter haben. Der erste ist der Pfad zur Shaderdatei, oder? Aber was ist dieser 2. Parameter, dies TlsfGenerator?
Registriert: Di Apr 29, 2008 18:56 Beiträge: 1213
Programmiersprache: Delphi/FPC
Hey,
das ist der Name des Generators. Ein Generator ist entweder eine Klasse (Name = KlassenName), oder das ShaderFile selbst (Name ist ein leer String). Alle folgenden Parameter sind immer ein Property-Name und sein entsprechender Wert. Bsp.: example.exe color.shdr ColorVert UseColorMap true
so, Dein Example hat schon mal ohne Fehler funktioniert. Es ist auch ein kleines Verständnisproblem, weil man sich in Dein Prinzip schon gut einarbeiten muss.
Gibt es eigentlich eine Möglichkeit, den Shadertext als String in de Shaderfile hineinzubekommmen? Ich sehe da nur dies "ShaderFile.LoadFromFile", aber mein Shader gehört eigentlich nicht als Text auf die Festplatte.
Registriert: Di Apr 29, 2008 18:56 Beiträge: 1213
Programmiersprache: Delphi/FPC
Ja, das geht. Das LoadFromFile nimmt als zweiten Parameter ein Interface (IengShaderFileReader). Das hat folgende Methode:
Code:
function LoadStream(const aFilename: String; const aStream: TStream): Boolean;
Die Methode wird jedesmal aufgerufen wenn eine Datei geladen werden soll. Wo die Datei her kommt ist vollkommen egal. Du kannst die dort also auch ganz easy aus einem String laden. aFilename ist der Name der Datei die geladen werden soll, aStream ist der Stream in den die Daten geladen werden sollen und der Rückgabewert ist TRUE wenn alles geklappt hat, sonst FALSE. Warum der Umweg über das Interface? Da das ShaderFile evtl. selbst Datein nachladen muss (siehe $INCLUDE) benötigt man ein einheitliches Interface für alle Lade-Routinen. In der Library geht das noch nicht, aber ich glaube du nutzt eh den Source, oder? Wenn du das für die Lib brauchst einfach nochma bescheid sagen, dann implementier ich das noch fix.
Mitglieder in diesem Forum: 0 Mitglieder und 2 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.