Benjamin Otte
153b78e2bc
gpu: Add a ShaderOp.print_instance vfunc
...
... and add gsk_shader_op_print() to do the generic stuff.
2024-03-15 19:49:17 +01:00
Benjamin Otte
6ed4eece04
gpu: debug-print the used shader clip
...
When using GSK_DEBUG=verbose, print the clip mode used in the shader.
Use cute little unicode indicators to not overload the debug output.
2024-02-11 20:04:54 +01:00
Benjamin Otte
1723ab34e1
gpu: Setup attribute locations
...
Make the generator generate calls for the correct glBindAttribLocation()
calls.
Usually this was done correctly, but we can't rely on it. So do it
explicitly.
2024-01-07 07:22:53 +01:00
Benjamin Otte
2e81e4d452
gpu: Make box shadow shader use variations
...
Use it do differentiate between inset and outset shadows.
2024-01-07 07:22:53 +01:00
Benjamin Otte
d900407a18
gpu: Introduce the concept of "variation"
...
A variation is a #define/specialization constant that every shader can
use to specialize itself as it sees fit.
This commit adds the infrastrcture, future commits will add
implementations.
2024-01-07 07:22:53 +01:00
Benjamin Otte
493b83ff24
gpu: Optimize box-shadow shader
...
Like in the border shader, don't draw the (potentially large for the
window's shadow) inside part that is transparent.
2024-01-07 07:22:53 +01:00
Benjamin Otte
d8db673fb7
gpu: Add a box shadow shader
...
Code was inspired mainly by
https://madebyevan.com/shaders/fast-rounded-rectangle-shadows/
and
https://pcwalton.github.io/_posts/2015-12-21-drawing-css-box-shadows-in-webrender.html
So far the results aren't cached, that's the task of future commits.
2024-01-07 07:22:51 +01:00