DesktopPlus icon indicating copy to clipboard operation
DesktopPlus copied to clipboard

[Suggestion] Capture Image Filters

Open MagicBOTAlex opened this issue 9 months ago • 2 comments

I forgot where I saw this, but there was another overlay application that claimed to have a filter that would make text easier to read. So I thought that it would be awesome if something simillar is supported in this open-source project.

So here is my suggestion: Multiple sliders to adjust Fx. Sharpness, saturation, Contrast, Warmness? I think you understand. If possible, then having presets for these settings would also be awesome, like: Text reabability, Cinematic, and so on.

Again, I will probably give this a shot. But can't promise it.

MagicBOTAlex avatar May 03 '25 12:05 MagicBOTAlex

The end goal here would be to allow running post-processing shaders on the overlay textures. Color adjustment, filtering, upscalers, color-keying, you name it. This is definitely on the list of things I totally want to have added at some point... but the "when" remains the question, yeah.

As far as the implementation goes, supporting external loading of shaders would be a certain goal, though internal ones would be fine for a start.

Supporting libretro shaders would be a really cool end goal but also broaden the scope quite a bit and make things more complex than they need to be. Ironically, licensing isn't ideal there either so we can't just grab the implementation from there anyways (Desktop+ is GPL 3, but I want to keep my options open for Steam builds), but librashader might actually be an option. Their shader collection is vast but also in a variety of licenses. Probably more food for thought for later I guess. Probably still useful to reference for shader input layouts and such, though.

On the code side this will need an extra render pass for each overlay on each update. Desktop+ does minimize texture passing and processing so it shares textures between multiple overlays and SteamVR, as well as keeps texture handling local to the capture code. There is however already a texture post-processing step that is done on a per-overlay basis: Over-Under 3D. The OUtoSBSConverter class could be expanded to handle all kinds of post-processing shaders (it uses texture copy calls for 3D conversions currently, no shaders or rendering). Or at the very least would be a good entry point to experiment on since it's already an isolated texture in -> texture out class.

These are my thought on this for now. I know that the scope I'd be looking for might be a bit greater than what you had in mind. But I guess it's still gonna be shaders all the way down anyhow, just with a bit more management around it.

elvissteinjr avatar May 03 '25 17:05 elvissteinjr

I forgot to respond, and I've been really really busy with Uni exams period.

But I wanted to say that this sounds soo much more ambitious than what I initially thought. Never really touched shaders before, so I'd have to learn a lot to even get something. So probably out of my scope. Idk, I'll have a look at the shaderlib, because why not, it is interesting.

MagicBOTAlex avatar May 19 '25 16:05 MagicBOTAlex