From b6a9b1e39726939cdda08fb11a9f4651a9aec89c Mon Sep 17 00:00:00 2001 From: Jinny You Date: Fri, 21 Feb 2025 00:32:31 +0800 Subject: [PATCH] sample wip --- examples/Animation.cpp | 2 +- examples/resources/lottie/sample.json | 166 ++++++++++++++------------ 2 files changed, 92 insertions(+), 76 deletions(-) diff --git a/examples/Animation.cpp b/examples/Animation.cpp index b16de787..d397823d 100644 --- a/examples/Animation.cpp +++ b/examples/Animation.cpp @@ -95,5 +95,5 @@ struct UserExample : tvgexam::Example int main(int argc, char **argv) { // Ensure thread is 1 for expression support - return tvgexam::main(new UserExample, argc, argv, false, 1024, 1024, 1); + return tvgexam::main(new UserExample, argc, argv, false, 500, 500, 1); } \ No newline at end of file diff --git a/examples/resources/lottie/sample.json b/examples/resources/lottie/sample.json index 7d0e4ea5..61c51912 100644 --- a/examples/resources/lottie/sample.json +++ b/examples/resources/lottie/sample.json @@ -1,77 +1,93 @@ { - "v": "5.5.7", - "ip": 0, - "op": 180, - "nm": "Animation", - "mn": "{8f1618e3-6f83-4531-8f65-07dd4b68ee2e}", - "fr": 60, - "w": 512, - "h": 512, - "assets": [], - "slots": { - }, - "layers": [ - { - "ddd": 0, - "ty": 4, - "ind": 0, - "st": 0, - "ip": 0, - "op": 180, - "nm": "Layer", - "mn": "{85f37d8b-1792-4a4f-82d2-1b3b6d829c07}", - "ks": { - "a": { "a": 0, "k": [256, 256] }, - "p": { "a": 0, "k": [256, 256] }, - "s": { "a": 0, "k": [100, 100] }, - "r": { "a": 0, "k": 0 }, - "o": { "a": 0, "k": 100 } - }, - "shapes": [ - { - "ty": "gr", - "nm": "Group", - "it": [ - { - "ty": "rc", - "nm": "Rectangle", - "p": { "a": 0, "k": [250, 227] }, - "s": { "a": 0, "k": [334, 239] }, - "r": { "a": 0, "k": 0 } - }, - { - "ty": "st", - "nm": "Stroke", - "mn": "{0930ce27-c8f9-4371-b0cf-111a859abfaf}", - "o": { "a": 0, "k": 100 }, - "c": { "a": 0, "k": [1, 0.9803921568627451, 0.2823529411764706] }, - "lc": 2, - "lj": 2, - "ml": 0, - "w": { "a": 0, "k": 30 } - }, - { - "ty": "tr", - "a": { - "a": 0, - "k": [249.3134328358209, 254.47164179104476], - "sid": "rect_anchor_point" - }, - "p": { - "a": 0, - "k": [249.3134328358209, 254.47164179104476], - "sid": "rect_position" - }, - "s": { "a": 0, "k": [100, 100], "sid": "rect_scale" }, - "r": { "a": 0, "k": 0, "sid": "rect_rotation" }, - "o": { "a": 0, "k": 100, "sid": "rect_opacity" }, - "sk": { "a": 0, "k": 180, "sid": "rect_skew" }, - "sa": { "a": 0, "k": 0, "sid": "rect_skew_angle" } - } - ] + "v": "5.5.7", + "ip": 0, + "op": 180, + "nm": "Animation", + "mn": "{8f1618e3-6f83-4531-8f65-07dd4b68ee2e}", + "fr": 60, + "w": 512, + "h": 512, + "assets": [], + "slots": { + "rect_rotation": { + "p": { + "x": "var $bm_rt = time * 360;" } - ] - } - ], - "meta": { "g": "Glaxnimate 0.4.6-26-g7b05e75c" } -} + }, + "rect_scale": { + "p": { + "x": "var $bm_rt = [];\n$bm_rt[0] = value[0] + Math.cos(2 * Math.PI * time) * 100;\n$bm_rt[1] = value[1];" + } + }, + "rect_position": { + "p": { + "x": "var $bm_rt = [];\n$bm_rt[0] = value[0] + Math.cos(2 * Math.PI * time) * 100;\n$bm_rt[1] = value[1];" + } + } + }, + "layers": [ + { + "ddd": 0, + "ty": 4, + "ind": 0, + "st": 0, + "ip": 0, + "op": 180, + "nm": "Layer", + "mn": "{85f37d8b-1792-4a4f-82d2-1b3b6d829c07}", + "ks": { + "a": { "a": 0, "k": [256, 256] }, + "p": { "a": 0, "k": [256, 256] }, + "s": { "a": 0, "k": [100, 100] }, + "r": { "a": 0, "k": 0 }, + "o": { "a": 0, "k": 100 } + }, + "shapes": [ + { + "ty": "gr", + "nm": "Group", + "it": [ + { + "ty": "rc", + "nm": "Rectangle", + "p": { "a": 0, "k": [250, 227] }, + "s": { "a": 0, "k": [334, 239] }, + "r": { "a": 0, "k": 0 } + }, + { + "ty": "st", + "nm": "Stroke", + "mn": "{0930ce27-c8f9-4371-b0cf-111a859abfaf}", + "o": { "a": 0, "k": 100 }, + "c": { "a": 0, "k": [1, 0.9803921568627451, 0.2823529411764706] }, + "lc": 2, + "lj": 2, + "ml": 0, + "w": { "a": 0, "k": 30 } + }, + { + "ty": "tr", + "a": { + "a": 0, + "k": [249.3134328358209, 254.47164179104476], + "sid": "rect_anchor_point" + }, + "p": { + "a": 0, + "k": [249.3134328358209, 254.47164179104476], + "sid": "rect_position" + }, + "s": { "a": 0, "k": [100, 100], "sid": "rect_scale" }, + "r": { "a": 0, "k": 0, "sid": "rect_rotation" }, + "o": { "a": 0, "k": 100, "sid": "rect_opacity" }, + "sk": { "a": 0, "k": 180, "sid": "rect_skew" }, + "sa": { "a": 0, "k": 0, "sid": "rect_skew_angle" } + } + ] + } + ] + } + ], + "meta": { "g": "Glaxnimate 0.4.6-26-g7b05e75c" } + } + \ No newline at end of file