]> git.ipfire.org Git - thirdparty/plymouth.git/log
thirdparty/plymouth.git
15 years ago[terminal] merge console and terminal code
Scott James Remnant [Thu, 18 Mar 2010 03:21:01 +0000 (03:21 +0000)] 
[terminal] merge console and terminal code

This removes the separation in code of "console" functions and
"terminal" functions; this never really made sense, and doesn't
particularly map to the behaviour of Linux virtual terminals.

The three principle operations that Plymouth was using "console"
for were:

 * changing the active VT
 * notification of changes to the active VT through VT_PROCESS
 * switching between text and graphics mode

And it was using the "foreground terminal" alias /dev/tty0 to do
this.  While this is fine for the first of those, since any console
device will do, it's always wrong for the latter two which should
always be on the actual VT we want Plymouth to run from.

If running on tty7, only tty7 should be in VT_PROCESS mode (since
we want to know when we enter this VT and leave this VT), and
certainly only tty7 should be in graphics mode.

Since you can use that same tty to obtain the current active VT,
and switch VT, you don't need another; so the need for a separate
"console" functionality goes away.

15 years ago[main] unset keyboard if splash fails to show
Scott James Remnant [Thu, 11 Mar 2010 20:26:36 +0000 (20:26 +0000)] 
[main] unset keyboard if splash fails to show

Since script implements a set_keyboard function (the only plugin to
do so), the previous commit reveals a bug where set_keyboard is
called for the plugin but unset_keyboard isn't called if the plugin
fails to be loaded

15 years ago[script] check that there are pixel displays
Scott James Remnant [Thu, 11 Mar 2010 20:25:19 +0000 (20:25 +0000)] 
[script] check that there are pixel displays

The script plugin only works on pixel displays, however there wasn't
any check for this, so if a script-based theme was your default
Plymouth would not fallback to using the text plugin instead.

15 years ago[terminal] change fallback terminal settings
Ray Strode [Wed, 17 Mar 2010 19:36:43 +0000 (15:36 -0400)] 
[terminal] change fallback terminal settings

I think when I originally added the fallback case, I looked at the
tcgetattr man page, saw cfmakeraw()'s settings and just inverted them.

That's obviously wrong.  These settings should hopefully make a little
more sense.

15 years agoSpelling fix for manpage.
Adrian Glaubitz [Thu, 11 Mar 2010 07:22:09 +0000 (08:22 +0100)] 
Spelling fix for manpage.

15 years ago[script] Add SubString function to the script string library
Richard Maw [Wed, 10 Mar 2010 20:28:09 +0000 (20:28 +0000)] 
[script] Add SubString function to the script string library

Adds the SubString function which returns a string segment. The two paramiters
are the sub-string start and end indicies. Negative start and end values return
a NULL, as does start index being beyond the end index. Start being beyond the
end of the string returns an empty string.

15 years ago[drm] reconnect input source on disconnect
Ray Strode [Fri, 5 Mar 2010 18:15:39 +0000 (13:15 -0500)] 
[drm] reconnect input source on disconnect

This is like 6f8d51c2cb2f46eac4c2040f5fc8512f65c8d2da
but for the drm renderer.

15 years ago[frame-buffer] reconnect input source on disconnect
Ray Strode [Fri, 5 Mar 2010 18:15:39 +0000 (13:15 -0500)] 
[frame-buffer] reconnect input source on disconnect

This is like 1425549885aadb21871d1751d71f411cce802d60
but for the frame buffer renderer.

15 years agoMerge branch 'scriptftbfs'
Scott James Remnant [Tue, 2 Mar 2010 20:41:02 +0000 (20:41 +0000)] 
Merge branch 'scriptftbfs'

15 years agoMerge branch 'scriptdirs'
Scott James Remnant [Tue, 2 Mar 2010 20:40:54 +0000 (20:40 +0000)] 
Merge branch 'scriptdirs'

15 years ago[main] replace tabs with spaces
Scott James Remnant [Tue, 2 Mar 2010 20:13:12 +0000 (20:13 +0000)] 
[main] replace tabs with spaces

Missed these in the clean-up pass.

15 years ago[script] drop unused on_draw() function
Scott James Remnant [Tue, 2 Mar 2010 18:21:15 +0000 (18:21 +0000)] 
[script] drop unused on_draw() function

The on_draw() function inside the script plugin isn't referenced
anywhere, but references a static function from script-lib-sprite.c;
if building without optimisation, it's possible that gcc won't elide
this code so will fail during linking.

15 years ago[scripts] Don't hardcode LIBEXECDIR and DATADIR paths
Scott James Remnant [Tue, 2 Mar 2010 20:06:43 +0000 (20:06 +0000)] 
[scripts] Don't hardcode LIBEXECDIR and DATADIR paths

The scripts hard-coded the paths for LIBEXECDIR and DATADIR, unless
passed as environment variables.  Instead of doing this, which breaks
if plymouth is installed outside of /usr, set these derived from the
configure $libexecdir and $datadir variables just as we do for
pkg-config, etc.

Since we use so many variables, it makes more sense to generate these
scripts from config.status rather than having special Makefile rules
for them.

15 years ago[main] Write the pid of plymouthd to a file
Scott James Remnant [Tue, 2 Mar 2010 19:52:25 +0000 (19:52 +0000)] 
[main] Write the pid of plymouthd to a file

Add a --pid-file option to plymouthd that will cause the daemon's
pid to be written to the named file.  Useful to avoid grovelling
through ps output to find it again.

15 years ago[client] Install libply-boot-client library and headers
Scott James Remnant [Tue, 2 Mar 2010 15:16:33 +0000 (15:16 +0000)] 
[client] Install libply-boot-client library and headers

When communicating with Plymouth from another process, it's
inconvenient to have to keep spawning the plymouth client binary
and keeping track of it - not to mention slow.

It's far cleaner to be able to link to the same boot client code
that the plymouth binary does, and communicate directly.

Place that code in a new libply-boot-client library, and install
the headers along with it.

15 years ago[keyboard] Handle tty hangup better
Ray Strode [Thu, 25 Feb 2010 20:37:43 +0000 (15:37 -0500)] 
[keyboard] Handle tty hangup better

We currently reconnect the terminal object on tty disconnects,
but we don't rewatch the keyboard. A disconnect will invalidate
the fd watch, so we need to handle it to prevent crashes.

15 years ago[server] Add debugging statements
Ray Strode [Mon, 15 Feb 2010 20:39:39 +0000 (15:39 -0500)] 
[server] Add debugging statements

15 years ago[libply-splash-core] Install to / instead of /usr
Ray Strode [Wed, 27 Jan 2010 14:43:04 +0000 (09:43 -0500)] 
[libply-splash-core] Install to / instead of /usr

Since plymouthd links against this library, we should
probably move it to /lib if plymouthd is installed in
/sbin

15 years ago[main] Defer password requests to client if daemon unavailable
Ray Strode [Tue, 26 Jan 2010 06:13:33 +0000 (01:13 -0500)] 
[main] Defer password requests to client if daemon unavailable

There are times when plymouthd isn't in a position to ask for
the password (for instance, if the initramfs is about to run
init=/bin/bash or something).  In those cases, any password
requests need to be handled by the client.

15 years ago[main] Send CTRL-C instead of NULL for password cancel
Ray Strode [Tue, 26 Jan 2010 06:10:09 +0000 (01:10 -0500)] 
[main] Send CTRL-C instead of NULL for password cancel

We'll want to use NULL for "daemon can't ask"

15 years ago[client] add debugging statements
Ray Strode [Tue, 26 Jan 2010 06:03:38 +0000 (01:03 -0500)] 
[client] add debugging statements

15 years ago[client] Run ask-for-password command unconditionally
Ray Strode [Mon, 25 Jan 2010 22:07:56 +0000 (17:07 -0500)] 
[client] Run ask-for-password command unconditionally

Even if we can't contact the daemon, we should still run the
ask-for-password command.  This is because the command may
do things important for boot up to continue like unlocking
the root partition.

15 years ago[client] Don't exit right away if daemon unavailable
Ray Strode [Mon, 25 Jan 2010 22:06:53 +0000 (17:06 -0500)] 
[client] Don't exit right away if daemon unavailable

We're going to want to be able to carry on in some cases
even if the daemon isn't there.

15 years ago[client] debug mode if plymouth:debug in /proc/cmdline
Ray Strode [Mon, 25 Jan 2010 22:29:31 +0000 (17:29 -0500)] 
[client] debug mode if plymouth:debug in /proc/cmdline

We currently do this for the daemon.  We should do it for
the client as well.

15 years ago[script] Add get functions for all sprite properties
Charlie Brej [Mon, 25 Jan 2010 23:10:24 +0000 (23:10 +0000)] 
[script] Add get functions for all sprite properties

Adds GetImage/X/Y/Z/Opacity to get the current values of the sprites.
This is for convenience of not having to store them in the script.

15 years ago[script] Use floor when implementing Int
Charlie Brej [Mon, 25 Jan 2010 20:36:35 +0000 (20:36 +0000)] 
[script] Use floor when implementing Int

Previously the Math.Int function converted to int and back to double.
The floor function works larger than those represented by integers and it
correctly handles NaN and Inf.

15 years ago[script] Add a random number generator
Charlie Brej [Mon, 25 Jan 2010 20:31:17 +0000 (20:31 +0000)] 
[script] Add a random number generator

Adds Math.Random() which returns a random number between 0 and 1.

15 years ago[daemon] drop libply-splash-graphics dependency
Ray Strode [Thu, 14 Jan 2010 22:26:26 +0000 (17:26 -0500)] 
[daemon] drop libply-splash-graphics dependency

15 years ago[branch-merge] Drop libpng requirements from base install
Ray Strode [Thu, 14 Jan 2010 22:05:15 +0000 (17:05 -0500)] 
[branch-merge] Drop libpng requirements from base install

Right now, plymouthd links against libplybootsplash which links
against libpng.  Only graphical splashes use libpng, but it's
always pulled in.

This merge splits libplybootsplash into two libraries: the core
bits, and the extractable graphical bits.  Only the graphical splashes
link against the latter library.  This way server installations can
get plymouth without pulling in libpng.  This will reduce the amount
of security errata deployed to those server installations.

15 years ago[splash] Split out graphical parts of libply-splash-core optionalize-library-dependencies
Ray Strode [Wed, 13 Jan 2010 21:05:21 +0000 (16:05 -0500)] 
[splash] Split out graphical parts of libply-splash-core

We now have a libply-splash-graphics for handling the
graphical bits.  In particular, this means plymouthd no
longer links against libpng.

15 years ago[splash] Rename libplybootsplash to libply-splash-core
Ray Strode [Wed, 13 Jan 2010 19:27:46 +0000 (14:27 -0500)] 
[splash] Rename libplybootsplash to libply-splash-core

Splashes aren't just shown for "boot" so including "boot" in
the name isn't right.  Also, right now we link against libpng
even if we don't have any splash that uses it.  This is the first
step toward making libpng only get linked to graphical splashes.

We'll need to move the graphical bits to their own library to
complete the process.

15 years ago[details] don't include ply-image.h
Ray Strode [Wed, 13 Jan 2010 21:06:02 +0000 (16:06 -0500)] 
[details] don't include ply-image.h

15 years ago[main] quit program when quit given after deactivate
Scott James Remnant [Wed, 23 Dec 2009 03:44:21 +0000 (22:44 -0500)] 
[main] quit program when quit given after deactivate

If plymouth quit (without --retain-splash) follows plymouth deactivate,
plymouth will never actually quit (or pull the trigger for the client)

15 years ago[main] avoid crash when no splash running
Scott James Remnant [Wed, 23 Dec 2009 03:42:40 +0000 (22:42 -0500)] 
[main] avoid crash when no splash running

We haven't saved the passed deactivate trigger to the state,
so it won't be set there.  Just pull it directly.

15 years ago[main] Don't free renderer when NULL
Scott James Remnant [Wed, 23 Dec 2009 03:42:19 +0000 (22:42 -0500)] 
[main] Don't free renderer when NULL

If we weren't showing the splash screen, we'll have no renderer

15 years ago[branch-merge] Add man page
Ray Strode [Wed, 16 Dec 2009 18:20:34 +0000 (13:20 -0500)] 
[branch-merge] Add man page

This merges the "man-page" branch to master.

Thanks to Adrian Glaubitz we now have a man page for plymouth.

This is a good start to documenting the basics of plymouth.

We'll eventually need more comprehensive reference documentation
before 1.0 is released, and now we have some of the ground work
(a docs/ directory) for that.

15 years ago[docs] Remove commented out section from man page man-page
Ray Strode [Wed, 16 Dec 2009 18:19:23 +0000 (13:19 -0500)] 
[docs] Remove commented out section from man page

We don't have a --version and it was adding a gap in the output

15 years ago[docs] Update home page url in man page
Ray Strode [Wed, 16 Dec 2009 14:06:52 +0000 (09:06 -0500)] 
[docs] Update home page url in man page

15 years ago[docs] Fix AUTHORS in man page
Ray Strode [Wed, 16 Dec 2009 14:05:50 +0000 (09:05 -0500)] 
[docs] Fix AUTHORS in man page

15 years ago[docs] Clarify "rhgb" cmdline option in man page
Ray Strode [Wed, 16 Dec 2009 13:53:03 +0000 (08:53 -0500)] 
[docs] Clarify "rhgb" cmdline option in man page

Previously, it said that "rhgb" was required for plymouth
to run, but plymouth runs no matter what.  This just
specifies which splash is displayed

15 years ago[docs] Remove instructions about boot loader
Ray Strode [Wed, 16 Dec 2009 13:48:45 +0000 (08:48 -0500)] 
[docs] Remove instructions about boot loader

They weren't completely accurate, you don't need to reinstall
grub after editing its config, since it has built-in filesystem
drivers.  Also, those details very from system to system, so we
should probably just leave it out.

15 years ago[docs] Add reference to splash cmdline in man page
Ray Strode [Wed, 16 Dec 2009 13:47:17 +0000 (08:47 -0500)] 
[docs] Add reference to splash cmdline in man page

It referenced rhgb, but not splash.  While rhgb was
there first, most distributions use splash since it's
more logical (among other reasons).

15 years ago[docs] Remove distribution references from man page
Ray Strode [Wed, 16 Dec 2009 13:41:33 +0000 (08:41 -0500)] 
[docs] Remove distribution references from man page

We don't want to provide a history of what distributions
used before plymouth, because that history could get long,
isn't super relevant, and will add noise for a users looking
for help (they probably only care about their distributions,
not others).

15 years ago[docs] Rename man/ to docs/
Ray Strode [Wed, 16 Dec 2009 13:37:58 +0000 (08:37 -0500)] 
[docs] Rename man/ to docs/

This way we can put other documents there as well.

15 years ago[docs] Add man page
Adrian Glaubitz [Tue, 15 Dec 2009 22:59:20 +0000 (23:59 +0100)] 
[docs] Add man page

It explains the basic concepts of plymouth and the usage of tools to be
used to setup it.

15 years ago[set-default-theme] Provide GNU-style short options
Adrian Glaubitz [Tue, 15 Dec 2009 22:11:41 +0000 (23:11 +0100)] 
[set-default-theme] Provide GNU-style short options

15 years ago[set-default-theme] Make --help format match that of plymouth and plymouthd
Charlie Brej [Mon, 14 Dec 2009 21:29:01 +0000 (21:29 +0000)] 
[set-default-theme] Make --help format match that of plymouth and plymouthd

Minor rejig to make the help messages more consistant. Also removes some tabs
and empty lines.

15 years ago[set-default-theme] Call usage function in --help
Ray Strode [Sat, 5 Dec 2009 17:08:53 +0000 (12:08 -0500)] 
[set-default-theme] Call usage function in --help

This way the top line of the help output gives usage.

15 years ago[set-default-theme] Add --help option
Adrian Glaubitz [Sat, 5 Dec 2009 17:05:10 +0000 (12:05 -0500)] 
[set-default-theme] Add --help option

When running new, unfamiliar commands I usually invoke them with
--help to see what options they have. For plymouth-set-default-theme,
there is no --help option which I find a bit confusing, especially
since the usage is not straight-forward.

There is now an additional function "show_help" which displays an
help output when invoking plymouth-set-default-theme with --help.

15 years ago[main] Fix fd leak
Scott James Remnant [Fri, 4 Dec 2009 16:02:31 +0000 (11:02 -0500)] 
[main] Fix fd leak

When redirecting stdio to the tty, the
tty was opened and its fd was dup()'d to
the standard ones, but then wasn't closed.

15 years ago[script] Add widow get position functions
Charlie Brej [Wed, 2 Dec 2009 22:23:26 +0000 (22:23 +0000)] 
[script] Add widow get position functions

These are the Window.GetX/Y that pair up with Window.SetX/Y already present.
They return the position of the window.

15 years ago[configure] Make maintainer mode default to on but not explicit in autogen
Charlie Brej [Mon, 30 Nov 2009 22:17:14 +0000 (22:17 +0000)] 
[configure] Make maintainer mode default to on but not explicit in autogen

Maintainer mode is assumed on when executing configure, and thus is not needed
within autogen.

15 years ago[viewer] Quit on window close when not in icon mode.
Charlie Brej [Sun, 29 Nov 2009 22:30:29 +0000 (22:30 +0000)] 
[viewer] Quit on window close when not in icon mode.

Previously, in non-icon mode when clicking on the window decoration close, the
window would hide and carry on running. It should quit.

https://bugs.freedesktop.org/show_bug.cgi?id=20228

15 years ago[fade-throbber] Draw password dialog even if not animating
Charlie Brej [Sun, 29 Nov 2009 13:11:39 +0000 (13:11 +0000)] 
[fade-throbber] Draw password dialog even if not animating

If is_animating was not set, the draw would quit before drawing the dialog.

15 years ago[script] Pass color to the text renderer
Charlie Brej [Sun, 29 Nov 2009 02:51:10 +0000 (02:51 +0000)] 
[script] Pass color to the text renderer

We collected the color information before, but did nothing with it.

15 years ago[label] Add color control
Charlie Brej [Sun, 29 Nov 2009 02:35:10 +0000 (02:35 +0000)] 
[label] Add color control

Previously we drew two overlapping labels, one in black and one in white, to
make sure it was vsible on all backgrounds. Now we can pick an appropreate
color for each theme. The default is white. If changing the label color once it
has been shown, it will redraw that part of the screen.

15 years ago[script] Allow setting the position of the windows
Charlie Brej [Sun, 29 Nov 2009 01:19:37 +0000 (01:19 +0000)] 
[script] Allow setting the position of the windows

Although the windows are set up to in a reasonable default configuration, the
themes may align the windows differently to not crop some important elements.

The Window.SetX and SetY allow positioning the window anywhere on the canvas.
Use this sparingly as it induces a full refresh of all screens.

If there is a desire to have totally different scenes, the second window can be
positioned somewhere far away so there is overlap and a complete different set
of sprites is used. Another sensible configuration is to have the screens side
by side and allow sprites to span the gap. Remember to create password dialogs
for each screen as not all may be visible.

15 years ago[script] Handle multiple displays with one script instance
Charlie Brej [Sun, 29 Nov 2009 00:20:52 +0000 (00:20 +0000)] 
[script] Handle multiple displays with one script instance

When multiple displays were introduced, each display had its own script plugin
instance. This made things easy as the scripts would not have to be rewritten
for multiple screens. Unfortunately this also meant that each image was loaded
multiple times, and the scripts consumed much more processing power.
Additionally the scripts were not aware of each other.

This patch allows a single script instance to control multiple displays while
maintaining reasonable backward compatibility. All sprites are placed on a
virtual canvas. Displays (or windows) then expose parts of this canvas to the
user.

As a default, window 0 is placed at 0,0. Further windows are placed on top of
the window 0 area matching the centre point so the password dialog (which is
placed in the centre) is visible on all windows. If you target window 0 only
and you place dialogs in the middle of the screen, then everything should work
fine.

Window.GetWidth/GetHeight now takes a window number (if none supplied it will
assume 0). If it replies a NULL, then you accessed beyond the end of the
window set.

15 years ago[list] Initialise node in the get Nth function
Charlie Brej [Sat, 28 Nov 2009 23:52:53 +0000 (23:52 +0000)] 
[list] Initialise node in the get Nth function

Typo in the previous patch.

15 years ago[list] Add get Nth node function
Charlie Brej [Sat, 28 Nov 2009 23:31:11 +0000 (23:31 +0000)] 
[list] Add get Nth node function

Gets the Nth node in the list. If the index is outside the range, it will
return NULL

15 years ago[list] Add a stable sort
Charlie Brej [Sat, 28 Nov 2009 20:08:09 +0000 (20:08 +0000)] 
[list] Add a stable sort

Stable sort sorts but does not change the order of elements which are equal.
This is important in the sprite based plugins where if the level of the sprites
is equal because it may be unimportant which is on top, changing the order
between frames looks bad.

15 years ago[region] Actually perform the sort when requested
Charlie Brej [Sat, 28 Nov 2009 19:35:38 +0000 (19:35 +0000)] 
[region] Actually perform the sort when requested

Typo, sort line was missing.

15 years ago[region] Allow rectangles to be sorted before being fed back
Charlie Brej [Sat, 28 Nov 2009 19:10:53 +0000 (19:10 +0000)] 
[region] Allow rectangles to be sorted before being fed back

The renderers commit the rectangles derived from the region in a random order.
This gives some tearing as the screen is displayed with a random regions in
their new state. The change sorts the list of rectangles according to their Y
value to commit them from top to bottom. This gives fewer tear lines.

15 years ago[list] Replace the old sort function with quicksort
Charlie Brej [Sat, 28 Nov 2009 18:51:54 +0000 (18:51 +0000)] 
[list] Replace the old sort function with quicksort

It is a simple quicksort implementation which does no randomisation.

15 years ago[list] Adds tests of the sort function
Charlie Brej [Sat, 28 Nov 2009 18:47:44 +0000 (18:47 +0000)] 
[list] Adds tests of the sort function

Sorts 100 random integers. Reports any out of order and returns an error code.

15 years ago[list] Add test code of the sort function
Charlie Brej [Sat, 28 Nov 2009 18:45:49 +0000 (18:45 +0000)] 
[list] Add test code of the sort function

15 years ago[branch-merge] Improve plymouth -> X hand off
Ray Strode [Sat, 28 Nov 2009 04:44:21 +0000 (23:44 -0500)] 
[branch-merge] Improve plymouth -> X hand off

This merges the "no-fbcon" branch to master.

Previously, the way to get a transition between
plymouth and X was for plymouth to quit,
leaving the tty in KD_GRAPHICS mode, and hope
X starts and picks up the peices.  In this
limbo state where plymouth isn't running but X
isn't started yet the user is unable to
switch VTs or really do anything at all.

If X doesn't start then the user is hosed; they
have to reboot.

Now, instead of quitting plymouth before starting
X we "deactivate" it.  This gets plymouth into a
state where X can take over the display, but
plymouth stays running.  Once X has fully started
up or failed to start the display manager can
tell plymouth to quit (with --retain-splash if
X started successfully and without if X started
unsucessfully)

15 years ago[client] Add new deactivate subcommand no-fbcon
Ray Strode [Sat, 28 Nov 2009 04:34:05 +0000 (23:34 -0500)] 
[client] Add new deactivate subcommand

This tells the daemon we're about to start X with -nr and
to get ready for the transition.

15 years ago[daemon] deactivate daemon for X transition
Ray Strode [Sat, 28 Nov 2009 04:29:30 +0000 (23:29 -0500)] 
[daemon] deactivate daemon for X transition

In order for plymouth to be able to stay around until
after X is started, we need to put the daemon into a
"deactivated" state where it makes the splash becomes idle
and relinquishes control of the scan out hardware and keyboard
for X to seize.

This commit listens for deactivation requests in the daemon and
performs the deactivation.

A future commit will implement the client bits needed.

15 years ago[x11] implement new activate/deactivate methods
Ray Strode [Sat, 28 Nov 2009 04:19:01 +0000 (23:19 -0500)] 
[x11] implement new activate/deactivate methods

We disable flushing when inactive.

15 years ago[frame-buffer] implement new activate/deactivate methods
Ray Strode [Sat, 28 Nov 2009 04:19:01 +0000 (23:19 -0500)] 
[frame-buffer] implement new activate/deactivate methods

We basically just do what we were doing before
implicitly on VT switch, explicitly on activate
and deactivate.

15 years ago[drm] implement new activate/deactivate methods
Ray Strode [Sat, 28 Nov 2009 04:19:01 +0000 (23:19 -0500)] 
[drm] implement new activate/deactivate methods

We basically just do what we were doing before on
implicitly on VT switch, explicitly on activate
and deactivate.

We also don't scan out the splash to the fbcon
on unmap if the renderer is inactive.

15 years ago[renderer] Add new activate and deactivate methods
Ray Strode [Sat, 28 Nov 2009 04:14:16 +0000 (23:14 -0500)] 
[renderer] Add new activate and deactivate methods

The point of these methods are to put the renderer in
and out of a state where it is no longer going to
be on screen.

This should cause flush calls to be no-ops and device
specific locks should be dropped.

These methods will be necessary to keep plymouth running
while X is getting started up.

15 years ago[main] only set keyboard on splash if available
Ray Strode [Sat, 28 Nov 2009 05:24:21 +0000 (00:24 -0500)] 
[main] only set keyboard on splash if available

There may be cases where there is no keyboard set.

15 years ago[main] make keyboard removal idempotent
Ray Strode [Sat, 28 Nov 2009 05:16:22 +0000 (00:16 -0500)] 
[main] make keyboard removal idempotent

15 years ago[main] drop stray debugging remnant
Ray Strode [Sat, 28 Nov 2009 04:40:44 +0000 (23:40 -0500)] 
[main] drop stray debugging remnant

15 years ago[script] Remove some debug code
Charlie Brej [Tue, 24 Nov 2009 23:03:19 +0000 (23:03 +0000)] 
[script] Remove some debug code

Testing with it replying random strings to make sure the error cases were
caught. Code accidentally left in.

15 years ago[script] Add string library and the first function "CharAt"
Charlie Brej [Tue, 24 Nov 2009 22:46:27 +0000 (22:46 +0000)] 
[script] Add string library and the first function "CharAt"

Currently the strings must be manually told to adopt from the library functions
by using String("string").function(). This is temporary and later it should be
possible to apply functions directly to strings.

CharAt gives the a single character string at the index specified. The first
character is at index zero. Characters beyon the end are empty strings, and
errors return NULL. This can be used thusly:

str = "something";
letter = String(str).CharAt(7); # letter = "n"
letter = String(str).CharAt(12); # letter = ""
letter = String(str).CharAt("foo"); # letter = NULL

15 years ago[script] Use a region to collate all updated areas
Charlie Brej [Mon, 23 Nov 2009 00:41:02 +0000 (00:41 +0000)] 
[script] Use a region to collate all updated areas

Previously, refresh, each sprite would refresh its old area, then its new area.
This, combined with situations where there are many sprites caused the area to
be redrawn many times, each time redrawing each overlapping sprite data.

Now we add all areas which need to be refreshed to a region and this makes a
smaller set of rectangles to refresh, and these are not overlapping.

Also uses the freeze display updates, which should work better now.

15 years ago[rectangle] Add exact overlap detection
Charlie Brej [Mon, 23 Nov 2009 00:23:22 +0000 (00:23 +0000)] 
[rectangle] Add exact overlap detection

If the width and X position of the two rectangles is the same, we can merge
them together. The new set of exact overlaps detects this and determines the
direction the rectangle should be extended.

The region code now uses this. WARNING, when expanding rectangles, these have
to be merged with the other rectangles down the list as there may be overlap.

15 years ago[rectangle] Rewrite rectangle_find_overlap function
Charlie Brej [Sun, 22 Nov 2009 23:53:48 +0000 (23:53 +0000)] 
[rectangle] Rewrite rectangle_find_overlap function

The previous version had a flaw where it would find the rectangles overlapping
if they spanned a range in one axis. Despite them having no overlap in the
other axis.

Because this version has strange (although correct) behaviour when dealing with
empty rectangles, region only calls the overlap function when both rectangles
are not-empty.

The issue is if an empty rectangle sits on the edge of a full rectangle, the
function reports (possibly correctly) that the edge is overlapped by the empty
rectangle. The region code then nudges the rectangle down one space and
subtracts one from the empty rectangle height. This creates a rectangle with
negative height (bad thing).

If the other version can be fixed I will put it back, but this one is also
useful for the combining two rectangles of equal width.

15 years ago[region] Remove element only after processing
Charlie Brej [Sun, 22 Nov 2009 22:53:12 +0000 (22:53 +0000)] 
[region] Remove element only after processing

Now that we cannot rely on the next_node element. We must finish processing the
entry before removing it. Easiest way is to recurse and remove after return.

15 years ago[region] Break circular dependency using an extra variable
Charlie Brej [Sun, 22 Nov 2009 22:47:40 +0000 (22:47 +0000)] 
[region] Break circular dependency using an extra variable

new_area->width depends on new_area->x and vice versa. Break the dependency by
adding a temp variable.

15 years ago[region] Couple more minor bugs in rectangle merge
Charlie Brej [Sun, 22 Nov 2009 22:42:13 +0000 (22:42 +0000)] 
[region] Couple more minor bugs in rectangle merge

Also one redundant line. I think this code was never used in anger. There is a
major bug in the rectangle collision code which makes this detection ad-hoc.

15 years ago[region] Overlap top right edge lower rectangle starts right of the old
Charlie Brej [Sun, 22 Nov 2009 22:30:58 +0000 (22:30 +0000)] 
[region] Overlap top right edge lower rectangle starts right of the old

Probably a typo in the original version.

15 years ago[region] Free rectangle if empty
Charlie Brej [Sun, 22 Nov 2009 22:27:40 +0000 (22:27 +0000)] 
[region] Free rectangle if empty

Previously we just returned and did not free.

15 years ago[region] Do not prefetch next rectangle node while processing list
Charlie Brej [Sun, 22 Nov 2009 22:21:49 +0000 (22:21 +0000)] 
[region] Do not prefetch next rectangle node while processing list

If we fetch the next node while working on the current node, recursing down the
list may remove the next node. Just to be double sure, we recurse direct to
next node so the current is not damaged.

15 years ago[region] Clarify the testing code
Charlie Brej [Sun, 22 Nov 2009 22:12:58 +0000 (22:12 +0000)] 
[region] Clarify the testing code

The grids show which parts were not covered, or over covered.

15 years ago[region] Added test program
Charlie Brej [Sun, 22 Nov 2009 21:42:12 +0000 (21:42 +0000)] 
[region] Added test program

This examines the behaviour for correct behavious and performance.

15 years ago[script] Fix typo in SetBackgroundBottomColor function name
Charlie Brej [Sun, 22 Nov 2009 21:19:52 +0000 (21:19 +0000)] 
[script] Fix typo in SetBackgroundBottomColor function name

This is in the compatibility wrappers so it didn't effect anything..

15 years ago[x11] Force refresh area to start at 0,0
Charlie Brej [Sat, 21 Nov 2009 22:35:55 +0000 (22:35 +0000)] 
[x11] Force refresh area to start at 0,0

The x and y values, in area element, were used to determine the position of the
window on the screen. With the x and y not at 0, the full redraw not working
correctly on the second head.

15 years ago[script] Add text to image capability
Charlie Brej [Sat, 21 Nov 2009 17:45:41 +0000 (17:45 +0000)] 
[script] Add text to image capability

Enables scripts to display test by converting it into an image. This can then
be shown using a sprite. Function takes a string and the value of the three
colors (red green blue).

new_image = Image.Text("text we want", 1.0, 0.0, 0.0); // gives red text image

15 years ago[script] Migrate from image to pixel buffer
Charlie Brej [Sat, 21 Nov 2009 16:30:34 +0000 (16:30 +0000)] 
[script] Migrate from image to pixel buffer

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.

15 years ago[pixel-buffer] Move resize and rotate function from image to pixel buffer
Charlie Brej [Sat, 21 Nov 2009 15:51:17 +0000 (15:51 +0000)] 
[pixel-buffer] Move resize and rotate function from image to pixel buffer

There are comparability versions in image, but these are now deprecated.

15 years ago[image] Allow converting an image to a pixel buffer
Charlie Brej [Sat, 21 Nov 2009 14:10:23 +0000 (14:10 +0000)] 
[image] Allow converting an image to a pixel buffer

A pixel buffer is a much more useful object to manipulate. The image should
only be used when loading from files and never manipulating.

15 years ago[fade-throbber] Initialise views before animating
Charlie Brej [Sat, 21 Nov 2009 12:52:48 +0000 (12:52 +0000)] 
[fade-throbber] Initialise views before animating

Only run the call to animation after all views are initialised. No visible
changes but this is more correct.

15 years ago[fade-throbber] Move some operations from view to plugin start animation
Charlie Brej [Sat, 21 Nov 2009 12:45:45 +0000 (12:45 +0000)] 
[fade-throbber] Move some operations from view to plugin start animation

There were timeouts called once for each view and the first view would cause
is_animating to be set which would stop other views from initialising.

15 years ago[fade-throbber] Move logo opacity value to individual views
Charlie Brej [Sat, 21 Nov 2009 12:35:09 +0000 (12:35 +0000)] 
[fade-throbber] Move logo opacity value to individual views

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.

15 years ago[image] Use a pixel buffer to hold the image size and data
Charlie Brej [Thu, 19 Nov 2009 23:55:22 +0000 (23:55 +0000)] 
[image] Use a pixel buffer to hold the image size and data

The image structure now contains a pixel buffer which holds the data. Some
functions are still within image for compatibility during the migration.

15 years ago[image] Remove fd from the image structure
Charlie Brej [Thu, 19 Nov 2009 23:21:22 +0000 (23:21 +0000)] 
[image] Remove fd from the image structure

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.