From 7bf7bfbe138f549567e58b2330e01c55c3ac3c61 Mon Sep 17 00:00:00 2001 From: Bananymous Date: Fri, 27 Jun 2025 13:00:22 +0300 Subject: [PATCH] Texture: Add invisible color when copying textures This should probably support proper alpha blending but I'm lazy :) --- userspace/libraries/LibGUI/Texture.cpp | 3 ++- userspace/libraries/LibGUI/include/LibGUI/Texture.h | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/userspace/libraries/LibGUI/Texture.cpp b/userspace/libraries/LibGUI/Texture.cpp index 392d1c88..7620b77b 100644 --- a/userspace/libraries/LibGUI/Texture.cpp +++ b/userspace/libraries/LibGUI/Texture.cpp @@ -86,7 +86,8 @@ namespace LibGUI for (uint32_t y_off = 0; y_off < height; y_off++) for (uint32_t x_off = 0; x_off < width; x_off++) - set_pixel(x + x_off, y + y_off, texture.get_pixel(sub_x + x_off, sub_y + y_off)); + if (const uint32_t color = texture.get_pixel(sub_x + x_off, sub_y + y_off); color != color_invisible) + set_pixel(x + x_off, y + y_off, color); } void Texture::draw_character(uint32_t codepoint, const LibFont::Font& font, int32_t tl_x, int32_t tl_y, uint32_t color) diff --git a/userspace/libraries/LibGUI/include/LibGUI/Texture.h b/userspace/libraries/LibGUI/include/LibGUI/Texture.h index 9f93afc7..67a33114 100644 --- a/userspace/libraries/LibGUI/include/LibGUI/Texture.h +++ b/userspace/libraries/LibGUI/include/LibGUI/Texture.h @@ -11,6 +11,9 @@ namespace LibGUI class Texture { + public: + static constexpr uint32_t color_invisible = 0x69000000; + public: static BAN::ErrorOr create(uint32_t width, uint32_t height, uint32_t color); Texture() = default;