diff --git a/examples/AnimateMasking.cpp b/examples/AnimateMasking.cpp deleted file mode 100644 index 19fa004d..00000000 --- a/examples/AnimateMasking.cpp +++ /dev/null @@ -1,100 +0,0 @@ -/* - * Copyright (c) 2020 - 2025 the ThorVG project. All rights reserved. - - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -#include "Example.h" - -/************************************************************************/ -/* ThorVG Drawing Contents */ -/************************************************************************/ - -struct UserExample : tvgexam::Example -{ - tvg::Shape* maskShape = nullptr; - tvg::Shape* mask = nullptr; - - bool content(tvg::Canvas* canvas, uint32_t w, uint32_t h) override - { - if (!canvas) return false; - - // background - auto bg = tvg::Shape::gen(); - bg->appendRect(0, 0, w, h); - bg->fill(255, 255, 255); - canvas->push(bg); - - //image - auto picture1 = tvg::Picture::gen(); - if (!tvgexam::verify(picture1->load(EXAMPLE_DIR"/svg/cartman.svg"))) return false; - picture1->size(400, 400); - canvas->push(picture1); - - auto picture2 = tvg::Picture::gen(); - picture2->load(EXAMPLE_DIR"/svg/logo.svg"); - picture2->size(400, 400); - - //mask - maskShape = tvg::Shape::gen(); - maskShape->appendCircle(180, 180, 75, 75); - maskShape->fill(125, 125, 125); - maskShape->strokeFill(25, 25, 25); - maskShape->strokeJoin(tvg::StrokeJoin::Round); - maskShape->strokeWidth(10); - canvas->push(maskShape); - - mask = tvg::Shape::gen(); - mask->appendCircle(180, 180, 75, 75); - mask->fill(255, 255, 255); //AlphaMask RGB channels are unused. - - picture2->mask(mask, tvg::MaskMethod::Alpha); - canvas->push(picture2); - - return true; - } - - bool update(tvg::Canvas* canvas, uint32_t elapsed) override - { - if (!canvas) return false; - - /* Update shape directly. - You can update only necessary properties of this shape, - while retaining other properties. */ - auto progress = tvgexam::progress(elapsed, 3.0f, true); //play time 3 sec. - - // Translate mask object with its stroke & update - maskShape->translate(0 , progress * 300 - 100); - mask->translate(0 , progress * 300 - 100); - - canvas->update(); - - return true; - } -}; - - -/************************************************************************/ -/* Entry Point */ -/************************************************************************/ - -int main(int argc, char **argv) -{ - return tvgexam::main(new UserExample, argc, argv); -} \ No newline at end of file diff --git a/examples/ImageRotation.cpp b/examples/ImageRotation.cpp index 23822218..4b14f431 100644 --- a/examples/ImageRotation.cpp +++ b/examples/ImageRotation.cpp @@ -43,7 +43,7 @@ struct UserExample : tvgexam::Example picture = tvg::Picture::gen(); - if (!tvgexam::verify(picture->load(EXAMPLE_DIR"/image/scaledown.jpg"))) return false; + if (!tvgexam::verify(picture->load(EXAMPLE_DIR"/image/scale.jpg"))) return false; canvas->push(picture); diff --git a/examples/ImageScaleUp.cpp b/examples/ImageScaleUp.cpp deleted file mode 100644 index 6e3d7861..00000000 --- a/examples/ImageScaleUp.cpp +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright (c) 2021 - 2025 the ThorVG project. All rights reserved. - - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - - -#include "Example.h" - -/************************************************************************/ -/* ThorVG Drawing Contents */ -/************************************************************************/ - -struct UserExample : tvgexam::Example -{ - tvg::Picture* picture = nullptr; - - bool content(tvg::Canvas* canvas, uint32_t w, uint32_t h) override - { - if (!canvas) return false; - - //Original - picture = tvg::Picture::gen(); - - if (!tvgexam::verify(picture->load(EXAMPLE_DIR"/image/scaleup.jpg"))) return false; - - canvas->push(picture); - - return true; - } - - bool update(tvg::Canvas* canvas, uint32_t elapsed) override - { - if (!canvas) return false; - - auto progress = tvgexam::progress(elapsed, 7.0f, true); //play time 7 sec. - - picture->scale(progress * 4.0f); - - canvas->update(picture); - - return true; - } -}; - - -/************************************************************************/ -/* Entry Point */ -/************************************************************************/ - -int main(int argc, char **argv) -{ - return tvgexam::main(new UserExample, argc, argv, true); -} \ No newline at end of file diff --git a/examples/ImageScaleDown.cpp b/examples/ImageScaling.cpp similarity index 90% rename from examples/ImageScaleDown.cpp rename to examples/ImageScaling.cpp index bd462224..7f9cb77d 100644 --- a/examples/ImageScaleDown.cpp +++ b/examples/ImageScaling.cpp @@ -37,7 +37,7 @@ struct UserExample : tvgexam::Example //Original picture = tvg::Picture::gen(); - if (!tvgexam::verify(picture->load(EXAMPLE_DIR"/image/scaledown.jpg"))) return false; + if (!tvgexam::verify(picture->load(EXAMPLE_DIR"/image/scale.jpg"))) return false; canvas->push(picture); @@ -48,9 +48,9 @@ struct UserExample : tvgexam::Example { if (!canvas) return false; - auto progress = tvgexam::progress(elapsed, 7.0f, true); //play time 7 sec. + auto progress = tvgexam::progress(elapsed, 3.0f, true); //play time 3 secs. - picture->scale(1.0f - progress); + picture->scale((1.0f - progress) * 1.5f); canvas->update(picture); @@ -65,5 +65,5 @@ struct UserExample : tvgexam::Example int main(int argc, char **argv) { - return tvgexam::main(new UserExample, argc, argv, true); + return tvgexam::main(new UserExample, argc, argv, true, 1024, 1024); } \ No newline at end of file diff --git a/examples/meson.build b/examples/meson.build index dd2f2a26..a6438015 100644 --- a/examples/meson.build +++ b/examples/meson.build @@ -21,7 +21,6 @@ endif source_file = [ 'Accessor.cpp', - 'AnimateMasking.cpp', 'Animation.cpp', 'Blending.cpp', 'BoundingBox.cpp', @@ -34,13 +33,11 @@ source_file = [ 'SceneEffects.cpp', 'FillRule.cpp', 'FillSpread.cpp', - 'GifSaver.cpp', 'GradientMasking.cpp', 'GradientStroke.cpp', 'GradientTransform.cpp', 'ImageRotation.cpp', - 'ImageScaleDown.cpp', - 'ImageScaleUp.cpp', + 'ImageScaling.cpp', 'LinearGradient.cpp', 'Lottie.cpp', 'LumaMasking.cpp', @@ -71,13 +68,16 @@ source_file = [ 'Viewport.cpp' ] +if gif_saver + source_file += 'GifSaver.cpp' +endif if lottie_loader - source_file += ['LottieExtension.cpp', 'LottieTweening.cpp'] + source_file += ['LottieExtension.cpp', 'LottieTweening.cpp'] endif if lottie_expressions - source_file += 'LottieExpressions.cpp' + source_file += 'LottieExpressions.cpp' endif foreach current_file : source_file diff --git a/examples/resources/image/scaledown.jpg b/examples/resources/image/scale.jpg similarity index 100% rename from examples/resources/image/scaledown.jpg rename to examples/resources/image/scale.jpg diff --git a/examples/resources/image/scaleup.jpg b/examples/resources/image/scaleup.jpg deleted file mode 100644 index a473d8f6..00000000 Binary files a/examples/resources/image/scaleup.jpg and /dev/null differ