1UnitedPower: GLSL ES → JavaScript

Beitrag lesen

Hakuna matata!

Ich suche nach der richtigen Herangehensweise, um genau so eine API zu erstellen.

Hui, ich nehm an, du willst das wirklich selber machen und nichts Vorgefertigtes nehmen? Du arbeitest immerhin auch mit rohem WebGL, anstatt mit irgendeiner Bibliothek. Vielleicht ist der Mozilla Shader Editor trotzdem eine gute Anlaufstelle für dich.

Das klingt auf alle Fälle nach einer sehr anspruchsvollen Aufgabe, du musst dich wohl sehr gut mit dem Sprachstandard der Shader-Sprache vertraut machen. Dort ist die Syntax und der Semantik der einzelnen Sprachbausteine akribisch genau definiert. Für dich dürfte vor allem die Syntax interessant sein, weil du ja keinen standardkonformen Interpreter oder Renderer bauen willst, sondern "nur" einen Editor, um Shader zu bearbeiten. Deine API muss also die richtigen Klassen und Funktionen bereitstellen, um valide Syntax zu erzeugen. Beim umgekehrten Vorgang, also dem Parsen, baut man nach und nach einen abstrakten Syntaxbaum aus der textuelle Repräsentation zusammen. Ich würde so ähnlich vorgehen und die API so gestalten, dass man programmatisch einen abstrakten Syntaxbaum erzeugen muss, der dann später in eine textuelle Repräsentation serialisiert werden kann. Die API wird sich dann vermutlich sehr an den Produktionsregeln der Sprachsyntax orientieren. Bestimmte Produktionsregeln könnten zum Beispiel durch bestimmte Klassen oder Funktionen reflektiert werden.

--
“All right, then, I'll go to hell.” – Huck Finn