[Feature Request] Translating JavaScript classes to GLSL
- Lenguaje dominante
- JavaScript
- Estrellas
- 15.5k
- Forks
- 663
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
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.
Guía de contribución
Línea de trabajo
No se nombran archivos, pruebas ni puntos de entrada. Empieza por localizar la compatibilidad actual de gpu.js con la traducción de JavaScript a GLSL y determina si la sintaxis de clases, los constructores, los métodos y las instancias están incluidos. El trabajo estaría terminado cuando exista un diseño acordado y una traducción funcional para el ejemplo de clase, junto con la salida GLSL equivalente.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- javascript
- Área
- computer-graphics
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Estado de actividad
- Estancado
- Claridad
- Necesita aclaración
- Aptitud para principiantes
- 25/100