Ray Strode [Mon, 28 Sep 2009 21:27:56 +0000 (17:27 -0400)]
[drm] Force fb backend if 1 head and ttm driver
Drivers backed by TTM memory manager don't support mapping the
kernel backed framebuffer console, so can't be used for doing
a smooth transition (unless you use /dev/fb). In single head
configurations, there isn't a big advantage to using libdrm
anyway, so we bail for TTM drivers.
Ray Strode [Wed, 16 Sep 2009 17:39:35 +0000 (13:39 -0400)]
[trigger] add new ignore_next_pull method
It can be cumbersome to wait for multiple operations to finish before
pulling a trigger. In those cases, one option would be to have a
separate trigger for each operation, and then wait until every trigger
is pulled before pulling the main trigger.
This commit instead allows a trigger to get pulled more
than once before it actually fires. By calling ignore_next_pull
once for each suboperaton, and immediately pulling the trigger,
it won't fire until the last operation finishes.
Ray Strode [Fri, 21 Aug 2009 23:21:53 +0000 (19:21 -0400)]
[libplybootsplash] Add pixel-display class
This is the graphical output portion of the window class. This
commit and the previous few commits lay the foundation needed
for dropping the window class and getting multi-head rendering support.
Ray Strode [Fri, 21 Aug 2009 23:21:53 +0000 (19:21 -0400)]
[libplybootsplash] Add text-display class
This is the text output portion of the window class. With this commit
and a subsequent commit to split out the graphical output portion,
we should be able to drop the window class.
As mentioned earlier, this will give us the flexibility we
need for multi-head rendering.
Ray Strode [Fri, 21 Aug 2009 13:53:33 +0000 (09:53 -0400)]
[libplybootsplash] Add renderer class
In order to support multiple rendering backends, and multi-head
monitor layouts, I'm moving the actually rendering to render
plugins.
Examples of plugins could be frame-buffer, drm fb, and x11
(for debugging).
The renderer class is responsible for loading the appropriate rendering
backend, and providing an interface for the rendering backend to
advertise multiple displays.
Right now we only check for a frame-buffer plugin, although, it isn't
implemented yet.
Ray Strode [Wed, 16 Sep 2009 20:57:13 +0000 (16:57 -0400)]
[libplybootsplash] Add terminal class
This is the terminal settings portion of the window class. With this
commit and subsequent commits to split out the higher level text output,
and graphical output portions, we should be able to drop window
in favor of the new display classes.
Ray Strode [Fri, 21 Aug 2009 23:21:53 +0000 (19:21 -0400)]
[libplybootsplash] Add keyboard class
This is the input portion of the window class. With this commit
and subsequent commits to split out the output portions, we should
be able to drop the window class.
This will give us the flexibility we need for multi-head rendering.
Ray Strode [Thu, 20 Aug 2009 04:06:06 +0000 (00:06 -0400)]
[libplybootsplash] Add new pixel buffer class
Right now a lot of pixel manipulation functions are in the frame buffer
code. This means it's hard to do these types of things without the
results showing up on the display.
Furthermore, we want to get away from one frame buffer anyway for
multihead support. I can imagine each display in a multihead
configuration with its own pixel buffer, so splash plugins can draw to
the independently.
This commit adds the start of a pixel buffer class, which just copies
and pastes most of pixel-twiddling frame buffer code. There are some
changes to deal with pixel buffers not always having a final alpha of
1.0, and some changes to provide a more flexible interface for masking
fill operations.
At some point it will probably gain copy-and-pastes of the resize an
rotate code from the image class as well, and provide a mechansim for
have subpixbufs where rowstride != width.
Ray Strode [Thu, 20 Aug 2009 03:55:43 +0000 (23:55 -0400)]
[libply] Add new rectangle type
Previously we were using ply_frame_buffer_area_t even
when not dealing with a frame buffer area.
This commit adds a new general purpose rectangle type
to replace ply_frame_buffer_area_t. It has some
convenience functions for operating on rectangles as well.
Ray Strode [Thu, 27 Aug 2009 05:26:55 +0000 (01:26 -0400)]
[event-loop] Add ply_event_loop_get_default ()
The event loop is used all through out the code
for many different things. In order to use it
in all those various bits of code, it's getting
passed around a lot. This adds a lot of complexity
to the code.
The event loop should probably be a standard
resource that all parts of the code have free access
to in the same vein as the logging apis.
This commit adds a new function
ply_event_loop_get_default () and makes main use it
and pass it along.
Subsequent commits may clean up all the places that
take an event loop to just use this instead.
Ray Strode [Thu, 27 Aug 2009 03:09:46 +0000 (23:09 -0400)]
[libply] Drop terminal class
It was a really lame small wrapper around creating pseudoterminals.
The wrapper didn't buy anything and the name ply-terminal would be
better used for managing tty settings, etc.
Ray Strode [Wed, 16 Sep 2009 19:03:57 +0000 (15:03 -0400)]
[entry] Fix up max bullet calculation
Before we were counting space that could only fit a partial bullet as room
for a whole bullet. Now we look and see if there is enough extra space for
at least half a bullet (since the code will draw half a bullet in the case
of more bullets than can fit)
Charlie Brej [Thu, 10 Sep 2009 19:22:11 +0000 (20:22 +0100)]
[progress] Stop progress at 25% if progress file is not loaded
In cases where, before the file system is mounted, there is a very long pause,
the progress would continue all the way to 100% assuming a 60 second boot time.
It now stops at 25% to signal that something is wrong and moves to crawl mode
(nudging forward very very slowly).
Charlie Brej [Wed, 9 Sep 2009 16:28:40 +0000 (17:28 +0100)]
[script] Make "this" (the current object) a part of the status
This is now also looked up when evaluating vars. Vars are looked for in the
local context, then within this (current object) and finally within the
global context;
Ray Strode [Wed, 9 Sep 2009 15:26:46 +0000 (11:26 -0400)]
[populate-initrd] Try to find inst more aggressively
We've been using the inst function provided by mkinitrd
to install plymouth and its dependencies into the initrd
root, but mkinitrd may not be installed in a dracut world,
and dracut has its own inst function.
This commit tries getting access to either of them, before
bailing. At some point we may want to bundle our own inst
function or get a new flag added to /usr/bin/install to do
what inst does.
Charlie Brej [Thu, 3 Sep 2009 20:10:56 +0000 (21:10 +0100)]
[script] Clean up as_numer and as_bool functions
As_bool now returns false for 0.0 and NAN. It uses the fpclassify which should
be a clean way of testing for zero. The as_number function simplifies a switch
to an if.
Charlie Brej [Thu, 3 Sep 2009 12:45:41 +0000 (13:45 +0100)]
[progress] Make the progress percentage settable
The progress percentage is now settable. By "settable" this doesn't mean the
value will change to the new value, the set value is only a hint as to where
the progress should be at this point in time. So it it overshot or under-run,
the hint is used to determine how much time is left, and how fast to move the
bar.
Charlie Brej [Wed, 2 Sep 2009 20:21:05 +0000 (21:21 +0100)]
[script] Set "this" in functions called through an object
When functins are called as an element of an object (e.g. obj.func(par) ), the
object is passed into the function execution as "this" in the local context.
Charlie Brej [Tue, 1 Sep 2009 20:19:51 +0000 (21:19 +0100)]
[script] Use access functions when accessing variables
Rather than directly accessing hash tables when accessing variables, use the
abstraction functions. Adds a peek function which does not create a new object
is one has not been defined already.
Ray Strode [Tue, 25 Aug 2009 18:53:31 +0000 (14:53 -0400)]
[populate-initrd] Get plugin path from plymouth
Previously, we'd try to guess the plugin path based
on the arch of the running process. That's sort of
fragile, so better to just install plugins where
plymouth says it's going to look for them.
Ray Strode [Tue, 25 Aug 2009 11:43:09 +0000 (07:43 -0400)]
[utils] Force modules to stay resident after close
Some modules (the label plugin in particular) use
libraries with static data that don't do well with
being unmapped and remapped later.
This commit changes the module loading call so that
plugins aren't unmapped at close time (the close
is effectively ignored). This simplifies things
for now.
At some point we may want to make it decidable on
a per plugin basis.
Ray Strode [Tue, 25 Aug 2009 01:25:52 +0000 (21:25 -0400)]
[script] Force graphics mode before each frame
It's what all the other boot splash plugins do. This
is important because things occasionally muck with the
terminal during boot up (knocking it out of raw mode, etc),
and resetting the window graphics mode resets the terminal
settings as well.
Future, potentially better alternatives to this could be:
1) TIOCSLCKTRMIOS to lock the terminal settings
2) Using /dev/input instead of the tty for keyboard input