qt: let the interface snow during Christmas!
I initially wanted to use an already made snow shader, as there are better ones. However, I could not find a good one with compatible license, so I had to come up with one myself. Thankfully Inigo Quilez's voronoi and snowflake SDF helped me (MIT license).
This is not the best snow shader effect, and I can not create a good one because I'm not familiar with GLSL or graphics programming in general. But it seemed decent to me for the use case here.
Note that this is additive, so if the background is pure white the snow would not be visible.
I also investigated whether to use Qt's particle system for this, instead of a fragment shader. I decided to do this with a fragment shader because we currently do not use the particle system, the performance benefit is not clear, and the fragment shader is simpler (thanks to Inigo Quilez).
I intentionally used this only in the top bar and minimal view background (when video is not playing), and used a relatively low opacity to not distract the user.
The coverage of the fragment shader is small in the main view (top bar), and it is not shown in the player view. The coverage in the minimal view is large (spans the whole window), but that is only when video is not playing. Therefore I don't expect this to cause performance issues except poor graphics card, large window size, and minimal view without video playing.
An obligatory reference to #35, considering no other player
can snow (as far as I know)
I have recorded a video here:
Request review @chub.