The blur rendering logic includes the optimization to render blur only
for transparent surfaces. This patch considers surfaces as transparent
also when the transparency is only introduced by the dim color.
We can now have windows, that are opaque by default become transparent
with blurred background as soon as they loose focus.
Example configuration:
```
blur on
blur_passes 3
blur_radius 5
default_dim_inactive 0.15
dim_inactive_colors.unfocused #00000000
```
* Move stencil into each framebuffer
Also fixes the stencil being added to the wrong framebuffer
* Initialize texture members on framebuffer init
* removed bind arg
* renamed init to create, changed existing create to update
* moved stencil buffer creation to new function
* removed some now misleading comments
---------
Co-authored-by: William McKinnon <contact@willmckinnon.com>
* suplified conditional in find_con_effect_iterator
* removed has_blur
* simplified optimized blur check
* moved damage expansion to output.c
* removed extraneous fx_renderer_scissor
* cleaned up render_output
* removed unneeded damage scale
* moved workspace optimized check function to workspace.c
* renamed ws iterator function
* added back region expansion
* removed uneeded parameter from get_main_buffer_blur
* returned extended damage
* moved get_blur_size back to original spot (reduce diff size)
* Fixed blur artifacting
* Fixed damage highlight not clearing correct framebuffer
* removed unneeded conditional
* moved initial damage expansion to output.c
* moved extended damage to the top of output_render
* moved blur damage to damage_surface_iterator
* ensure damage doesnt expand beyond output size
* removed stdint import
---------
Co-authored-by: Erik Reider <ereider20010103@gmail.com>
* Extend minimize logic
* Removed redundant xwayland minimize logic
* minor fixes
* Fixed not properly checking if window is ran though XWayland
* Added config option with default being off
* Set scratchpad_minimize to true by default
* Improve config dependant logic
* Switch to using enable|disable instead of on|off