Browse Source

Merge pull request #18797 from TailyFair/assetlib-video-overlay

Added video thumbnail overlay in asset description
Rémi Verschelde 7 years ago
parent
commit
8c71cbbe3f
2 changed files with 21 additions and 1 deletions
  1. 4 0
      editor/icons/icon_play_overlay.svg
  2. 17 1
      editor/plugins/asset_library_editor_plugin.cpp

+ 4 - 0
editor/icons/icon_play_overlay.svg

@@ -0,0 +1,4 @@
+<svg width="64" height="64" version="1.1" viewBox="0 0 64 64" xmlns="http://www.w3.org/2000/svg">
+  <rect x="0" y="0" width="64" height="64" rx="5" ry="5" fill="#044B94" fill-opacity="0.6"/>
+  <path d="M16 16 L48 32 L16 48" fill="#f2f2f2"/>
+</svg>

+ 17 - 1
editor/plugins/asset_library_editor_plugin.cpp

@@ -171,7 +171,23 @@ void EditorAssetLibraryItemDescription::set_image(int p_type, int p_index, const
 
 			for (int i = 0; i < preview_images.size(); i++) {
 				if (preview_images[i].id == p_index) {
-					preview_images[i].button->set_icon(p_image);
+					if (preview_images[i].is_video) {
+						Ref<Image> overlay = get_icon("PlayOverlay", "EditorIcons")->get_data();
+						Ref<Image> thumbnail = p_image->get_data();
+						Point2 overlay_pos = Point2((thumbnail->get_width() - overlay->get_width()) / 2, (thumbnail->get_height() - overlay->get_height()) / 2);
+
+						thumbnail->lock();
+						thumbnail->blend_rect(overlay, overlay->get_used_rect(), overlay_pos);
+						thumbnail->unlock();
+
+						Ref<ImageTexture> tex;
+						tex.instance();
+						tex->create_from_image(thumbnail);
+
+						preview_images[i].button->set_icon(tex);
+					} else {
+						preview_images[i].button->set_icon(p_image);
+					}
 					break;
 				}
 			}