Implementation details:
Hyprpicker assumes, that everything is 32bit ber pixel. Nvidia GPUs use 24bit per pixel.
Now the creation of the screencopy buffer respects the given stride (No-op for 32 bit per pixel, but crucial for 24 bit per pixel
Since cairo needs 32 bit per pixel source to work properly, a temporary 32 bpp buffer is allocated and populated for 24 bpp buffers. This new 32 bpp buffer is used for cairo and pixel querying. This is again a no-op for 4 bpp buffers.
I added a note, that this is still unsupported. Let me know if this is needed.
Tested on Nvidia System, untested on anything else(since I only have nvidia), though theoretically everything should be the same for those systems.
This was the missing puzzle-piece for support for NVidia-GPUs Fixes https://github.com/hyprwm/hyprpicker/issues/28, https://github.com/hyprwm/hyprpicker/issues/9 and https://github.com/hyprwm/hyprpicker/issues/8
Implementation details: Hyprpicker assumes, that everything is 32bit ber pixel. Nvidia GPUs use 24bit per pixel.
Tested on Nvidia System, untested on anything else(since I only have nvidia), though theoretically everything should be the same for those systems.