Commit graph

1155 commits

Author SHA1 Message Date
Ray Strode
e73e8cadd6 [event-loop] ignore EAGAIN
Sometimes when debugging under gdb, epoll_wait spuriously
returns EAGAIN.

We treat it like EINTR now.
2009-10-04 10:44:16 -04:00
Ray Strode
9fd849e130 [text-progress-bar] Don't segfault if no os string
Some distributions won't have a release file that
we know about.  In those cases, we shouldn't crash.
2009-10-01 10:22:28 -04:00
Ray Strode
a76c5bc4b7 [drm] Force raw mode on each draw cycle
This is just

602d997200

all over again.
2009-09-29 13:18:54 -04:00
Ray Strode
d294f5d891 [terminal] Force raw mode when reopening terminal
If we need to reopen the terminal for whatever reason,
we'll also need to reset its attributes for input to work.
2009-09-29 13:18:54 -04:00
Ray Strode
651f748111 Bump to 0.8.0
Next release will be 0.8.0 (it's a bit off though)
2009-09-28 18:11:05 -04:00
Ray Strode
3fe3aabc7b [branch-merge] Support multi-head renderering
This merges the "seat-rework" branch to master.

Instead of talking to /dev/fb, we now use libdrm
to set up the drawing area.  This gives us the
functionality we need for querying the user's
monitor layout.

There are cases where /dev/fb works when the new
interfaces don't.  For those cases we fall back
to /dev/fb.
2009-09-28 18:03:11 -04:00
Ray Strode
6ceccc7ce8 [throbber] Properly finish animation before stopping
I can't say I have any idea what I was trying to do before
but it's clearly bogus.
2009-09-28 17:55:35 -04:00
Ray Strode
1cf529bd9b [animation] Make ply_animation_start idempotent 2009-09-28 17:55:34 -04:00
Ray Strode
1b10da8890 [animation] Use default event loop 2009-09-28 17:55:34 -04:00
Ray Strode
0b763c61b4 [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.
2009-09-28 17:55:34 -04:00
Ray Strode
fe6ee7723a [drm] Add initial support for nvidia cards 2009-09-28 17:55:34 -04:00
Ray Strode
70b9868a62 [drm] Add initial support for radeon cards 2009-09-28 17:55:34 -04:00
Ray Strode
f2048af97d [drm] Add initial support for intel cards 2009-09-28 17:55:34 -04:00
Ray Strode
920051bc55 [drm] Add start of a drm plugin
This commit adds most of the non-driver specific bits
necessary for backing a renderer plugin.

Subsequent commits will add the driver specific bits.
2009-09-28 17:55:19 -04:00
Ray Strode
069839a58b [utils] Add ply_round_to_multiple macro
We'll need something like this for rowstride calculation
2009-09-28 11:23:40 -04:00
Ray Strode
4c45ba1df7 [libplybootsplash] Drop window class
It's been obsoleted by the display, keyboard, console and terminal
classes.
2009-09-28 11:23:40 -04:00
Ray Strode
c788111616 [libply] Drop frame-buffer class
We no longer use it now that we have the pixel-display class,
pixel buffers, etc.
2009-09-28 11:23:40 -04:00
Ray Strode
b71822f58c [image] Drop test code
It won't work when frame buffer is removed.

I really want to redo how tests are done anyway, to be
more automated.
2009-09-28 11:23:40 -04:00
Ray Strode
c858c06ad5 [utils] drop ply_switch_to_vt
It's been replaced by ply_console_set_active_vt, and won't
work right because of ply-console anyway.
2009-09-28 11:23:40 -04:00
Ray Strode
a9160a9b54 [main] switch to vt that plymouth is running on at startup 2009-09-28 11:23:40 -04:00
Ray Strode
ae60ff52cd [main] Update to use new multihead interface 2009-09-28 11:23:39 -04:00
Ray Strode
4b64ff4e56 [two-step] Update to use new multihead interface 2009-09-28 11:23:39 -04:00
Ray Strode
dfa457ba50 [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.
2009-09-28 11:23:39 -04:00
Ray Strode
1a516d3635 [throbgress] Update to use new multihead interface 2009-09-28 11:23:39 -04:00
Ray Strode
d0f225b93a [text] Update to use new multihead interface 2009-09-28 11:23:39 -04:00
Ray Strode
6e97f03437 [space-flares] Update to use new multihead interface 2009-09-28 11:23:39 -04:00
Ray Strode
5d0a49bc19 [script] Update to use new multihead interface 2009-09-28 11:23:38 -04:00
Ray Strode
b66fda6700 [fade-throbber] Update to use new multihead interface 2009-09-28 11:23:38 -04:00
Ray Strode
20b9f2e65b [details] Update to use new multihead interface 2009-09-28 11:23:38 -04:00
Ray Strode
096d21883e [text-progress-bar] Use text display instead of window 2009-09-28 11:23:38 -04:00
Ray Strode
98ef9818a7 [progress-bar] Use pixel display instead of window 2009-09-28 11:23:38 -04:00
Ray Strode
f9fd1c105c [progress-animation] Use pixel display instead of window 2009-09-28 11:23:38 -04:00
Ray Strode
9c13072679 [throbber] Use pixel display instead of window 2009-09-28 11:23:37 -04:00
Ray Strode
7376ad9d95 [animation] Use pixel display instead of window 2009-09-28 11:23:37 -04:00
Ray Strode
d27523ddcf [entry] Use pixel display instead of window 2009-09-28 11:23:37 -04:00
Ray Strode
d60e817609 [label] Use pixel display instead of window 2009-09-28 11:23:37 -04:00
Ray Strode
6c6ecf5e2d [boot-splash] Update to use new multihead interface
The boot splash plugin now takes in a keyboard, text
displays, pixel displays, and the console.

I passes those along to the plugins, and listens for
key strokes to handle CTRL-L refresh and other keybindings.

So now it's assuming some of the role of ply-window.
2009-09-28 11:23:37 -04:00
Ray Strode
d47959e042 [renderer] Add start of frame-buffer plugin
Much of this code comes directly from ply-frame-buffer in libply,
but shoehorned to fit into the renderer plugin interface.

One improvement over the old code is it tracks VT changes, and
stops drawing when the wrong VT is active.
2009-09-28 11:23:37 -04:00
Ray Strode
91abc08d3b [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.
2009-09-28 11:23:36 -04:00
Ray Strode
6479cc162c [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.
2009-09-28 11:23:36 -04:00
Ray Strode
846d609e5f [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.
2009-09-28 11:23:36 -04:00
Ray Strode
48d4f00052 [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.
2009-09-28 11:23:36 -04:00
Ray Strode
f183218c73 [libplybootsplash] Add console class
This serves a few purposes:

1) To watch for VT changes
2) To make VT changes
3) To put the console in KD_GRAPHICS mode

The latter is handled by the window class right now, but I want to
drop the window class.
2009-09-28 11:23:36 -04:00
Ray Strode
a018e96d5f [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.
2009-09-28 11:23:36 -04:00
Ray Strode
33d5702de6 [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.
2009-09-28 11:23:35 -04:00
Ray Strode
b032e6d4f4 [libply] Add new region class
Sometimes it's necessary to deal with a disjoint
set of rectangles together.

One big example is when keeping track of which parts of
the screen have changed.

Another example would be for non-rectangular clip masks.

This commit adds a new region class to simplify the handling
of these types of cases.
2009-09-28 11:23:35 -04:00
Ray Strode
97178ba761 [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.
2009-09-28 11:23:35 -04:00
Ray Strode
376742c50f [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.
2009-09-28 11:23:35 -04:00
Ray Strode
d338e6becb [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.
2009-09-28 11:23:35 -04:00
Ray Strode
a8f0572cb2 [configure] Bump to 0.7.2 2009-09-28 11:01:28 -04:00