Commit graph

4 commits

Author SHA1 Message Date
Simon Ser
22594d3723 render/gles2: unify fragment shader
Instead of having 3 different fragment shaders for textures and 1
more for quads, unify them all and compile different variants via
a SOURCE constant.

In the future, we will have more variant dimensions: pre-multiplied
alpha on/off, color transformation, etc. It will become inpractical
to have one file per combination.

Weston has a similar approach:
https://gitlab.freedesktop.org/wayland/weston/-/blob/main/libweston/renderer-gl/fragment.glsl
2022-10-27 16:37:17 +02:00
Simon Ser
30a61470f8 render/gles2: de-duplicate vertex shaders
The vertex shaders for quads and textures are identical.
2022-10-27 16:31:49 +02:00
Simon Ser
3295243da6 render/gles2: move color uniform from quad.vert to quad.vert
We have no use for a v_color varying. We can use the uniform
directly from the fragment shader without getting the vertex shader
involved.
2022-10-27 15:58:34 +02:00
Simon Ser
d75e5b7726 render/gles2: move shaders to individual files
Instead of having a C file with strings for each shader, move each
shader into its own file. Use a small POSIX shell script to convert
the files into C strings (can't wait for C23 #embed...).

The benefits from this are:

- Improved readability and syntax highlighting.
- Line numbers in shader compiler errors are easier to make sense of.
- Consistency with the Vulkan renderer.
- Shaders will become more complicated as we add color management
  features.
2022-10-26 15:08:08 +02:00