mirror of
https://gitlab.freedesktop.org/plymouth/plymouth.git
synced 2026-05-09 03:38:09 +02:00
Make fade-in plugin provide erase/draw handlers
This commit is contained in:
parent
0470ae47ed
commit
a5065a3495
2 changed files with 63 additions and 11 deletions
|
|
@ -124,9 +124,10 @@ ply_throbber_free (ply_throbber_t *throbber)
|
|||
static void
|
||||
draw_background (ply_throbber_t *throbber)
|
||||
{
|
||||
ply_frame_buffer_fill_with_gradient (throbber->frame_buffer, &throbber->frame_area,
|
||||
PLYMOUTH_BACKGROUND_START_COLOR,
|
||||
PLYMOUTH_BACKGROUND_END_COLOR);
|
||||
ply_window_erase_area (throbber->window,
|
||||
throbber->x, throbber->y,
|
||||
throbber->frame_area.width,
|
||||
throbber->frame_area.height);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
|||
|
|
@ -196,15 +196,18 @@ destroy_plugin (ply_boot_splash_plugin_t *plugin)
|
|||
|
||||
static void
|
||||
draw_background (ply_boot_splash_plugin_t *plugin,
|
||||
ply_frame_buffer_area_t *area)
|
||||
ply_frame_buffer_area_t *area)
|
||||
{
|
||||
#if 0
|
||||
ply_frame_buffer_fill_with_hex_color (plugin->frame_buffer, area,
|
||||
PLYMOUTH_BACKGROUND_COLOR);
|
||||
#else
|
||||
ply_frame_buffer_fill_with_gradient (plugin->frame_buffer, area,
|
||||
0x807c71, 0x3a362f);
|
||||
#endif
|
||||
ply_frame_buffer_area_t screen_area;
|
||||
|
||||
if (area == NULL)
|
||||
{
|
||||
ply_frame_buffer_get_size (plugin->frame_buffer, &screen_area);
|
||||
area = &screen_area;
|
||||
}
|
||||
|
||||
ply_window_erase_area (plugin->window, area->x, area->y,
|
||||
area->width, area->height);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
@ -417,6 +420,46 @@ on_enter (ply_boot_splash_plugin_t *plugin,
|
|||
start_animation (plugin);
|
||||
}
|
||||
|
||||
void
|
||||
on_draw (ply_boot_splash_plugin_t *plugin,
|
||||
int x,
|
||||
int y,
|
||||
int width,
|
||||
int height)
|
||||
{
|
||||
ply_frame_buffer_area_t area;
|
||||
|
||||
area.x = x;
|
||||
area.y = y;
|
||||
area.width = width;
|
||||
area.height = height;
|
||||
|
||||
draw_background (plugin, &area);
|
||||
|
||||
if (plugin->pending_password_answer != NULL)
|
||||
draw_password_entry (plugin);
|
||||
else
|
||||
animate_at_time (plugin, plugin->now);
|
||||
}
|
||||
|
||||
void
|
||||
on_erase (ply_boot_splash_plugin_t *plugin,
|
||||
int x,
|
||||
int y,
|
||||
int width,
|
||||
int height)
|
||||
{
|
||||
ply_frame_buffer_area_t area;
|
||||
|
||||
area.x = x;
|
||||
area.y = y;
|
||||
area.width = width;
|
||||
area.height = height;
|
||||
|
||||
ply_frame_buffer_fill_with_gradient (plugin->frame_buffer, &area,
|
||||
0x807c71, 0x3a362f);
|
||||
}
|
||||
|
||||
bool
|
||||
show_splash_screen (ply_boot_splash_plugin_t *plugin,
|
||||
ply_event_loop_t *loop,
|
||||
|
|
@ -436,6 +479,14 @@ show_splash_screen (ply_boot_splash_plugin_t *plugin,
|
|||
(ply_window_enter_handler_t)
|
||||
on_enter, plugin);
|
||||
|
||||
ply_window_set_draw_handler (window,
|
||||
(ply_window_draw_handler_t)
|
||||
on_draw, plugin);
|
||||
|
||||
ply_window_set_erase_handler (window,
|
||||
(ply_window_erase_handler_t)
|
||||
on_erase, plugin);
|
||||
|
||||
plugin->loop = loop;
|
||||
|
||||
ply_trace ("loading logo image");
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue