This is an automated email from the git hooks/post-receive script.
git pushed a commit to branch edje-vector-intergration
in repository efl.
View the commit online.
commit 1cb75560e97d62b55e1f2c7f0a76573d5ac1c273
Author: [email protected] <[email protected]>
AuthorDate: Sat May 2 21:49:42 2026 -0600
examples/edje: morph vector_states demo to the Enlightenment logo
Replace the worked example's rounded-square default state and blocky
letter-E hover state with paths that morph between a rounded square and
the actual Enlightenment logo — the stylised round E extracted from
data/elementary/themes/img/svg/enlightenment.svg.
The new hover path is visibly more interesting and matches the project's
branding, making the example more compelling as a showcase of vector state
animation. Topology is preserved (M + 2 L + 13 C + Z) so efl_gfx_path_
interpolate() produces a smooth morph between the two shapes, and control
points in the default state trace edges and corners that align with the
logo's feature positions.
- Default state: rounded square with 16 vertices distributed around the
perimeter, straight-edge cubics (collinear control points) and corner
cubics with control points at the would-be sharp corners.
- Hover state: Enlightenment E outline transformed to 100×100 viewbox
and rescaled from SVG coordinates.
Verified: edje_cc compiles with zero warnings, edje_player renders the
morph correctly on mouse-in/out, and all 91 edje_suite tests pass.
Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
---
src/examples/edje/vector_states.edc | 23 +++++++++++++++++++----
1 file changed, 19 insertions(+), 4 deletions(-)
diff --git a/src/examples/edje/vector_states.edc b/src/examples/edje/vector_states.edc
index db3edf3898..41fcb0471c 100644
--- a/src/examples/edje/vector_states.edc
+++ b/src/examples/edje/vector_states.edc
@@ -38,9 +38,19 @@ collections {
stop { offset: 1.0; color_class: "logo_outline"; }
}
shape { name: "body";
- /* topology: M + 8×L + Z — identical command sequence in both
- * states, so efl_gfx_path_interpolate() can morph the path. */
- path: "M0,0 L0,0 L100,0 L100,0 L100,100 L100,100 L0,100 L0,100 L0,0";
+ /* Topology: M + 2 L + 13 C + Z — identical command sequence
+ * in both states so efl_gfx_path_interpolate() can morph the
+ * path. The hover state is the actual Enlightenment logo
+ * (extracted from data/elementary/themes/img/svg/enlightenment.svg
+ * and rescaled to a 100x100 viewbox). The default state
+ * traces a rounded square with the same 16-vertex layout —
+ * straight cubics on the edges (control points collinear)
+ * and four corner cubics with control points at the would-be
+ * sharp corner. The two L commands sit between the top
+ * edge's first half and the right edge's bottom (matching
+ * the L positions in the logo, which mark where the outer
+ * ring meets the inner cut). */
+ path: "M12,0 L50,0 C63,0 75,0 88,0 C100,0 100,0 100,12 C100,18 100,24 100,30 C100,37 100,43 100,50 C100,57 100,63 100,70 L100,88 C100,100 100,100 88,100 C75,100 62,100 50,100 C37,100 24,100 12,100 C0,100 0,100 0,88 C0,79 0,69 0,60 C0,52 0,43 0,35 C0,27 0,20 0,12 C0,0 0,0 12,0 Z";
fill.gradient: "body_grad";
stroke.color_class: "logo_outline";
stroke.width: 2;
@@ -66,7 +76,12 @@ collections {
* logo_hover so the warm colour leads the gradient. */
vector.shape {
target: "body";
- path: "M0,0 L50,-80 L100,0 L180,50 L100,100 L50,180 L0,100 L-80,50 L0,0";
+ /* Same topology as default (M + 2 L + 13 C + Z). This
+ * is the Enlightenment "E" logo — a stylised round E
+ * formed by an outer ring with an inner cut. Path
+ * extracted from data/elementary/themes/img/svg/
+ * enlightenment.svg, transformed to viewbox 0,0,100,100. */
+ path: "M30.17,42.65 L75.78,73.10 C77.67,71.14 77.67,71.14 78.88,69.33 C89.13,54.01 85.57,32.05 69.38,21.28 C53.13,10.33 31.46,15.41 21.13,30.74 C11.25,45.59 13.62,67.40 30.68,78.96 C45.61,88.82 59.60,84.48 68.18,79.73 L63.89,72.38 C54.65,77.26 43.82,77.84 35.48,72.16 C22.65,63.66 20.12,46.96 28.03,35.27 C35.81,23.53 51.90,19.96 64.64,28.36 C78.04,37.45 77.26,53.24 73.93,60.31 C72.47,59.30 71.00,58.29 69.53,57.28 C73.36,47.37 69.47,37.58 61.81,32.46 C52.79,26.42 39.71,27 [...]
stroke.width: 4;
}
vector.gradient_linear {
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.