1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-28 16:07:45 +00:00

Meta+Userland: Pass Gfx::Color by value

Gfx::Color is always 4 bytes (it's just a wrapper over u32) it's less
work just to pass the color directly.

This also updates IPCCompiler to prevent from generating
Gfx::Color const &, which makes replacement easier.
This commit is contained in:
MacDue 2022-12-06 19:43:46 +00:00 committed by Andreas Kling
parent f76c7f3788
commit bbc149ebb9
28 changed files with 65 additions and 54 deletions

View file

@ -32,7 +32,7 @@ void Card::paint(GUI::Painter& painter) const
painter.blit(position(), bitmap, bitmap->rect());
}
void Card::clear(GUI::Painter& painter, Color const& background_color) const
void Card::clear(GUI::Painter& painter, Color background_color) const
{
painter.fill_rect({ old_position(), { width, height } }, background_color);
}
@ -43,7 +43,7 @@ void Card::save_old_position()
m_old_position_valid = true;
}
void Card::clear_and_paint(GUI::Painter& painter, Color const& background_color)
void Card::clear_and_paint(GUI::Painter& painter, Color background_color)
{
if (is_old_position_valid())
clear(painter, background_color);

View file

@ -108,8 +108,8 @@ public:
void save_old_position();
void paint(GUI::Painter&) const;
void clear(GUI::Painter&, Color const& background_color) const;
void clear_and_paint(GUI::Painter& painter, Color const& background_color);
void clear(GUI::Painter&, Color background_color) const;
void clear_and_paint(GUI::Painter& painter, Color background_color);
private:
Card(Suit, Rank);

View file

@ -121,7 +121,7 @@ Gfx::Color CardGame::background_color() const
return palette().color(background_role());
}
void CardGame::set_background_color(Gfx::Color const& color)
void CardGame::set_background_color(Gfx::Color color)
{
auto new_palette = palette();
new_palette.set_color(Gfx::ColorRole::Background, color);

View file

@ -19,7 +19,7 @@ public:
virtual ~CardGame() = default;
Gfx::Color background_color() const;
void set_background_color(Gfx::Color const&);
void set_background_color(Gfx::Color);
NonnullRefPtrVector<CardStack>& stacks() { return m_stacks; }
NonnullRefPtrVector<CardStack> const& stacks() const { return m_stacks; }

View file

@ -32,7 +32,7 @@ void CardStack::clear()
m_stack_positions.clear();
}
void CardStack::paint(GUI::Painter& painter, Gfx::Color const& background_color)
void CardStack::paint(GUI::Painter& painter, Gfx::Color background_color)
{
auto draw_background_if_empty = [&]() {
size_t number_of_moving_cards = 0;

View file

@ -50,7 +50,7 @@ public:
bool is_allowed_to_push(Card const&, size_t stack_size = 1, MovementRule movement_rule = MovementRule::Alternating) const;
void add_all_grabbed_cards(Gfx::IntPoint const& click_location, NonnullRefPtrVector<Card>& grabbed, MovementRule movement_rule = MovementRule::Alternating);
void paint(GUI::Painter&, Gfx::Color const& background_color);
void paint(GUI::Painter&, Gfx::Color background_color);
void clear();
private:

View file

@ -316,7 +316,7 @@ Optional<Color> Color::from_string(StringView string)
return Color(r.value(), g.value(), b.value(), a.value());
}
Color Color::mixed_with(Color const& other, float weight) const
Color Color::mixed_with(Color other, float weight) const
{
if (alpha() == other.alpha() || with_alpha(0) == other.with_alpha(0)) {
return Gfx::Color {
@ -382,7 +382,7 @@ ErrorOr<void> IPC::decode(Decoder& decoder, Color& color)
return {};
}
ErrorOr<void> AK::Formatter<Gfx::Color>::format(FormatBuilder& builder, Gfx::Color const& value)
ErrorOr<void> AK::Formatter<Gfx::Color>::format(FormatBuilder& builder, Gfx::Color value)
{
return Formatter<StringView>::format(builder, value.to_deprecated_string());
}

View file

@ -236,9 +236,9 @@ public:
#endif
}
Color mixed_with(Color const& other, float weight) const;
Color mixed_with(Color other, float weight) const;
Color interpolate(Color const& other, float weight) const noexcept
Color interpolate(Color other, float weight) const noexcept
{
u8 r = red() + round_to<u8>(static_cast<float>(other.red() - red()) * weight);
u8 g = green() + round_to<u8>(static_cast<float>(other.green() - green()) * weight);
@ -247,7 +247,7 @@ public:
return Color(r, g, b, a);
}
constexpr Color multiply(Color const& other) const
constexpr Color multiply(Color other) const
{
return Color(
red() * other.red() / 255,
@ -256,7 +256,7 @@ public:
alpha() * other.alpha() / 255);
}
constexpr float distance_squared_to(Color const& other) const
constexpr float distance_squared_to(Color other) const
{
int delta_red = other.red() - red();
int delta_green = other.green() - green();
@ -271,7 +271,7 @@ public:
return (red() * 0.2126f + green() * 0.7152f + blue() * 0.0722f);
}
constexpr float contrast_ratio(Color const& other)
constexpr float contrast_ratio(Color other)
{
auto l1 = luminosity();
auto l2 = other.luminosity();
@ -340,14 +340,14 @@ public:
return Color(~red(), ~green(), ~blue(), alpha());
}
constexpr Color xored(Color const& other) const
constexpr Color xored(Color other) const
{
return Color(((other.m_value ^ m_value) & 0x00ffffff) | (m_value & 0xff000000));
}
constexpr ARGB32 value() const { return m_value; }
constexpr bool operator==(Color const& other) const
constexpr bool operator==(Color other) const
{
return m_value == other.m_value;
}
@ -566,7 +566,7 @@ namespace AK {
template<>
struct Formatter<Gfx::Color> : public Formatter<StringView> {
ErrorOr<void> format(FormatBuilder&, Gfx::Color const&);
ErrorOr<void> format(FormatBuilder&, Gfx::Color);
};
}

View file

@ -1856,7 +1856,7 @@ ErrorOr<NonnullRefPtr<Bitmap>> Painter::get_region_bitmap(IntRect const& region,
return m_target->cropped(bitmap_region, format);
}
ALWAYS_INLINE void Painter::set_physical_pixel_with_draw_op(u32& pixel, Color const& color)
ALWAYS_INLINE void Painter::set_physical_pixel_with_draw_op(u32& pixel, Color color)
{
// This always sets a single physical pixel, independent of scale().
// This should only be called by routines that already handle scale.
@ -1874,7 +1874,7 @@ ALWAYS_INLINE void Painter::set_physical_pixel_with_draw_op(u32& pixel, Color co
}
}
ALWAYS_INLINE void Painter::fill_physical_scanline_with_draw_op(int y, int x, int width, Color const& color)
ALWAYS_INLINE void Painter::fill_physical_scanline_with_draw_op(int y, int x, int width, Color color)
{
// This always draws a single physical scanline, independent of scale().
// This should only be called by routines that already handle scale.

View file

@ -163,8 +163,8 @@ public:
protected:
IntRect to_physical(IntRect const& r) const { return r.translated(translation()) * scale(); }
IntPoint to_physical(IntPoint const& p) const { return p.translated(translation()) * scale(); }
void set_physical_pixel_with_draw_op(u32& pixel, Color const&);
void fill_physical_scanline_with_draw_op(int y, int x, int width, Color const& color);
void set_physical_pixel_with_draw_op(u32& pixel, Color);
void fill_physical_scanline_with_draw_op(int y, int x, int width, Color color);
void fill_rect_with_draw_op(IntRect const&, Color);
void blit_with_opacity(IntPoint const&, Gfx::Bitmap const&, IntRect const& src_rect, float opacity, bool apply_alpha = true);
void draw_physical_pixel(IntPoint const&, Color, int thickness = 1);

View file

@ -327,13 +327,13 @@ public:
void set_font_size(float font_size) { m_inherited.font_size = font_size; }
void set_font_weight(int font_weight) { m_inherited.font_weight = font_weight; }
void set_font_variant(CSS::FontVariant font_variant) { m_inherited.font_variant = font_variant; }
void set_color(Color const& color) { m_inherited.color = color; }
void set_color(Color color) { m_inherited.color = color; }
void set_clip(CSS::Clip const& clip) { m_noninherited.clip = clip; }
void set_content(ContentData const& content) { m_noninherited.content = content; }
void set_cursor(CSS::Cursor cursor) { m_inherited.cursor = cursor; }
void set_image_rendering(CSS::ImageRendering value) { m_inherited.image_rendering = value; }
void set_pointer_events(CSS::PointerEvents value) { m_inherited.pointer_events = value; }
void set_background_color(Color const& color) { m_noninherited.background_color = color; }
void set_background_color(Color color) { m_noninherited.background_color = color; }
void set_background_layers(Vector<BackgroundLayerData>&& layers) { m_noninherited.background_layers = move(layers); }
void set_float(CSS::Float value) { m_noninherited.float_ = value; }
void set_clear(CSS::Clear value) { m_noninherited.clear = value; }

View file

@ -1642,13 +1642,13 @@ private:
class ShadowStyleValue final : public StyleValue {
public:
static NonnullRefPtr<ShadowStyleValue>
create(Color const& color, Length const& offset_x, Length const& offset_y, Length const& blur_radius, Length const& spread_distance, ShadowPlacement placement)
create(Color color, Length const& offset_x, Length const& offset_y, Length const& blur_radius, Length const& spread_distance, ShadowPlacement placement)
{
return adopt_ref(*new ShadowStyleValue(color, offset_x, offset_y, blur_radius, spread_distance, placement));
}
virtual ~ShadowStyleValue() override = default;
Color const& color() const { return m_color; }
Color color() const { return m_color; }
Length const& offset_x() const { return m_offset_x; }
Length const& offset_y() const { return m_offset_y; }
Length const& blur_radius() const { return m_blur_radius; }
@ -1659,7 +1659,7 @@ public:
virtual bool equals(StyleValue const& other) const override;
private:
explicit ShadowStyleValue(Color const& color, Length const& offset_x, Length const& offset_y, Length const& blur_radius, Length const& spread_distance, ShadowPlacement placement)
explicit ShadowStyleValue(Color color, Length const& offset_x, Length const& offset_y, Length const& blur_radius, Length const& spread_distance, ShadowPlacement placement)
: StyleValue(Type::Shadow)
, m_color(color)
, m_offset_x(offset_x)

View file

@ -20,8 +20,8 @@ public:
m_states.append(State());
}
Gfx::Color const& fill_color() const { return state().fill_color; }
Gfx::Color const& stroke_color() const { return state().stroke_color; }
Gfx::Color fill_color() const { return state().fill_color; }
Gfx::Color stroke_color() const { return state().stroke_color; }
float stroke_width() const { return state().stroke_width; }
void set_fill_color(Gfx::Color color) { state().fill_color = color; }