The script image is now a pixel buffer. This allows some clever possibilities:
We can now implement text to image.
We can compose images by drawing on them, and record the areas which changed to
avoid refreshing the whole thing.
When the logo opacity was plugin wide, one view would change its logo, and the
others would not bother. This prevented the logo form showing up on the second
screen.
The fd element was only used within the load function so did not need to be in
the structure. Also removes the open and close file functions. Their contents
is inlined.
This is the last cleanup before merging with pixel-buffer.
This reverts commit 79baa323e6.
It wasn't really the right way to fix the original problem.
Now we end up in a case where timeouts can still run after
stop_watching_for_timeout is called on them. This can cause
crashes.
We need to instead fix the problem in a different way.
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.