mirror of
https://github.com/aseprite/aseprite.git
synced 2025-03-31 16:20:22 +00:00
Minor changes in rgba_blender_normal() function
This commit is contained in:
parent
7cbf5fd420
commit
dd3ce20133
@ -169,25 +169,29 @@ color_t rgba_blender_normal(color_t backdrop, color_t src, int opacity)
|
|||||||
return backdrop;
|
return backdrop;
|
||||||
}
|
}
|
||||||
|
|
||||||
int Br, Bg, Bb, Ba;
|
const int Br = rgba_getr(backdrop);
|
||||||
int Sr, Sg, Sb, Sa;
|
const int Bg = rgba_getg(backdrop);
|
||||||
int Rr, Rg, Rb, Ra;
|
const int Bb = rgba_getb(backdrop);
|
||||||
|
const int Ba = rgba_geta(backdrop);
|
||||||
|
|
||||||
Br = rgba_getr(backdrop);
|
const int Sr = rgba_getr(src);
|
||||||
Bg = rgba_getg(backdrop);
|
const int Sg = rgba_getg(src);
|
||||||
Bb = rgba_getb(backdrop);
|
const int Sb = rgba_getb(src);
|
||||||
Ba = rgba_geta(backdrop);
|
int Sa = rgba_geta(src);
|
||||||
|
|
||||||
Sr = rgba_getr(src);
|
|
||||||
Sg = rgba_getg(src);
|
|
||||||
Sb = rgba_getb(src);
|
|
||||||
Sa = rgba_geta(src);
|
|
||||||
Sa = MUL_UN8(Sa, opacity, t);
|
Sa = MUL_UN8(Sa, opacity, t);
|
||||||
|
|
||||||
Ra = Ba + Sa - MUL_UN8(Ba, Sa, t);
|
// Ra = Sa + Ba*(1-Sa)
|
||||||
Rr = Br + (Sr-Br) * Sa / Ra;
|
// = Sa + Ba - Ba*Sa
|
||||||
Rg = Bg + (Sg-Bg) * Sa / Ra;
|
// = Ba + Sa - Ba*Sa
|
||||||
Rb = Bb + (Sb-Bb) * Sa / Ra;
|
// Rc = Sc*Sa/Ra + Bc*(1-Sa/Ra)
|
||||||
|
// = Sc*Sa/Ra + Bc - Bc*Sa/Ra
|
||||||
|
// = Bc + Sc*Sa/Ra - Bc*Sa/Ra
|
||||||
|
// = Bc + (Sc-Bc)*Sa/Ra
|
||||||
|
|
||||||
|
const int Ra = Ba + Sa - MUL_UN8(Ba, Sa, t);
|
||||||
|
const int Rr = Br + (Sr-Br) * Sa / Ra;
|
||||||
|
const int Rg = Bg + (Sg-Bg) * Sa / Ra;
|
||||||
|
const int Rb = Bb + (Sb-Bb) * Sa / Ra;
|
||||||
|
|
||||||
return rgba(Rr, Rg, Rb, Ra);
|
return rgba(Rr, Rg, Rb, Ra);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user