yshui / picom

A lightweight compositor for X11 with animation support
https://picom.app/
Other
4.07k stars 584 forks source link

(request) Custom texture loading for GLSL shaders #726

Open wyatt8740 opened 2 years ago

wyatt8740 commented 2 years ago

Environment

FVWM3

Expected behavior

I would like a way to specify or load a texture, either from a file or an array/encoded string, such that I can implement a lookup table for color correction in Picom (and thus get color correction across the entire desktop for free).

Alternately, it would be great if a 3D lookup table were a feature, such that the user could provide an image file with their lookup table texture and have picom automatically do the rest of the work. I think the only X compositor that has color correction right now is Compiz - though Mac OS has it natively in its compositor.

Current Behavior

Currently, i can write GLSL fragment shaders, and with some slight hacking even vertex shaders (there's code for it, but no command line argument exposes the feature). However, I cannot load a texture into memory, as is required for a lookup table. Sampler2D textures would be good enough, since you can just tile every layer of the cube next to each other in a 2D space. In fact, that's how an existing implementation of the shader I want to recreate does it in retroarch.

wyatt8740 commented 1 year ago

Am I correct in stating that #851 did not add this feature - i.e., that it still needs adding?

Sorry for the bump.

Probably still not able to add it myself but I'm looking into it again to see if I can understand the code better this time. My ancient laptop would really get a lot of use out of such a feature!

Would the code that does something similar in compiz be of any use at all for a beginner?