[Feature Request] Translating JavaScript classes to GLSL
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Anfängerfreundlichkeit
- 25/100
- Issue-Typ
- Feature
- Klarheit
- Muss geklärt werden
- Aktivitätsstatus
- Veraltet
- Tech-Stack
- javascript
- Bereich
- computer-graphics
Rechercherichtung
Es werden keine Dateien, Tests oder Einstiegspunkte genannt. Beginne damit, die aktuelle Unterstützung von gpu.js für die Übersetzung von JavaScript in GLSL zu finden, und ermittle, ob Klassensyntax, Konstruktoren, Methoden und Instanzen abgedeckt sind. Als abgeschlossen gilt die Aufgabe, wenn ein abgestimmtes Design und eine funktionierende Übersetzung für das Klassenbeispiel sowie eine entsprechende GLSL-Ausgabe vorliegen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
I recently discovered a simple way to translate JavaScript classes into GLSL., but I'm not sure if gpu.js can do this yet. This is a JavaScript class:
class Circle{
constructor(radius){
this.radius = 1;
}
area(){
return Math.PI*this.radius*this.radius;
}
}
In GLSL, the same class could be defined in this way:
#define PI 3.1415926538
struct Circle{
float radius;
};
Circle new(float radius){
Circle self; //"this" is a reserved word in GLSL, so "self" is used here instead
self.radius = 1.0;
return self;
}
float area(Circle self){
return PI*self.radius*self.radius;
}
And then an "instance" of the class can be initialized:
Circle anInstance = new(3.0);
float the_area = area(anInstance);
Since functions in GLSL can be overloaded, it would be possible to define constructors for multiple "classes" in this way.
- Vorherrschende Sprache
- JavaScript
- Sterne
- 15.5k
- Forks
- 666
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus gpujs/gpu.js
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 65/100
-
WebGL backend silently returns all zeros for long-running kernels (no GL error, no context loss)Offen
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 42/100
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 20/100
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 25/100
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 25/100
Ähnliche Issues
-
bug Frontend P2-medium UI UX
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 76/100
Deepak3699/Ai_Mentor#427 ·
Maintainer antworten meist innerhalb von 1 Tag
-
needs-triage
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
11ty/buildawesome#4407 · 1 Reaktion ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 77/100
keyxmakerx/Chronicle#1711 ·
Maintainer antworten meist innerhalb von 1 Tag
-
frontend
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 69/100
uoftblueprint/canada-basketball#79 ·
Maintainer antworten meist innerhalb von 1 Tag
-
New App Request
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 76/100
ThatGuySam/doesitarm#1126 · 1 Kommentar ·