[screenlocker] Render greeter backgrounds as black

Review Request #124948 - Created Aug. 27, 2015 and submitted

Martin Flöser
The background of the whole screen locker architecture is black. During
starting the lockscreen there might be a frame with just the background.
To prevent flickering let's better use black instead of the default

[screenlocker] Delay the async loading till first frame is rendered

For the screenlocker architecture to work it's crucial that the views
are shown as fast as possible with valid content. The OpenGL context
initializes with a copy of the current framebuffer (which is the unlocked
screen) and this is rendered as the first content of the lock screen
and stays visible till QtQuick has rendered a proper scene.

Initial rendering of our scene takes some time (> 500 msec) in which
the unlocked screen stays visible, but the architecture thinks it's
already fully locked and e.g. starts suspending the system. This
can result in the system waking up with the screen looking as unlocked.

This change ensures that at least one frame is rendered properly before
starting to load the real scene in an async way. That's most likely just
the black background which means the screen is properly locked, even if
it is not the proper greeter yet. It's fine for the system to suspend in
this stage as the screen is properly black.

Used kscreenlocker_test: now my screens all go nicely black and then later on swap to the greeter content.

Marco Martin
Martin Flöser
Review request changed

Status: Closed (submitted)

Change Summary:

Submitted with commit 0da420f6309cdfa8dc95566a1afbf0f29a6b7ebe by Martin Gräßlin to branch master.