hermet pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=cbd02d3d51c6cbb6c118467088c6cd40f8114820

commit cbd02d3d51c6cbb6c118467088c6cd40f8114820
Author: JunsuChoi <jsuya.c...@samsung.com>
Date:   Tue Dec 10 19:18:39 2019 +0900

    Example: enhance efl-canvas-vg-simple
    
    Summary:
    - Use path reserve
    - Use container object
    
    Test Plan: ./build/src/examples/evas/efl-canvas-vg-simple
    
    Reviewers: Hermet, kimcinoo, smohanty
    
    Reviewed By: Hermet
    
    Subscribers: cedric, #reviewers, #committers
    
    Tags: #efl
    
    Differential Revision: https://phab.enlightenment.org/D10830
---
 src/examples/evas/efl-canvas-vg-simple.c | 37 +++++++++++++++++++++-----------
 1 file changed, 24 insertions(+), 13 deletions(-)

diff --git a/src/examples/evas/efl-canvas-vg-simple.c 
b/src/examples/evas/efl-canvas-vg-simple.c
index 36bdfcb6a8..79a9645890 100644
--- a/src/examples/evas/efl-canvas-vg-simple.c
+++ b/src/examples/evas/efl-canvas-vg-simple.c
@@ -43,6 +43,8 @@ Ecore_Animator *animator;
  * the end of the path.
  */
 static const char *batman = "M 256,213 C 245,181 206,187 234,262 147,181 
169,71.2 233,18 220,56 235,81 283,88 285,78.7 286,69.3 288,60 289,61.3 290,62.7 
291,64 291,64 297,63 300,63 303,63 309,64 309,64 310,62.7 311,61.3 312,60 
314,69.3 315,78.7 317,88 365,82 380,56 367,18 431,71 453,181 366,262 394,187 
356,181 344,213 328,185 309,184 300,284 291,184 272,185 256,213 Z";
+static const unsigned int batman_commandCnt = 17;
+static const unsigned int batman_pointCnt = 86;
 static const char *morph1[2] = {"M 0,0 L 0,0 L 100,0 L 100,0 L 100,100 L 
100,100 L 0,100 L 0,100 L 0,0",
                                 "M 0,0 L 50,-80 L 100,0 L 180,50 L 100,100 L 
50,180 L 0,100 L -80,50 L 0,0"};
 
@@ -422,7 +424,7 @@ _2_interpolation_test()
 {
   anim_index = 0;
 
-  Efl_VG *shape;
+  Efl_VG *shape, *container;
 
   reset_test();
 
@@ -430,13 +432,19 @@ _2_interpolation_test()
   animator = ecore_animator_timeline_add(1, _interpolation_keyframe, NULL);
   puts(interpolation_menu);
 
+  // Make Efl.Canvas.Vg.Container Object
+  container = efl_add(EFL_CANVAS_VG_CONTAINER_CLASS, d.vg);
+  // Set the root node of Efl.Canvas.Vg.Object
+  // The Efl.Canvas.Vg.Object searches and renders
+  // Efl.Canvas.Vg.Node(Shape, Container, etc...) from set root node.
+  efl_canvas_vg_object_root_node_set(d.vg, container);
+
   //Interpolation 'from' and 'to' Object
   shape = efl_add(EFL_CANVAS_VG_SHAPE_CLASS, d.vg,
     efl_gfx_path_append_svg_path(efl_added, morph1[0]),           // Set SVG 
path
     efl_gfx_shape_stroke_color_set(efl_added, 255, 0, 0, 255),
     efl_gfx_shape_stroke_width_set(efl_added, 5),
-    efl_canvas_vg_node_origin_set(efl_added, 100, 100)
-);
+    efl_canvas_vg_node_origin_set(efl_added, 100, 100));
   d.shape_list = eina_list_append(d.shape_list, shape);
 
   shape = efl_add(EFL_CANVAS_VG_SHAPE_CLASS, d.vg,
@@ -447,17 +455,15 @@ _2_interpolation_test()
   d.shape_list = eina_list_append(d.shape_list, shape);
 
   // Base Object
-  shape = efl_add(EFL_CANVAS_VG_SHAPE_CLASS, d.vg);
+  shape = efl_add(EFL_CANVAS_VG_SHAPE_CLASS, container);
   d.shape_list = eina_list_append(d.shape_list, shape);
 
-  efl_canvas_vg_object_root_node_set(d.vg, shape);
 }
 
 // 2. Interpolation Test Case END
 
 
 // 3. Gradient Test Case START
-
 static void
 _gradient_key_handle(void *data EINA_UNUSED, const Efl_Event *ev)
 {
@@ -559,7 +565,7 @@ _3_gradient_test()
 static void
 _main_menu()
 {
-  Efl_VG *shape;
+  Efl_VG *shape, *container;
   if (animator) ecore_animator_del(animator);
   animator = NULL;
   if(d.vg) efl_del(d.vg);
@@ -575,18 +581,23 @@ _main_menu()
   d.vg = efl_add(EFL_CANVAS_VG_OBJECT_CLASS, d.evas,
     efl_gfx_entity_visible_set(efl_added, EINA_TRUE));
 
+  // Make Efl.Canvas.Vg.Container Object
+  container = efl_add(EFL_CANVAS_VG_CONTAINER_CLASS, d.vg);
+  // Set the root node of Efl.Canvas.Vg.Object
+  // The Efl.Canvas.Vg.Object searches and renders
+  // Efl.Canvas.Vg.Node(Shape, Container, etc...) from set root node.
+  efl_canvas_vg_object_root_node_set(d.vg, container);
+
   // Make Efl.Canvas.Vg.Shape
-  shape = efl_add(EFL_CANVAS_VG_SHAPE_CLASS, d.vg,
-    efl_gfx_path_append_svg_path(efl_added, batman),           // Set SVG path
+  shape = efl_add(EFL_CANVAS_VG_SHAPE_CLASS, container,
     efl_gfx_shape_stroke_color_set(efl_added, 255, 0, 0, 255), // Set Stroke 
color
     efl_gfx_shape_stroke_width_set(efl_added, 5),              // Set Stroke 
width
     efl_gfx_color_set(efl_added, 255, 255, 0, 255),            // Set Fill 
color
     efl_canvas_vg_node_origin_set(efl_added, 25, 100));         // Set Position
 
-  // Set the root node of Efl.Canvas.Vg.Object
-  // The Efl.Canvas.Vg.Object searches and renders
-  // Efl.Canvas.Vg.Node(Shape, Container, etc...) from set root node.
-  efl_canvas_vg_object_root_node_set(d.vg, shape);
+  // Reserve memory for the number of commands and pointers
+  efl_gfx_path_reserve(shape, batman_commandCnt, batman_pointCnt);
+  efl_gfx_path_append_svg_path(shape, batman);           // Set SVG path
 
   _canvas_resize_cb(d.ee);
   puts(main_menu);

-- 


Reply via email to