summaryrefslogtreecommitdiff
path: root/rotord/rotor.h
diff options
context:
space:
mode:
Diffstat (limited to 'rotord/rotor.h')
-rwxr-xr-xrotord/rotor.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/rotord/rotor.h b/rotord/rotor.h
index 136d812..1b68f2b 100755
--- a/rotord/rotor.h
+++ b/rotord/rotor.h
@@ -1010,6 +1010,8 @@ namespace Rotor {
#define BLEND_multiply 2
#define BLEND_blend 3
#define BLEND_alpha 4
+ #define BLEND_screen_wrap 5
+ #define BLEND_multiply_wrap 6
class Blend: public Image_node {
public:
Blend(){image=nullptr;};
@@ -1022,6 +1024,8 @@ namespace Rotor {
if (_mode=="multiply") mode=BLEND_multiply;
if (_mode=="blend") mode=BLEND_blend;
if (_mode=="alpha") mode=BLEND_alpha;
+ if (_mode=="screen_wrap") mode=BLEND_screen_wrap;
+ if (_mode=="multiply_wrap") mode=BLEND_multiply_wrap;
};
void link_params() {
for (auto p:parameter_inputs){
@@ -1048,6 +1052,12 @@ namespace Rotor {
case BLEND_alpha:
(*image)=(*image).alpha_blend(*(((Image_node*)image_inputs[1]->connection)->get_output(frame)));
break;
+ case BLEND_screen_wrap:
+ (*image)=(*image).add_wrap(*(((Image_node*)image_inputs[1]->connection)->get_output(frame)));
+ break;
+ case BLEND_multiply_wrap:
+ (*image)=(*image).divide_wrap(*(((Image_node*)image_inputs[1]->connection)->get_output(frame)));
+ break;
case BLEND_blend: //has to be last because of initialser of *in? go figure
(*image)*=(1.0f-amount);
Image *in=(*(((Image_node*)image_inputs[1]->connection)->get_output(frame)))*amount;