From 1115320cfac30914e84615d43d79a0055e238c7b Mon Sep 17 00:00:00 2001 From: Ivan Mahonin Date: Oct 17 2018 05:44:07 +0000 Subject: Fix CheckerBoard --- diff --git a/synfig-core/src/modules/mod_geometry/checkerboard.cpp b/synfig-core/src/modules/mod_geometry/checkerboard.cpp index fb77d75..09ae4a9 100644 --- a/synfig-core/src/modules/mod_geometry/checkerboard.cpp +++ b/synfig-core/src/modules/mod_geometry/checkerboard.cpp @@ -97,6 +97,18 @@ public: static Token token; virtual Token::Handle get_token() const { return token.handle(); } + virtual void on_target_set_as_source() { + Task::Handle &subtask = sub_task(0); + if ( subtask + && subtask->target_surface == target_surface + && !Color::is_straight(blend_method) ) + { + trunc_by_bounds(); + subtask->source_rect = source_rect; + subtask->target_rect = target_rect; + } + } + virtual Color::BlendMethodFlags get_supported_blend_methods() const { return Color::BLEND_METHODS_ALL; } @@ -125,7 +137,8 @@ public: return false; Surface::alpha_pen apen(la->get_surface().get_pen(target_rect.minx, target_rect.miny)); - apen.set_blend_method(blend_method); + ColorReal amount = blend ? this->amount : ColorReal(1.0); + apen.set_blend_method(blend ? blend_method : Color::BLEND_COMPOSITE); Color c = color; if (antialias) { ColorReal kx(matrix.axis_x().mag()*0.5); @@ -166,9 +179,9 @@ public: }; rendering::Task::Token TaskCheckerBoard::token( - DescAbstract("TaskCheckerBoard") ); + DescAbstract("CheckerBoard") ); rendering::Task::Token TaskCheckerBoardSW::token( - DescReal("TaskCheckerBoardSW") ); + DescReal("CheckerBoardSW") ); } // namespace diff --git a/synfig-core/src/synfig/rendering/common/task/tasktransformation.cpp b/synfig-core/src/synfig/rendering/common/task/tasktransformation.cpp index db591e4..af1b874 100644 --- a/synfig-core/src/synfig/rendering/common/task/tasktransformation.cpp +++ b/synfig-core/src/synfig/rendering/common/task/tasktransformation.cpp @@ -46,9 +46,9 @@ using namespace rendering; Task::Token TaskTransformation::token( - DescAbstract("TaskTransformation") ); + DescAbstract("Transformation") ); Task::Token TaskTransformationAffine::token( - DescAbstract("TaskTransformationAffine") ); + DescAbstract("TransformationAffine") ); TaskTransformation::TaskTransformation():