test: add merge shapes 14/231914/2
authorHermet Park <chuneon.park@samsung.com>
Sun, 26 Apr 2020 09:41:27 +0000 (18:41 +0900)
committerHermet Park <chuneon.park@samsung.com>
Sun, 26 Apr 2020 09:44:41 +0000 (18:44 +0900)
Change-Id: I2dc91d3514aed1cbb1bd3490ea5d91debeab662a

test/makefile
test/testMergeShapes.cpp [new file with mode: 0644]
test/testMultiShapes.cpp [moved from test/testMultipleShapes.cpp with 100% similarity]

index 00b7d7f..bb80729 100644 (file)
@@ -1,3 +1,4 @@
 all:
        gcc -o testShape testShape.cpp -g -lstdc++ `pkg-config --cflags --libs elementary tizenvg`
-       gcc -o testMultipleShapes testMultipleShapes.cpp -g -lstdc++ `pkg-config --cflags --libs elementary tizenvg`
+       gcc -o testMultiShapes testMultiShapes.cpp -g -lstdc++ `pkg-config --cflags --libs elementary tizenvg`
+       gcc -o testMergeShapes testMergeShapes.cpp -g -lstdc++ `pkg-config --cflags --libs elementary tizenvg`
diff --git a/test/testMergeShapes.cpp b/test/testMergeShapes.cpp
new file mode 100644 (file)
index 0000000..3242df7
--- /dev/null
@@ -0,0 +1,63 @@
+#include <tizenvg.h>
+#include <Elementary.h>
+
+using namespace std;
+
+#define WIDTH 800
+#define HEIGHT 800
+
+static uint32_t buffer[WIDTH * HEIGHT];
+
+void tvgtest()
+{
+    //Initialize TizenVG Engine
+    tvg::Engine::init();
+
+    //Create a Canvas
+    auto canvas = tvg::SwCanvas::gen(buffer, WIDTH, HEIGHT);
+
+    //Prepare a Shape (Rectangle + Rectangle + Circle)
+    auto shape1 = tvg::ShapeNode::gen();
+    shape1->appendRect(0, 0, 200, 200, 0);          //x, y, w, h, cornerRadius
+    shape1->appendRect(100, 100, 300, 300, 100);    //x, y, w, h, cornerRadius
+    shape1->appendCircle(500, 500, 100, 100);       //cx, cy, radiusW, radiusH
+    //FIXME: eeek! crash!
+ //   shape1->appendCircle(400, 600, 170, 100);       //cx, cy, radiusW, radiusH
+    shape1->fill(255, 0, 0, 255);                   //r, g, b, a
+
+    /* Push the shape into the Canvas drawing list
+       When this shape is into the canvas list, the shape could update & prepare
+       internal data asynchronously for coming rendering.
+       Canvas keeps this shape node unless user call canvas->clear() */
+    canvas->push(move(shape1));
+
+    canvas->draw();
+    canvas->sync();
+
+    //Terminate TizenVG Engine
+    tvg::Engine::term();
+}
+
+
+int main(int argc, char **argv)
+{
+    tvgtest();
+
+    //Show the result using EFL...
+    elm_init(argc, argv);
+
+    Eo* win = elm_win_util_standard_add(NULL, "TizenVG Test");
+
+    Eo* img = evas_object_image_filled_add(evas_object_evas_get(win));
+    evas_object_image_size_set(img, WIDTH, HEIGHT);
+    evas_object_image_data_set(img, buffer);
+    evas_object_size_hint_weight_set(img, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+    evas_object_show(img);
+
+    elm_win_resize_object_add(win, img);
+    evas_object_geometry_set(win, 0, 0, WIDTH, HEIGHT);
+    evas_object_show(win);
+
+    elm_run();
+    elm_shutdown();
+}