prepare tvg v0.8 release
[platform/core/graphics/tizenvg.git] / test / testSwEngine.cpp
index 9e96cab..4cb2250 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2021 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2021 - 2022 Samsung Electronics Co., Ltd. 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
@@ -271,6 +271,62 @@ TEST_CASE("Image Draw", "[tvgSwEngine]")
     REQUIRE(canvas->push(move(basicPicture6)) == Result::Success);
 
 
+    // Downscaled images
+    basicPicture = Picture::gen();
+    REQUIRE(basicPicture);
+    REQUIRE(basicPicture->load(TEST_DIR"/test.png") == Result::Success);
+    REQUIRE(basicPicture->scale(0.2f) == Result::Success);
+    rectMask = tvg::Shape::gen();
+    REQUIRE(rectMask);
+    REQUIRE(rectMask->appendRect(10, 10, 30, 30, 0, 0) == Result::Success);
+    rleMask = tvg::Shape::gen();
+    REQUIRE(rleMask);
+    REQUIRE(rleMask->appendRect(0, 10, 20, 30, 5, 5) == Result::Success);
+
+    // Rect images
+    basicPicture2 = std::unique_ptr<Picture>(static_cast<Picture*>(basicPicture->duplicate()));
+    REQUIRE(basicPicture2);
+    rectMask2 = std::unique_ptr<Shape>(static_cast<Shape*>(rectMask->duplicate()));
+    REQUIRE(rectMask2);
+
+    basicPicture3 = std::unique_ptr<Picture>(static_cast<Picture*>(basicPicture->duplicate()));
+    REQUIRE(basicPicture3);
+    rectMask3 = std::unique_ptr<Shape>(static_cast<Shape*>(rectMask->duplicate()));
+    REQUIRE(rectMask3);
+
+    basicPicture4 = std::unique_ptr<Picture>(static_cast<Picture*>(basicPicture->duplicate()));
+    REQUIRE(basicPicture4);
+
+    // Rle images
+    basicPicture5 = std::unique_ptr<Picture>(static_cast<Picture*>(basicPicture->duplicate()));
+    REQUIRE(basicPicture5);
+
+    basicPicture6 = std::unique_ptr<Picture>(static_cast<Picture*>(basicPicture->duplicate()));
+    REQUIRE(basicPicture6);
+    rleMask6 = std::unique_ptr<Shape>(static_cast<Shape*>(rleMask->duplicate()));
+    REQUIRE(rleMask6);
+
+    // Rect
+    REQUIRE(basicPicture->composite(move(rectMask), tvg::CompositeMethod::AlphaMask) == Result::Success);
+    REQUIRE(canvas->push(move(basicPicture)) == Result::Success);
+
+    REQUIRE(basicPicture2->composite(move(rectMask2), tvg::CompositeMethod::InvAlphaMask) == Result::Success);
+    REQUIRE(canvas->push(move(basicPicture2)) == Result::Success);
+
+    REQUIRE(basicPicture3->composite(move(rectMask3), tvg::CompositeMethod::ClipPath) == Result::Success);
+    REQUIRE(canvas->push(move(basicPicture3)) == Result::Success);
+
+    REQUIRE(basicPicture4->opacity(100) == Result::Success);
+    REQUIRE(canvas->push(move(basicPicture4)) == Result::Success);
+
+    // Rle
+    REQUIRE(basicPicture5->composite(move(rleMask), tvg::CompositeMethod::ClipPath) == Result::Success);
+    REQUIRE(canvas->push(move(basicPicture5)) == Result::Success);
+
+    REQUIRE(basicPicture6->composite(move(rleMask6), tvg::CompositeMethod::ClipPath) == Result::Success);
+    REQUIRE(basicPicture6->opacity(100) == Result::Success);
+    REQUIRE(canvas->push(move(basicPicture6)) == Result::Success);
+
     //Draw
     REQUIRE(canvas->draw() == Result::Success);
     REQUIRE(canvas->sync() == Result::Success);