소스 검색

LibGfx: Remove unnecessary divides in Color::mixed_with()

This is mathematically the same thing, but the compiler can't optimize
these out without -Ofast, so let's give it a hand.
MacDue 2 년 전
부모
커밋
e3c64a0858
1개의 변경된 파일1개의 추가작업 그리고 1개의 파일을 삭제
  1. 1 1
      Userland/Libraries/LibGfx/Color.cpp

+ 1 - 1
Userland/Libraries/LibGfx/Color.cpp

@@ -330,7 +330,7 @@ Color Color::mixed_with(Color other, float weight) const
     // This is needed for linear-gradient()s in LibWeb.
     // This is needed for linear-gradient()s in LibWeb.
     auto mixed_alpha = mix<float>(alpha(), other.alpha(), weight);
     auto mixed_alpha = mix<float>(alpha(), other.alpha(), weight);
     auto premultiplied_mix_channel = [&](float channel, float other_channel, float weight) {
     auto premultiplied_mix_channel = [&](float channel, float other_channel, float weight) {
-        return round_to<u8>(mix<float>(channel * (alpha() / 255.0f), other_channel * (other.alpha() / 255.0f), weight) / (mixed_alpha / 255.0f));
+        return round_to<u8>(mix<float>(channel * alpha(), other_channel * other.alpha(), weight) / mixed_alpha);
     };
     };
     return Gfx::Color {
     return Gfx::Color {
         premultiplied_mix_channel(red(), other.red(), weight),
         premultiplied_mix_channel(red(), other.red(), weight),