Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WLR Scene] Add blur #33

Open
wants to merge 6 commits into
base: main
Choose a base branch
from
Open

[WLR Scene] Add blur #33

wants to merge 6 commits into from

Conversation

ErikReider
Copy link
Member

@ErikReider ErikReider commented Feb 26, 2024

Depends on #30

Todo:

  • Figure out the best way for the compositor to know when to rerender the optimized blur
  • tinywl example for optimized blur

@ErikReider ErikReider added the enhancement New feature or request label Feb 26, 2024
@ErikReider ErikReider self-assigned this Feb 26, 2024
types/scene/wlr_scene.c Outdated Show resolved Hide resolved
@ErikReider ErikReider force-pushed the wlr_scene_blur branch 2 times, most recently from f8a24c0 to 39756c6 Compare April 15, 2024 22:32
@ErikReider ErikReider marked this pull request as ready for review May 7, 2024 10:17
@ErikReider
Copy link
Member Author

An optimized blur example in tinywl wouldn't really make it that tiny and simple anymore, so skipping that :)

@WillPower3309
Copy link
Member

An optimized blur example in tinywl wouldn't really make it that tiny and simple anymore, so skipping that :)

Understandable, but do you mind running me through what's required on the comp side for getting this to work in scene? I'm following it along but a summary may be helpful

My thinking here is that one of the main goals of scene is for compositors to easily leverage our effects in very few LOC

@ErikReider
Copy link
Member Author

do you mind running me through what's required on the comp side for getting this to work in scene?

So the optimized blur is a new scene node that should be inserted between regular scene trees, which would be between bottom and workspace in sways use-case. The comp is responsible for resizing the node to the desired size, which in most use-cases would be the monitor's size and coordinates.

The comp is also responsible for redrawing the optimized blur by marking it as “dirty”. Sway currently redraws the blur when any background or bottom layer surface commits.

So actually implementing it in a fully fledged comp doesn't require that many LOC, but adding an example in TinyWL would require adding extra non-blur related code (the extra layers and a good way of showing off the optimized blur)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants