1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-06-27 16:36:03 +00:00
This commit is contained in:
SmallJoker 2025-06-05 18:53:21 +02:00
parent 484ece088f
commit bc981a2e29
6 changed files with 8 additions and 15 deletions

View file

@ -235,7 +235,7 @@ local style_fs = [[
style[one_btn15;border=false;bgcolor=#1cc;bgimg=testformspec_bg.png;bgimg_hovered=testformspec_bg_hovered.png;bgimg_pressed=testformspec_bg_pressed.png] style[one_btn15;border=false;bgcolor=#1cc;bgimg=testformspec_bg.png;bgimg_hovered=testformspec_bg_hovered.png;bgimg_pressed=testformspec_bg_pressed.png]
item_image_button[1.25,9.6;1,1;testformspec:item;one_btn15;Bg] item_image_button[1.25,9.6;1,1;testformspec:item;one_btn15;Bg]
style[one_btn16;bgimg=testformspec_bg_9slice.png;bgimg_middle=4,6;padding=5,7;fgimg=testformspec_bg.png;fgimg_middle=1] style[one_btn16;border=false;bgimg=testformspec_bg_9slice.png;bgimg_middle=4,6;padding=5,7;fgimg=testformspec_bg.png;fgimg_middle=1]
style[one_btn16:hovered;bgimg=testformspec_bg_9slice_hovered.png;fgimg=testformspec_bg_hovered.png] style[one_btn16:hovered;bgimg=testformspec_bg_9slice_hovered.png;fgimg=testformspec_bg_hovered.png]
style[one_btn16:pressed;bgimg=testformspec_bg_9slice_pressed.png;fgimg=testformspec_bg_pressed.png] style[one_btn16:pressed;bgimg=testformspec_bg_9slice_pressed.png;fgimg=testformspec_bg_pressed.png]
style[one_btn16:focused;bgimg=testformspec_bg_9slice_focused.png;fgimg=testformspec_bg_focused.png] style[one_btn16:focused;bgimg=testformspec_bg_9slice_focused.png;fgimg=testformspec_bg_focused.png]

View file

@ -13,6 +13,9 @@
#include <array> #include <array>
#include <vector> #include <vector>
class StyleSpec;
using StyleSpecMap = std::unordered_map<std::string, std::vector<StyleSpec>>;
class StyleSpec class StyleSpec
{ {

View file

@ -255,10 +255,9 @@ void GUIButton::draw()
video::IVideoDriver* driver = Environment->getVideoDriver(); video::IVideoDriver* driver = Environment->getVideoDriver();
IGUISkin *skin = Environment->getSkin(); IGUISkin *skin = Environment->getSkin();
const bool is_9_slice_border = BgMiddle.getArea() > 0;
// END PATCH // END PATCH
if (DrawBorder && !is_9_slice_border) if (DrawBorder)
{ {
if (!Pressed) if (!Pressed)
{ {
@ -307,14 +306,14 @@ void GUIButton::draw()
// FIXME: Vertices can only be darkened because [0, 255] is normalized to [0, 1] // FIXME: Vertices can only be darkened because [0, 255] is normalized to [0, 1]
// For reference: irr/src/OpenGL/Driver.cpp -> `vt2DImage` // For reference: irr/src/OpenGL/Driver.cpp -> `vt2DImage`
video::SColor image_colors[] = { BgColor, BgColor, BgColor, BgColor }; video::SColor image_colors[] = { BgColor, BgColor, BgColor, BgColor };
if (!is_9_slice_border) { if (BgMiddle.getArea() == 0) {
// Regular image button // Regular image button
driver->draw2DImage(texture, driver->draw2DImage(texture,
ScaleImage? AbsoluteRect : core::rect<s32>(pos, sourceRect.getSize()), ScaleImage? AbsoluteRect : core::rect<s32>(pos, sourceRect.getSize()),
sourceRect, &AbsoluteClippingRect, sourceRect, &AbsoluteClippingRect,
image_colors, UseAlphaChannel); image_colors, UseAlphaChannel);
} else if (DrawBorder) { } else {
// The background image is 9-slice --> use as new border style // This is generally used to replace the default border style
draw2DImage9Slice(driver, texture, draw2DImage9Slice(driver, texture,
ScaleImage ? AbsoluteRect : core::rect<s32>(pos, sourceRect.getSize()), ScaleImage ? AbsoluteRect : core::rect<s32>(pos, sourceRect.getSize()),
sourceRect, BgMiddle, &AbsoluteClippingRect, image_colors); sourceRect, BgMiddle, &AbsoluteClippingRect, image_colors);

View file

@ -24,11 +24,6 @@ GUIButtonImage::GUIButtonImage(gui::IGUIEnvironment *environment,
sendToBack(m_image.get()); sendToBack(m_image.get());
} }
void GUIButtonImage::draw()
{
GUIButton::draw();
}
void GUIButtonImage::setForegroundImage(irr_ptr<video::ITexture> image, void GUIButtonImage::setForegroundImage(irr_ptr<video::ITexture> image,
const core::rect<s32> &middle) const core::rect<s32> &middle)
{ {

View file

@ -19,9 +19,6 @@ public:
s32 id, core::rect<s32> rectangle, ISimpleTextureSource *tsrc, s32 id, core::rect<s32> rectangle, ISimpleTextureSource *tsrc,
bool noclip = false); bool noclip = false);
//! draws the element and its children
virtual void draw() override;
void setForegroundImage(irr_ptr<video::ITexture> image = nullptr, void setForegroundImage(irr_ptr<video::ITexture> image = nullptr,
const core::rect<s32> &middle = core::rect<s32>()); const core::rect<s32> &middle = core::rect<s32>());

View file

@ -302,7 +302,6 @@ protected:
bool precheckElement(const std::string &name, const std::string &element, bool precheckElement(const std::string &name, const std::string &element,
size_t args_min, size_t args_max, std::vector<std::string> &parts); size_t args_min, size_t args_max, std::vector<std::string> &parts);
using StyleSpecMap = std::unordered_map<std::string, std::vector<StyleSpec>>;
StyleSpecMap theme_by_type, theme_by_name; StyleSpecMap theme_by_type, theme_by_name;
std::unordered_set<std::string> property_warned; std::unordered_set<std::string> property_warned;