* Patch from Ondrej Pokorny to improve performance

git-svn-id: trunk@39747 -
This commit is contained in:
michael 2018-09-12 15:18:20 +00:00
parent 6fbff7f7a6
commit a84554ef9f

View File

@ -298,18 +298,25 @@ end;
function AlphaBlend(color1, color2: TFPColor): TFPColor;
var
factor: single;
factor1, factor2: single;
begin
if color2.alpha = $ffff then
Result := color2
else
if color2.alpha = 0 then
Result := color1
else
if color1.alpha = 0 then
Result := color2
else
begin
factor := (color1.alpha / $ffff) * (1 - color2.alpha / $ffff);
factor1 := (color1.alpha / $ffff) * (1 - color2.alpha / $ffff);
factor2 := color2.alpha / $ffff;
Result.red := Round(color1.red * factor + color2.red * color2.alpha / $ffff);
Result.green := Round(color1.green * factor + color2.green * color2.alpha / $ffff);
Result.blue := Round(color1.blue * factor + color2.blue * color2.alpha / $ffff);
Result.alpha := Round(factor * $ffff + color2.alpha);
Result.red := Round(color1.red * factor1 + color2.red * factor2);
Result.green := Round(color1.green * factor1 + color2.green * factor2);
Result.blue := Round(color1.blue * factor1 + color2.blue * factor2);
Result.alpha := Round(factor1 * $ffff + color2.alpha);
end;
end;