X-Git-Url: http://git.cinelerra-gg.org/git/?p=goodguy%2Fhistory.git;a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Foverlayframe.inc;h=18a926c9f2bf97aadda24e7b44309f0a51c4af59;hp=f29bc5724be062b7c8c51033a66600895e3723b1;hb=93d60cc0fdf746cc03b4d7a9e45744c2c424439b;hpb=361dbd9de4e6e4143ea0cac5daa89b30685a4c70;ds=sidebyside diff --git a/cinelerra-5.1/cinelerra/overlayframe.inc b/cinelerra-5.1/cinelerra/overlayframe.inc index f29bc572..18a926c9 100644 --- a/cinelerra-5.1/cinelerra/overlayframe.inc +++ b/cinelerra-5.1/cinelerra/overlayframe.inc @@ -24,84 +24,7 @@ // Modes -/* -source -x = porter duff operator -g = good guy -a = android -* = hv 4.6.1 - -cin 5.1 overlayframe TRANSFER_MODEs -x DST [Da, Dc] -x DST_ATOP [Sa, Sc * (1 - Da) + Dc * Sa] -x DST_IN [Da * Sa, Dc * Sa] -x DST_OUT [Da * (1 - Sa), Dc * (1 - Sa)] -x DST_OVER [Sa * (1 - Da) + Da, Sc * (1 - Da) + Dc] -x SRC [Sa, Sc] -x SRC_ATOP [Da, Sc * Da + Dc * (1 - Sa)] -x SRC_IN [Sa * Da, Sc * Da] -x SRC_OUT [Sa * (1 - Da), Sc * (1 - Da)] -x SRC_OVER [Sa + Da * (1 - Sa), Sc + (1 - Sa) * Dc] -g OR [Sa + Da - Sa * Da, Sc + Dc - Sc * Dc] -a XOR [Sa * (1 - Da) + Da * (1 - Sa), Sc * (1 - Da) + Dc * (1 ­ Sa)] -* NORMAL [Sa + Da * (1 - Sa), Sc * Sa + Dc * (1 ­ Sa)]) -* ADDITION [(Sa + Da), (Sc + Dc)] -* SUBTRACT [(Sa - Da), (Sc ­ Dc)] -* MULTIPLY [(Sa * Da), Sc * Dc] -* DIVIDE [(Sa / Da), (Sc / Dc)] -* REPLACE [Sa, Sc] (fade = 1) -* MAX [max(Sa, Da), MAX(Sc, Dc)] -* MIN [min(Sa, Da), MIN(Sc, Dc)] -g AVERAGE [(Sa + Da) * 0.5, (Sc + Dc) * 0.5] -a DARKEN [Sa + Da - Sa*Da, Sc*(1 - Da) + Dc*(1 - Sa) + min(Sc, Dc)] -a LIGHTEN [Sa + Da - Sa*Da, Sc*(1 - Da) + Dc*(1 - Sa) + max(Sc, Dc)] - -https://developer.android.com/reference/android/graphics/PorterDuff.Mode.html - ADD Saturate(S + D) - CLEAR [0, 0] - DARKEN [Sa + Da - Sa*Da, Sc*(1 - Da) + Dc*(1 - Sa) + min(Sc, Dc)] - DST [Da, Dc] - DST_ATOP [Sa, Sa * Dc + Sc * (1 - Da)] - DST_IN [Sa * Da, Sa * Dc] - DST_OUT [Da * (1 - Sa), Dc * (1 - Sa)] - DST_OVER [Sa + (1 - Sa)*Da, Rc = Dc + (1 - Da)*Sc] - LIGHTEN [Sa + Da - Sa*Da, Sc*(1 - Da) + Dc*(1 - Sa) + max(Sc, Dc)] - MULTIPLY [Sa * Da, Sc * Dc] - OVERLAY (defined, but unspecified in android) - SCREEN [Sa + Da - Sa * Da, Sc + Dc - Sc * Dc] - SRC [Sa, Sc] - SRC_ATOP [Da, Sc * Da + (1 - Sa) * Dc] - SRC_IN [Sa * Da, Sc * Da] - SRC_OUT [Sa * (1 - Da), Sc * (1 - Da)] - SRC_OVER [Sa + (1 - Sa)*Da, Rc = Sc + (1 - Sa)*Dc] - XOR [Sa + Da - 2 * Sa * Da, Sc * (1 - Da) + (1 - Sa) * Dc] - -https://docs.gimp.org/2.6/en/gimp-concepts-layer-modes.html - Normal [M] - Dissolve [I + dots] - Multiply [M * I] - Divide [I / M] - Screen [1 - (1-M)*(1-I)] - Overlay [I * (I + 2*M*(1-I))] - Dodge [I / (1-M)] - Burn [1 - (1-I) / M] - Hard light [M>0.5 ? (1 - (1-2*(M-0.5))*(1 - I) : 2*M*I] - Soft light [((1-I)*M + Screen()) * I] - Grain extract [I - M + 0.5] - Grain merge [I + M - 0.5] - Difference [abs(I-M)] - Addition [min((I+M),1.0)] - Subtract [max((I-M),0.0)] - Darken only [min(M,I)] - Lighten only [max(M,I)] - Hue [hue(M) + sat(I)+val(I)] - Saturation [sat(M) + hue(I)+val(I)] - Color [hue(M)+sat(M) + val(I)] - Value [val(M) + sat(I)+hue(I)] - -*/ - -#define TRANSFER_TYPES 23 +#define TRANSFER_TYPES 30 #define TRANSFER_NORMAL 0 #define TRANSFER_ADDITION 1 @@ -111,21 +34,29 @@ https://docs.gimp.org/2.6/en/gimp-concepts-layer-modes.html #define TRANSFER_REPLACE 5 #define TRANSFER_MAX 6 #define TRANSFER_MIN 7 -#define TRANSFER_AVERAGE 8 -#define TRANSFER_DARKEN 9 -#define TRANSFER_LIGHTEN 10 -#define TRANSFER_DST 11 -#define TRANSFER_DST_ATOP 12 -#define TRANSFER_DST_IN 13 -#define TRANSFER_DST_OUT 14 -#define TRANSFER_DST_OVER 15 -#define TRANSFER_SRC 16 -#define TRANSFER_SRC_ATOP 17 -#define TRANSFER_SRC_IN 18 -#define TRANSFER_SRC_OUT 19 -#define TRANSFER_SRC_OVER 20 +#define TRANSFER_DARKEN 8 +#define TRANSFER_LIGHTEN 9 +#define TRANSFER_DST 10 +#define TRANSFER_DST_ATOP 11 +#define TRANSFER_DST_IN 12 +#define TRANSFER_DST_OUT 13 +#define TRANSFER_DST_OVER 14 +#define TRANSFER_SRC 15 +#define TRANSFER_SRC_ATOP 16 +#define TRANSFER_SRC_IN 17 +#define TRANSFER_SRC_OUT 18 +#define TRANSFER_SRC_OVER 19 +#define TRANSFER_AND 20 #define TRANSFER_OR 21 #define TRANSFER_XOR 22 +#define TRANSFER_OVERLAY 23 +#define TRANSFER_SCREEN 24 +#define TRANSFER_BURN 25 +#define TRANSFER_DODGE 26 +#define TRANSFER_HARDLIGHT 27 +#define TRANSFER_SOFTLIGHT 28 +#define TRANSFER_DIFFERENCE 29 + // Interpolation types