Commit Graph
9 Commits
Author SHA1 Message Date
Bernd Busse 74094e3c04 gl_common: Remove superfluous calls to glViewport
Call `glViewport()` once when initializing the backend with the maximum
supported dimensions. Since all shaders are equipped with the
corresponding projection matrix, the viewport does not have to be
updated prior to each draw call.

Related: a7bd48f5ab
2020-04-24 14:40:24 +02:00
Bernd Busse 553783869a gl_common: Wrong viewport in gl_average_texture_color()
Set viewport in `gl_average_texture_color()` to global `vp_width` and
`vp_height` as the projection matrix has been initialized to these dimensions
as well.

Related: a7bd48f5ab
2020-04-24 14:40:04 +02:00
Bernd BusseandYuxuan Shui a7bd48f5ab gl_common: set glViewport() to maximum supported size
- Query maximum supported dimensions of `glViewport()` when initializing
so we don't have to worry about differently sized textures when
rendering (usually the same as the maximum supported texture size, but
dependend on the driver).
- Set projection matrix in all shaders at startup to queried viewport
dimensions. Allows using screen coordinates for all vertex positions
without having to keep track of framebuffer dimensions.
- Follow recommendations and set `glViewport()` to queried maximum dimensions
for each draw call (`glDraw*()`, `glClear()`).

Related: #349
2020-04-23 20:30:41 +01:00
Bernd BusseandYuxuan Shui c1d985eb7c tests: update testcase for #314
Handle more (hopefully all) edge-cases when updating `opacity_target_old`:
* `MAPPING` transitions to `FADING` if new target is reached. Otherwise
no update.
* `FADING` clamps to current `opacity` if old target is too small.
* `UNMAPPING`/`DESTROYING` clamps to current `opacity` if old target is
too small.
2020-04-08 23:22:11 +01:00
Bernd BusseandYuxuan Shui cd4913876f gitignore: exclude python cache for testcases 2020-04-08 23:22:11 +01:00
Bernd BusseandYuxuan Shui 132332c483 win: remove unused parameter ignore_state
remove unrequired parameter `ignore_state` of
`win_calc_opacity_target()` that was always `false` now.
2020-04-08 23:22:11 +01:00
Bernd BusseandYuxuan Shui ad8632b017 New backends: smoothly fade blur-texture on fade-in/-out
* Add new field `opacity_target_old` to `struct managed_win` for
tracking relevant `opacity_target` changes.
* Smoothly fade blur-texture opacity on window opacity changes (based on
window opacity), when the window was or will be fully transparent
(`w->opacity ~< 0.004`).
* Fixed alpha-clipping of the blur-texture when using `inactive-opacity` or
repeatedly setting window opacity with large fade intervals (should fix #314).
2020-04-08 23:22:06 +01:00
Bernd Busse df1a852442 Add support for documented --blur-* options
Handle parsing of `--blur-method`, `--blur-size` and `--blur-deviation`
in config file and as command line options as documented in the manpage.
2020-01-17 16:25:02 +01:00
Bernd Busse d8d9fdf11f Make manpage formatting more consistent 2020-01-17 16:25:02 +01:00