diff options
author | Rémi Verschelde <remi@verschelde.fr> | 2016-01-19 14:52:34 +0100 |
---|---|---|
committer | Rémi Verschelde <remi@verschelde.fr> | 2016-01-19 14:52:34 +0100 |
commit | e12835552732463536163b314ee78f4e7d94809b (patch) | |
tree | 20efc19bbc090151bfb54e99f7b88739e6f796f5 | |
parent | 1584aea71eee56d0c2e20c7197519bc248a8932e (diff) | |
parent | 4cca09921d7515b5896c4a60615399a879616b73 (diff) |
Merge pull request #3382 from Hinsbart/atlas_preview
thumbnail preview for AtlasTextures
-rw-r--r-- | tools/editor/plugins/editor_preview_plugins.cpp | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/tools/editor/plugins/editor_preview_plugins.cpp b/tools/editor/plugins/editor_preview_plugins.cpp index a0ce294219..f3b5272571 100644 --- a/tools/editor/plugins/editor_preview_plugins.cpp +++ b/tools/editor/plugins/editor_preview_plugins.cpp @@ -10,13 +10,26 @@ bool EditorTexturePreviewPlugin::handles(const String& p_type) const { - return ObjectTypeDB::is_type(p_type,"ImageTexture"); + return (ObjectTypeDB::is_type(p_type,"ImageTexture") || ObjectTypeDB::is_type(p_type, "AtlasTexture")); } Ref<Texture> EditorTexturePreviewPlugin::generate(const RES& p_from) { - Ref<ImageTexture> tex =p_from; - Image img = tex->get_data(); + Image img; + Ref<AtlasTexture> atex = p_from; + if (atex.is_valid()) { + Ref<ImageTexture> tex = atex->get_atlas(); + if (!tex.is_valid()) { + return Ref<Texture>(); + } + Image atlas = tex->get_data(); + img = atlas.get_rect(atex->get_region()); + } + else { + Ref<ImageTexture> tex = p_from; + img = tex->get_data(); + } + if (img.empty()) return Ref<Texture>(); |