[Suggestion] Capture Image Filters
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.
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.
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.