Skip to content

Commit

Permalink
Use legacy image implementation (no NNAA filter) when not using 9-sli…
Browse files Browse the repository at this point in the history
…ce image (minetest#12608)
  • Loading branch information
x2048 committed Jul 31, 2022
1 parent a2bf3a2 commit 839600e
Showing 1 changed file with 21 additions and 6 deletions.
27 changes: 21 additions & 6 deletions src/gui/guiFormSpecMenu.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -825,12 +825,27 @@ void GUIFormSpecMenu::parseImage(parserData* data, const std::string &element)
core::rect<s32> middle;
if (parts.size() >= 4)
parseMiddleRect(parts[3], &middle);

GUIAnimatedImage *e = new GUIAnimatedImage(Environment, data->current_parent,
spec.fid, rect);

e->setTexture(texture);
e->setMiddleRect(middle);

// Temporary fix for issue #12581 in 5.6.0.
// Use legacy image when not rendering 9-slice image because GUIAnimatedImage
// uses NNAA filter which causes visual artifacts when image uses alpha blending.

gui::IGUIElement *e;
if (middle.getArea() > 0) {
GUIAnimatedImage *image = new GUIAnimatedImage(Environment, data->current_parent,
spec.fid, rect);

image->setTexture(texture);
image->setMiddleRect(middle);
e = image;
}
else {
gui::IGUIImage *image = Environment->addImage(rect, data->current_parent, spec.fid, nullptr, true);
image->setImage(texture);
image->setScaleImage(true);
image->grab(); // compensate for drop in addImage
e = image;
}

auto style = getDefaultStyleForElement("image", spec.fname);
e->setNotClipped(style.getBool(StyleSpec::NOCLIP, m_formspec_version < 3));
Expand Down

0 comments on commit 839600e

Please sign in to comment.