Merge pull request #24736 from timoschwarzer/ltex-thumbnails
Add thumbnails to LargeTexture
This commit is contained in:
commit
a58c3fb4b7
@ -86,6 +86,7 @@ Ref<Texture> EditorTexturePreviewPlugin::generate(const RES &p_from, const Size2
|
||||
|
||||
Ref<Image> img;
|
||||
Ref<AtlasTexture> atex = p_from;
|
||||
Ref<LargeTexture> ltex = p_from;
|
||||
if (atex.is_valid()) {
|
||||
Ref<Texture> tex = atex->get_atlas();
|
||||
if (!tex.is_valid()) {
|
||||
@ -93,6 +94,8 @@ Ref<Texture> EditorTexturePreviewPlugin::generate(const RES &p_from, const Size2
|
||||
}
|
||||
Ref<Image> atlas = tex->get_data();
|
||||
img = atlas->get_rect(atex->get_region());
|
||||
} else if (ltex.is_valid()) {
|
||||
img = ltex->to_image();
|
||||
} else {
|
||||
Ref<Texture> tex = p_from;
|
||||
img = tex->get_data();
|
||||
|
@ -1205,6 +1205,17 @@ Ref<Texture> LargeTexture::get_piece_texture(int p_idx) const {
|
||||
ERR_FAIL_INDEX_V(p_idx, pieces.size(), Ref<Texture>());
|
||||
return pieces[p_idx].texture;
|
||||
}
|
||||
Ref<Image> LargeTexture::to_image() const {
|
||||
|
||||
Ref<Image> img = memnew(Image(this->get_width(), this->get_height(), false, Image::FORMAT_RGBA8));
|
||||
for (int i = 0; i < pieces.size(); i++) {
|
||||
|
||||
Ref<Image> src_img = pieces[i].texture->get_data();
|
||||
img->blit_rect(src_img, Rect2(0, 0, src_img->get_width(), src_img->get_height()), pieces[i].offset);
|
||||
}
|
||||
|
||||
return img;
|
||||
}
|
||||
|
||||
void LargeTexture::_bind_methods() {
|
||||
|
||||
|
@ -330,6 +330,7 @@ public:
|
||||
int get_piece_count() const;
|
||||
Vector2 get_piece_offset(int p_idx) const;
|
||||
Ref<Texture> get_piece_texture(int p_idx) const;
|
||||
Ref<Image> to_image() const;
|
||||
|
||||
virtual void draw(RID p_canvas_item, const Point2 &p_pos, const Color &p_modulate = Color(1, 1, 1), bool p_transpose = false, const Ref<Texture> &p_normal_map = Ref<Texture>()) const;
|
||||
virtual void draw_rect(RID p_canvas_item, const Rect2 &p_rect, bool p_tile = false, const Color &p_modulate = Color(1, 1, 1), bool p_transpose = false, const Ref<Texture> &p_normal_map = Ref<Texture>()) const;
|
||||
|
Loading…
Reference in New Issue
Block a user