mirror of
https://gitlab.freedesktop.org/plymouth/plymouth.git
synced 2026-05-08 11:19:17 +02:00
Make spinfinity plugin provide erase/draw handlers
This commit is contained in:
parent
4848ce9c05
commit
0470ae47ed
1 changed files with 64 additions and 3 deletions
|
|
@ -148,9 +148,16 @@ static void
|
|||
draw_background (ply_boot_splash_plugin_t *plugin,
|
||||
ply_frame_buffer_area_t *area)
|
||||
{
|
||||
ply_frame_buffer_fill_with_gradient (plugin->frame_buffer, area,
|
||||
PLYMOUTH_BACKGROUND_START_COLOR,
|
||||
PLYMOUTH_BACKGROUND_END_COLOR);
|
||||
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
|
||||
|
|
@ -284,6 +291,47 @@ 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
|
||||
draw_logo (plugin);
|
||||
}
|
||||
|
||||
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,
|
||||
PLYMOUTH_BACKGROUND_START_COLOR,
|
||||
PLYMOUTH_BACKGROUND_END_COLOR);
|
||||
}
|
||||
|
||||
bool
|
||||
show_splash_screen (ply_boot_splash_plugin_t *plugin,
|
||||
ply_event_loop_t *loop,
|
||||
|
|
@ -303,6 +351,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");
|
||||
|
|
@ -369,6 +425,8 @@ hide_splash_screen (ply_boot_splash_plugin_t *plugin,
|
|||
ply_window_set_keyboard_input_handler (window, NULL, NULL);
|
||||
ply_window_set_backspace_handler (window, NULL, NULL);
|
||||
ply_window_set_enter_handler (window, NULL, NULL);
|
||||
ply_window_set_draw_handler (window, NULL, NULL);
|
||||
ply_window_set_erase_handler (window, NULL, NULL);
|
||||
|
||||
if (plugin->loop != NULL)
|
||||
{
|
||||
|
|
@ -392,6 +450,9 @@ draw_password_entry (ply_boot_splash_plugin_t *plugin)
|
|||
uint32_t *box_data, *lock_data, *entry_data, *bullet_data;
|
||||
int i;
|
||||
|
||||
if (plugin->pending_password_answer == NULL)
|
||||
return;
|
||||
|
||||
ply_frame_buffer_pause_updates (plugin->frame_buffer);
|
||||
|
||||
entry_data = ply_image_get_data (plugin->entry_image);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue