When the text or the position is changed, label will call draw events on areas
which were previously drawn on.
The two-step plugin is updated with the new method.
Small bug which would try to access the animation frame beyond the end of the
array. Only occurs when doing a redraw after the animation has completed
(e.g. password dialog).
These are small optimisation to: terminate interpolation early when operating
on fully transparent regions and do rotations by pre-computing the step size
rather than calling cos/sin/atan. These use around 30% fewer instructions on
general images.
The callback is called before the final sprite refresh and quit. This allows
the theme to tidy up the screen before handing over to the X fade and the
destop manager.
The text plugin doesn't have proper draw handlers at
the moment. Drawing happens outside of the draw handlers,
and the draw handlers only clear screen. Don't force
draw_area calls because that clears any drawing.
Sprite and Image objects now inherit from an empty scalar which can be used to
keep any random data assoceated with that object. Previously there was a
dangerous tendency to pass any scalar operations to the top inherrited scalar
which was the class prototype.
If a full refresh takes place, the system redraws the whole window but forgets
to remove sprites and update their old positions. The full window refresh is
now done last. Also old_width, and old_height are initialised at sprite
construction.
Truncates the debug file to clear any previous data. Previously, if a run had a
shorter debug data, some data from a previous run would still be present at the
end of the file.
When booting with init=..., plymouthd disables itself. It is problematic
when using bootchartd (bug #22180). plymouth:force-splash allows to
force plymouthd splash.
Ensure init= value is not used when starting plymouthd for shutdown.
Do it for the same reason we did it in the frame-buffer
plugin in the previous commit. It's the "right" thing
to do and now that we map lazily, doing it the old way
is broken.
Before we were tearing down the displays and keyboard on hide
splash but not bringing them back on subsequent show splashes.
This fixes that. We can probably throw less stuff away on
hide splash, but this is a more conservative fix for now.
All objects can now be transformed into strings which allows them to be used as
hash indexes. Some rules do still apply. If an object is lost (freed....)
another object may take on the name of the lost one. The object address is used
to create a string in the form "#(0x123abc45)". NULL has the string "#NULL".
So arr[NULL] is the same as arr["#NULL"], and similar for the objects.
This merges the "x11-renderer" branch to master.
In order to make debugging splash plugins easier,
and in order to make debugging multi-head renderering
possible on single head displays, Charlie wrote an
X11 rendering plugin.
This plugin displays plymouth in a running X session,
instead of on the console.
It currently only supports graphical plugins. At some
point it may grow support for text plugins, too, using
vte. That will take some reworking of the plymouth
daemon core.
This could some day serve as a basis for providing a
graphical theme chooser application (like
gnome-screensaver-preferences), although it's not clear
yet that's a good idea.
Right now, it's a great debugging and development tool,
though.
Some drivers completely choke with the amount of data plymouth is
sending over the wire. This makes sure that plymouth doesn't
keep assaulting the X server when it's already overworked by asking
the server to return back a pixel before continuing.