diff options
author | RĂ©mi Verschelde <rverschelde@gmail.com> | 2019-02-20 15:23:31 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-02-20 15:23:31 +0100 |
commit | 6709ff6a965877ccbeb9b016daad6e3159cee4e7 (patch) | |
tree | c72f02fec3d07a730dece73dd3ff3e08b2bd4032 /scene/gui | |
parent | 310c755a0fd9351c609c97e3fc53da3cd0fbb58e (diff) | |
parent | 559b8fd2369188de9595fa698e8cb08d4635ed7c (diff) |
Merge pull request #26049 from vixelz/textureprogress-nineslice-fill-fix
Truncate first segment in TextureProgress 9slices
Diffstat (limited to 'scene/gui')
-rw-r--r-- | scene/gui/texture_progress.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/scene/gui/texture_progress.cpp b/scene/gui/texture_progress.cpp index bf6a5d30bf..c534df5cbe 100644 --- a/scene/gui/texture_progress.cpp +++ b/scene/gui/texture_progress.cpp @@ -251,12 +251,14 @@ void TextureProgress::draw_nine_patch_stretched(const Ref<Texture> &p_texture, F middle_section_size *= MIN(1.0, (MAX(0.0, width_filled - first_section_size) / MAX(1.0, width_total - first_section_size - last_section_size))); last_section_size = MAX(0.0, last_section_size - (width_total - width_filled)); + first_section_size = MIN(first_section_size, width_filled); width_texture = MIN(width_texture, first_section_size + middle_section_size + last_section_size); switch (mode) { case FILL_LEFT_TO_RIGHT: { src_rect.size.x = width_texture; dst_rect.size.x = width_filled; + topleft.x = first_section_size; bottomright.x = last_section_size; } break; case FILL_RIGHT_TO_LEFT: { @@ -265,11 +267,13 @@ void TextureProgress::draw_nine_patch_stretched(const Ref<Texture> &p_texture, F dst_rect.position.x += width_total - width_filled; dst_rect.size.x = width_filled; topleft.x = last_section_size; + bottomright.x = first_section_size; } break; case FILL_TOP_TO_BOTTOM: { src_rect.size.y = width_texture; dst_rect.size.y = width_filled; bottomright.y = last_section_size; + topleft.y = first_section_size; } break; case FILL_BOTTOM_TO_TOP: { src_rect.position.y += src_rect.size.y - width_texture; @@ -277,6 +281,7 @@ void TextureProgress::draw_nine_patch_stretched(const Ref<Texture> &p_texture, F dst_rect.position.y += width_total - width_filled; dst_rect.size.y = width_filled; topleft.y = last_section_size; + bottomright.y = first_section_size; } break; case FILL_BILINEAR_LEFT_AND_RIGHT: { // TODO: Implement |