-
-
Notifications
You must be signed in to change notification settings - Fork 3.3k
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
Transition styles #3669
base: 0_15
Are you sure you want to change the base?
Transition styles #3669
Conversation
So far, implemented are Fade (which is the original transition style), swipe right, swipe left, outside in, and inside out.
… to allow for effects that modify pixels from the previous frame
Ok makes sense. Effect blending (a.k.a. transition styles) is now disabled by default on ESP8266. |
Are there any other changes needed before this can be merged? |
Well ... I would much rather see the "transition" approach being independently selectable and entirely removed from ESP8266 code if it cannot run reliably. There's also a question why did you decide to use vectors for transition styles? The number and content are known at compile time so there is no need for vector IMO. There are also unconventional comparisons like And my personal aspect as a (current) maintainer of the project is the problem of complexity this PR adds to already complex task of rendering modes/effects to segments and strip. Even though I know the workings of the code I can get lost in the new code quite easily. Do not get me wrong, I do like idea. |
Thanks for the feedback, I can definitely change this to fall more in line with your expectations.
Sorry for the misunderstanding. Happy to change this.
Just for consistency's sake. Happy to choose another path if that saves memory and/or CPU.
At the moment yes, but the argument could be made to remove the 2D transition styles when 2D is disabled.
I'm trying to follow the local conventions as closely as possible. Happy to change this. If you spot anything else, please let me know in an inline comment.
I appreciate the sentiment. Anything in particular you would like me to change? I have a suggestion below. Here's what I'd suggest:
|
Thank you for understanding. When I get a bit more time I'll try to provide more feedback. |
Perfect! I'll get started on those changes tonight. Thanks again for your feedback and support! |
Ok, so I did all the things that I suggested. In the current version, if you want transition styles, you also have to enable mode blending; disabling mode blending will also disable transition styles. The reason is that a lot of the code required for sophisticated transitions is also necessary for fading between effects. That said, I tested the following setups:
|
@blazoncek, did you have a chance to look at this PR lately? |
Unfortunately no, but I intend to. |
Just a heads-up that I have not forgotten about this PR. |
@tkadauke I have finally found the time to test this but unfortunately found out that it does not work for on/off transitions. It only works for effect change. Is that intended? I also got a few crashes.
So far I've only tested on ESP32. |
Thanks for testing this! I will look into the crashes. I am aware that on/off transitions aren't implemented. Is that something you'd expect to be covered? If so, I'm happy to work on this. |
It would make it consistent and would also satisfy several requests. But ... |
Yeah I noticed that. One way to do this is if we have a transition_style != FADE, for turning off, we could first do the transition, and then immediately turn off. We'd do the opposite for turning on. |
How does one even install this. I see no binaries. This is exactly what i'm looking for. Kind of disappointed Wled doesnt have anything like this already, seems like a basic feature. |
@Huskiefluff, thanks for your interest in this feature. This is a development proposal of a feature that I would like to see in WLED. Currently, @blazoncek is working on implementing this in a way that works with all supported platforms than WLED runs on. If I had to guess, it would likely be part of version 0.15 at some point in time. To get this running today, you'd have to check out the code and compile it for your platform. There are no published binaries, since this PR (and @blazoncek's PR) hasn't been accepted into the main branch yet. If you can connect your controller to your computer via USB, then flashing it should be straightforward. There are plenty of tutorials out there that'll teach you how to do this. |
This replaces #3633. See the other PR for discussion.
This seems feature complete for the first round, what's still needed is ESP8622 testing, which I'll do today.