evanw / glslx

A GLSL type checker, code formatter, and minifier for WebGL
http://evanw.github.io/glslx/
MIT License
402 stars 28 forks source link

webgl2 (glsl 300 es) support #11

Open nylki opened 6 years ago

nylki commented 6 years ago

At the moment only glsl version 100 appears to compile correctly. webgl2 uses glsl with version 300 es, which does not compile with glslx.

Here is a fragment shader example:

#version 300 es
precision highp float;
in vec2 v_st;
out vec4 color;
void main()
{
    color = vec4(1.0, 1.0, 0.0, 1.0);
}
Jarred-Sumner commented 3 years ago

With Safari enabling WebGL2 by default on new versions, this becomes more relevant.

How hard would it be to implement this and @evanw would you be open to a PR?

The number of syntax changes with version 300 es isn't huge.

Most changes are:

Ideally, it would be possible to output both GLSL ES 300 shaders and GLSL ES 100 shaders, so long as WebGL2-only features aren't used (such as sampler2DArray)

haberbyte commented 2 years ago

Now that Safari with WebGL2 enabled by default has shipped, is there any interest to support this in glslx @evanw ?

evanw commented 2 years ago

No I don't have any interest in this right now, sorry. I'm not using this library at the moment and I also have no need for WebGL2 features myself.

haberbyte commented 2 years ago

Thank you for taking the time to respond, I somehow thought Figma would use this library 😅

evanw commented 2 years ago

Figma does use it, we just don’t use WebGL2 since Figma needs to work everywhere and we could do without it.

daumann commented 3 months ago

Any update on this? Nowadays many bigger libraries have GLSL1 deprecated

james-pre commented 2 months ago

@evanw Any updates on this? I like this library and would contribute, but it uses a custom programming language I have no experience with.