gpujs / gpujs/gpu.js

[Feature Request] Translating JavaScript classes to GLSL

Abierto
#474 0 comentarios 2 reacciones 0 asignados Ver en GitHub
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

Abrir la 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

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.