DGL
https://delphigl.com/forum/

glsl PreCompiler
https://delphigl.com/forum/viewtopic.php?f=14&t=11202
Seite 2 von 3

Autor:  Bergmann89 [ Mi Okt 01, 2014 16:39 ]
Betreff des Beitrags:  Re: glsl PreCompiler

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...

MfG Bergmann.

Autor:  Jens01 [ Mi Okt 01, 2014 16:58 ]
Betreff des Beitrags:  Re: glsl PreCompiler

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ß.

Autor:  Bergmann89 [ Mi Okt 01, 2014 19:05 ]
Betreff des Beitrags:  Re: glsl PreCompiler

Ja, im Projekt-Thread waren 2 kleine Beispiele (siehe hier). Auf unserem Blog gibt es auch nochmal die gleichen...

Autor:  Jens01 [ Mi Okt 01, 2014 19:23 ]
Betreff des Beitrags:  Re: glsl PreCompiler

Hatte ich nicht gesehen, danke.

Autor:  Jens01 [ Di Feb 17, 2015 16:15 ]
Betreff des Beitrags:  Re: glsl PreCompiler

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

Autor:  Bergmann89 [ Di Feb 17, 2015 18:25 ]
Betreff des Beitrags:  Re: glsl PreCompiler

Was genau hast du für'n Delphi? Ich kann mir ja mal ne Test-Version installieren, oder gibts mittlerweile was kostenloses von Embarcadero?

Autor:  Jens01 [ Di Feb 17, 2015 18:59 ]
Betreff des Beitrags:  Re: glsl PreCompiler

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.

Dateianhänge:
uengShaderFile.zip [27.54 KiB]
482-mal heruntergeladen

Autor:  Lord Horazont [ Di Feb 17, 2015 19:12 ]
Betreff des Beitrags:  Re: glsl PreCompiler

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

Autor:  Bergmann89 [ Di Feb 17, 2015 20:59 ]
Betreff des Beitrags:  Re: glsl PreCompiler

Wäre ein Versuch wert. Guck ich mir morgen mal in Ruhe an. Zur Not pack ich mir halt ein XE7 drauf (vlt. auch in ne VM, ma sehen).

Autor:  Jens01 [ So Sep 27, 2015 18:10 ]
Betreff des Beitrags:  Re: glsl PreCompiler

Kannst Du mal in kurzen (deutschen) Worten Deine Lizenz erklären.

Autor:  Jens01 [ So Sep 27, 2015 18:29 ]
Betreff des Beitrags:  Re: glsl PreCompiler

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?

Autor:  Bergmann89 [ So Sep 27, 2015 18:48 ]
Betreff des Beitrags:  Re: glsl PreCompiler

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

MfG Bergmann.

Autor:  Jens01 [ Sa Okt 10, 2015 20:23 ]
Betreff des Beitrags:  Re: glsl PreCompiler

Hallo,

so, Dein Example hat schon mal ohne Fehler funktioniert. :D
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.

Besten Gruss
Jens

Autor:  Bergmann89 [ So Okt 11, 2015 11:00 ]
Betreff des Beitrags:  Re: glsl PreCompiler

Ja, das geht. Das LoadFromFile nimmt als zweiten Parameter ein Interface (IengShaderFileReader). Das hat folgende Methode:
Code:
  1. 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.

MfG Bergmann.

Autor:  Jens01 [ So Okt 11, 2015 11:48 ]
Betreff des Beitrags:  Re: glsl PreCompiler

Zitat:
aber ich glaube du nutzt eh den Source, oder?

Nee, ich nutze Deine Dll+Header, weil ich nur Delphi nutze. Wenn Du das da einbauen würdest, wäre das toll.

Seite 2 von 3 Alle Zeiten sind UTC + 1 Stunde
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/