ply_throbber_t *throbber;
ply_label_t *label;
ply_label_t *message_label;
- ply_rectangle_t box_area, lock_area;
+ ply_rectangle_t box_area, lock_area, watermark_area;
ply_trigger_t *end_trigger;
ply_image_t *background_image;
} view_t;
ply_image_t *corner_image;
ply_image_t *header_image;
ply_image_t *background_tile_image;
+ ply_image_t *watermark_image;
ply_list_t *views;
ply_boot_splash_display_type_t state;
+ double watermark_horizontal_alignment;
+ double watermark_vertical_alignment;
+
double animation_horizontal_alignment;
double animation_vertical_alignment;
char *animation_dir;
view->background_image = ply_image_tile (plugin->background_tile_image, screen_width, screen_height);
}
+ if (plugin->watermark_image != NULL)
+ {
+ view->watermark_area.width = ply_image_get_width (plugin->watermark_image);
+ view->watermark_area.height = ply_image_get_height (plugin->watermark_image);
+ view->watermark_area.x = screen_width * plugin->watermark_horizontal_alignment - ply_image_get_width (plugin->watermark_image) * plugin->watermark_horizontal_alignment;
+ view->watermark_area.y = screen_height * plugin->watermark_vertical_alignment - ply_image_get_height (plugin->watermark_image) * plugin->watermark_vertical_alignment;
+ }
+
ply_trace ("loading entry");
if (!ply_entry_load (view->entry))
return false;
plugin->background_tile_image = ply_image_new (image_path);
free (image_path);
+ asprintf (&image_path, "%s/watermark.png", image_dir);
+ plugin->watermark_image = ply_image_new (image_path);
+ free (image_path);
+
plugin->animation_dir = image_dir;
alignment = ply_key_file_get_value (key_file, "two-step", "HorizontalAlignment");
plugin->animation_vertical_alignment = .5;
free (alignment);
+ alignment = ply_key_file_get_value (key_file, "two-step", "WatermarkHorizontalAlignment");
+ if (alignment != NULL)
+ plugin->watermark_horizontal_alignment = strtod (alignment, NULL);
+ else
+ plugin->watermark_horizontal_alignment = 1.0;
+ free (alignment);
+
+ alignment = ply_key_file_get_value (key_file, "two-step", "WatermarkVerticalAlignment");
+ if (alignment != NULL)
+ plugin->watermark_vertical_alignment = strtod (alignment, NULL);
+ else
+ plugin->watermark_vertical_alignment = .5;
+ free (alignment);
+
plugin->transition = PLY_PROGRESS_ANIMATION_TRANSITION_NONE;
transition = ply_key_file_get_value (key_file, "two-step", "Transition");
if (transition != NULL)
if (plugin->background_tile_image != NULL)
ply_image_free (plugin->background_tile_image);
+ if (plugin->watermark_image != NULL)
+ ply_image_free (plugin->watermark_image);
+
free (plugin->animation_dir);
free_views (plugin);
free (plugin);
data = ply_image_get_data (view->background_image);
ply_pixel_buffer_fill_with_argb32_data (pixel_buffer, &area, data);
}
+
+ if (plugin->watermark_image != NULL)
+ {
+ uint32_t *data;
+
+ data = ply_image_get_data (plugin->watermark_image);
+ ply_pixel_buffer_fill_with_argb32_data (pixel_buffer, &view->watermark_area, data);
+ }
}
static void
}
}
+ if (plugin->watermark_image != NULL)
+ {
+ ply_trace ("loading watermark image");
+ if (!ply_image_load (plugin->watermark_image))
+ {
+ ply_image_free (plugin->watermark_image);
+ plugin->watermark_image = NULL;
+ }
+ }
+
if (!load_views (plugin))
{
ply_trace ("couldn't load views");