[PATCH weston 0/8] Move fade to shell and fix compositor state mess

Ander Conselvan de Oliveira conselvan2 at gmail.com
Fri Feb 22 04:15:10 PST 2013


On 02/22/2013 04:28 AM, Kristian Høgsberg wrote:
> On Thu, Feb 21, 2013 at 06:35:15PM +0200, Ander Conselvan de Oliveira wrote:
>> Hi,
>>
>> The purpose of this series is to move the fade animation out of core
>> Weston and improve the compositor->state situation. Currently, when
>> the compositor goes idle and sends the lock signal, the shell sets up
>> the screensaver and makes the compositor active again (after overriding
>> the idle timeout with the screensaver one). The compositor then fades
>> to black again, when it becomes idle again.
>>
>> These patches improve the situation by moving the fade into the shell,
>> so it doesn't have to change the compositor state, and changes the
>> meaning of the signals, so that the core is completely unaware of being
>> locked or not.
>
> Yeah, this looks good, all applied.  The core compositor interface is
> pretty clean and simple now.  I still find reusing lock() for both
> locking the compositor a little gross, perhaps instead of FADE_IN and
> FADE_OUT we could have FADE_TO_SCREENSAVER, FADE_TO_LOCK,
> FADE_TO_ACTIVE or something.  Anyway, doesn't matter too much, the
> main part is that the weston core API makes sense.

Although, I agree that there is still room for improvement in the shell, 
I don't plan to work on this issue any further. I think something along 
the lines of what you propose would be nice, tracking all the state 
changes in a single function. Right now there are too many places where 
there's a call to shell_fade() which may eventually lead to the 
screensaver being launched or the screen locked.

> Should we use
> weston_compositor_sleep() in handle_screensaver_sigchild() btw?

Funny that I forgot to change exactly that spot. I'll send a patch.

Cheers,
Ander

>
> Kristian
>
>> Cheers,
>> Ander
>>
>> Ander Conselvan de Oliveira (8):
>>    compositor: Split util.c into binding.c and animation.c
>>    animation: Make fade more controllable
>>    animation: When fading, round the surface alpha when close to 0 or 1
>>    animation: Schedule a repaint only on the outputs the surface is in
>>    compositor: Move fade animation out of core Weston into shell
>>    shell: Use its own timer for the screensaver timeout
>>    compositor: Move state tracking complexity into shell
>>    compositor: Rename lock and unlock signals to idle and wake
>>
>>   src/Makefile.am    |    3 +-
>>   src/animation.c    |  290 ++++++++++++++++++++++++
>>   src/bindings.c     |  289 ++++++++++++++++++++++++
>>   src/compositor.c   |  228 +++++++++++--------
>>   src/compositor.h   |   16 +-
>>   src/shell.c        |  161 ++++++++++---
>>   src/tablet-shell.c |    4 +-
>>   src/util.c         |  637 ----------------------------------------------------
>>   8 files changed, 853 insertions(+), 775 deletions(-)
>>   create mode 100644 src/animation.c
>>   create mode 100644 src/bindings.c
>>   delete mode 100644 src/util.c
>>
>> --
>> 1.7.10.4
>>
>> _______________________________________________
>> wayland-devel mailing list
>> wayland-devel at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/wayland-devel
> _______________________________________________
> wayland-devel mailing list
> wayland-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/wayland-devel
>



More information about the wayland-devel mailing list