Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

[Feature Request] Translating JavaScript classes to GLSL

Offen
#474 0 Kommentare 2 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

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

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

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus gpujs/gpu.js

Alle Issues in gpujs/gpu.js

Ähnliche Issues

Weitere Issues zu JavaScript

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.