mirror of
https://github.com/thorvg/thorvg.git
synced 2025-06-14 12:04:29 +00:00
examples lottie: adds a basic example
This commit is contained in:
parent
193a9833a8
commit
ca7a9068bd
51 changed files with 220 additions and 0 deletions
|
@ -73,6 +73,8 @@ static Eo* createSwView(uint32_t w = 800, uint32_t h = 800)
|
|||
return view;
|
||||
}
|
||||
|
||||
#ifndef NO_GL_EXAMPLE
|
||||
|
||||
void initGLview(Evas_Object *obj);
|
||||
void drawGLview(Evas_Object *obj);
|
||||
|
||||
|
@ -101,3 +103,5 @@ static Eo* createGlView(uint32_t w = 800, uint32_t h = 800)
|
|||
|
||||
return view;
|
||||
}
|
||||
|
||||
#endif //NO_GL_EXAMPLE
|
167
src/examples/Lottie.cpp
Normal file
167
src/examples/Lottie.cpp
Normal file
|
@ -0,0 +1,167 @@
|
|||
/*
|
||||
* Copyright (c) 2023 the ThorVG project. 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
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
|
||||
* The above copyright notice and this permission notice shall be included in all
|
||||
* copies or substantial portions of the Software.
|
||||
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
#define NO_GL_EXAMPLE
|
||||
|
||||
#include <vector>
|
||||
#include "Common.h"
|
||||
|
||||
/************************************************************************/
|
||||
/* Drawing Commands */
|
||||
/************************************************************************/
|
||||
|
||||
#define NUM_PER_ROW 7
|
||||
#define NUM_PER_COL 7
|
||||
#define SIZE (WIDTH/NUM_PER_ROW)
|
||||
|
||||
static int counter = 0;
|
||||
static Eo* view = nullptr;
|
||||
static std::vector<unique_ptr<tvg::Animation>> animations;
|
||||
static std::vector<Elm_Transit*> transitions;
|
||||
static unique_ptr<tvg::SwCanvas> swCanvas;
|
||||
|
||||
|
||||
void lottieDirCallback(const char* name, const char* path, void* data)
|
||||
{
|
||||
//ignore if not lottie file.
|
||||
const char *ext = name + strlen(name) - 4;
|
||||
if (strcmp(ext, "json")) return;
|
||||
|
||||
char buf[PATH_MAX];
|
||||
snprintf(buf, sizeof(buf), "/%s/%s", path, name);
|
||||
|
||||
//Animation Controller
|
||||
auto animation = tvg::Animation::gen();
|
||||
auto picture = animation->picture();
|
||||
|
||||
if (picture->load(buf) != tvg::Result::Success) {
|
||||
cout << "Lottie is not supported. Did you enable Lottie Loader?" << endl;
|
||||
return;
|
||||
}
|
||||
|
||||
//image scaling preserving its aspect ratio
|
||||
float scale;
|
||||
float shiftX = 0.0f, shiftY = 0.0f;
|
||||
float w, h;
|
||||
picture->size(&w, &h);
|
||||
|
||||
if (w > h) {
|
||||
scale = SIZE / w;
|
||||
shiftY = (SIZE - h * scale) * 0.5f;
|
||||
} else {
|
||||
scale = SIZE / h;
|
||||
shiftX = (SIZE - w * scale) * 0.5f;
|
||||
}
|
||||
|
||||
picture->scale(scale);
|
||||
picture->translate((counter % NUM_PER_ROW) * SIZE + shiftX, (counter / NUM_PER_ROW) * (HEIGHT / NUM_PER_COL) + shiftY);
|
||||
|
||||
animations.push_back(std::move(animation));
|
||||
|
||||
cout << "Lottie: " << buf << endl;
|
||||
|
||||
counter++;
|
||||
}
|
||||
|
||||
void tvgUpdateCmds(Elm_Transit_Effect *effect, Elm_Transit* transit, double progress)
|
||||
{
|
||||
auto animation = static_cast<tvg::Animation*>(effect);
|
||||
|
||||
//Update animation frame
|
||||
animation->frame(roundf(animation->totalFrame() * progress));
|
||||
|
||||
swCanvas->update(animation->picture());
|
||||
}
|
||||
|
||||
void tvgSwTest(uint32_t* buffer)
|
||||
{
|
||||
//Create a Canvas
|
||||
swCanvas = tvg::SwCanvas::gen();
|
||||
swCanvas->target(buffer, WIDTH, WIDTH, HEIGHT, tvg::SwCanvas::ARGB8888);
|
||||
|
||||
//Background
|
||||
auto shape = tvg::Shape::gen();
|
||||
shape->appendRect(0, 0, WIDTH, HEIGHT);
|
||||
shape->fill(75, 75, 75);
|
||||
|
||||
if (swCanvas->push(std::move(shape)) != tvg::Result::Success) return;
|
||||
|
||||
eina_file_dir_list(EXAMPLE_DIR, EINA_TRUE, lottieDirCallback, swCanvas.get());
|
||||
|
||||
//Run animation loop
|
||||
for (auto& animation : animations) {
|
||||
Elm_Transit* transit = elm_transit_add();
|
||||
elm_transit_effect_add(transit, tvgUpdateCmds, animation.get(), nullptr);
|
||||
elm_transit_duration_set(transit, animation->duration());
|
||||
elm_transit_repeat_times_set(transit, -1);
|
||||
elm_transit_go(transit);
|
||||
|
||||
swCanvas->push(unique_ptr<tvg::Picture>(animation->picture()));
|
||||
}
|
||||
}
|
||||
|
||||
void drawSwView(void* data, Eo* obj)
|
||||
{
|
||||
if (swCanvas->draw() == tvg::Result::Success) {
|
||||
swCanvas->sync();
|
||||
}
|
||||
}
|
||||
|
||||
Eina_Bool animatorCb(void *data)
|
||||
{
|
||||
Eo* img = (Eo*) data;
|
||||
evas_object_image_data_update_add(img, 0, 0, WIDTH, HEIGHT);
|
||||
evas_object_image_pixels_dirty_set(img, EINA_TRUE);
|
||||
|
||||
return ECORE_CALLBACK_RENEW;
|
||||
}
|
||||
|
||||
|
||||
/************************************************************************/
|
||||
/* Main Code */
|
||||
/************************************************************************/
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
//Threads Count
|
||||
auto threads = std::thread::hardware_concurrency();
|
||||
if (threads > 0) --threads; //Allow the designated main thread capacity
|
||||
|
||||
//Initialize ThorVG Engine
|
||||
if (tvg::Initializer::init(tvg::CanvasEngine::Sw, threads) == tvg::Result::Success) {
|
||||
|
||||
elm_init(argc, argv);
|
||||
|
||||
view = createSwView(1440, 1440);
|
||||
ecore_animator_add(animatorCb, view);
|
||||
|
||||
elm_run();
|
||||
elm_shutdown();
|
||||
|
||||
//Terminate ThorVG Engine
|
||||
tvg::Initializer::term(tvg::CanvasEngine::Sw);
|
||||
|
||||
} else {
|
||||
cout << "engine is not supported" << endl;
|
||||
}
|
||||
return 0;
|
||||
}
|
1
src/examples/images/StickAndBall.json
Normal file
1
src/examples/images/StickAndBall.json
Normal file
File diff suppressed because one or more lines are too long
1
src/examples/images/_alarm.json
Normal file
1
src/examples/images/_alarm.json
Normal file
File diff suppressed because one or more lines are too long
1
src/examples/images/acrobatics.json
Normal file
1
src/examples/images/acrobatics.json
Normal file
File diff suppressed because one or more lines are too long
1
src/examples/images/anubis.json
Normal file
1
src/examples/images/anubis.json
Normal file
File diff suppressed because one or more lines are too long
1
src/examples/images/ao.json
Normal file
1
src/examples/images/ao.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"v":"5.2.1","fr":60,"ip":0,"op":60,"w":500,"h":500,"nm":"Comp 1","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"rc","d":1,"s":{"a":0,"k":[100,100],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[-89.47,0],[0,-89.47],[89.47,0],[0,89.47]],"o":[[89.47,0],[0,89.47],[-89.47,0],[0,-89.47]],"v":[[0,-162],[162,0],[0,162],[-162,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false}],"ip":0,"op":60,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.562,"y":0.562},"o":{"x":0.167,"y":0.167},"n":"0p562_0p562_0p167_0p167","t":8,"s":[250,88,0],"e":[412,250,0],"to":[89.4701232910156,0,0],"ti":[0,-89.4701232910156,0]},{"i":{"x":0.656,"y":0.656},"o":{"x":0.311,"y":0.311},"n":"0p656_0p656_0p311_0p311","t":38,"s":[412,250,0],"e":[250,412,0],"to":[0,89.4701232910156,0],"ti":[89.4701232910156,0,0]},{"i":{"x":0.689,"y":0.689},"o":{"x":0.343,"y":0.343},"n":"0p689_0p689_0p343_0p343","t":68,"s":[250,412,0],"e":[88,250,0],"to":[-89.4701232910156,0,0],"ti":[0,89.4701232910156,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.437,"y":0.437},"n":"0p833_0p833_0p437_0p437","t":98,"s":[88,250,0],"e":[250,88,0],"to":[0,-89.4701232910156,0],"ti":[-89.4701232910156,0,0]},{"t":128}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":1,"shapes":[{"ty":"rc","d":1,"s":{"a":0,"k":[100,100],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"ml2":{"a":0,"k":4,"ix":8},"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false}],"ip":0,"op":60,"st":0,"bm":0}],"markers":[]}
|
1
src/examples/images/balloons_with_string.json
Normal file
1
src/examples/images/balloons_with_string.json
Normal file
File diff suppressed because one or more lines are too long
1
src/examples/images/browser.json
Normal file
1
src/examples/images/browser.json
Normal file
File diff suppressed because one or more lines are too long
1
src/examples/images/confetti.json
Normal file
1
src/examples/images/confetti.json
Normal file
File diff suppressed because one or more lines are too long
1
src/examples/images/confetti2.json
Normal file
1
src/examples/images/confetti2.json
Normal file
File diff suppressed because one or more lines are too long
1
src/examples/images/dancing_book.json
Normal file
1
src/examples/images/dancing_book.json
Normal file
File diff suppressed because one or more lines are too long
1
src/examples/images/day_to_night.json
Normal file
1
src/examples/images/day_to_night.json
Normal file
File diff suppressed because one or more lines are too long
1
src/examples/images/dodecahedron.json
Normal file
1
src/examples/images/dodecahedron.json
Normal file
File diff suppressed because one or more lines are too long
1
src/examples/images/down.json
Normal file
1
src/examples/images/down.json
Normal file
File diff suppressed because one or more lines are too long
1
src/examples/images/emoji_enjoying.json
Normal file
1
src/examples/images/emoji_enjoying.json
Normal file
File diff suppressed because one or more lines are too long
1
src/examples/images/flipping_page.json
Normal file
1
src/examples/images/flipping_page.json
Normal file
File diff suppressed because one or more lines are too long
1
src/examples/images/gears.json
Normal file
1
src/examples/images/gears.json
Normal file
File diff suppressed because one or more lines are too long
1
src/examples/images/geometric.json
Normal file
1
src/examples/images/geometric.json
Normal file
File diff suppressed because one or more lines are too long
1
src/examples/images/glow_loading.json
Normal file
1
src/examples/images/glow_loading.json
Normal file
File diff suppressed because one or more lines are too long
1
src/examples/images/gradient_animated_background.json
Normal file
1
src/examples/images/gradient_animated_background.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"v":"4.6.10","fr":15,"ip":0,"op":155,"w":1080,"h":1920,"nm":"background","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 1","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[540,960,0]},"a":{"a":0,"k":[0,0,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[1160,880]},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":0},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect"},{"ty":"st","c":{"a":0,"k":[0.9960784,0.7843137,0.145098,1]},"o":{"a":0,"k":100},"w":{"a":0,"k":6},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke"},{"ty":"gf","o":{"a":0,"k":100},"r":1,"g":{"p":3,"k":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[0,0.511,0.89,0.283,0.5,0.334,0.873,0.583,1,0.156,0.857,0.882],"e":[0,0.726,0.283,0.89,0.5,0.441,0.356,0.886,1,0.156,0.429,0.882]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":31,"s":[0,0.726,0.283,0.89,0.5,0.441,0.356,0.886,1,0.156,0.429,0.882],"e":[0,0.89,0.283,0.283,0.5,0.886,0.553,0.219,1,0.882,0.823,0.156]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":61,"s":[0,0.89,0.283,0.283,0.5,0.886,0.553,0.219,1,0.882,0.823,0.156],"e":[0,0,0.312,0.737,0.5,0.078,0.597,0.754,1,0.156,0.882,0.771]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":91,"s":[0,0,0.312,0.737,0.5,0.078,0.597,0.754,1,0.156,0.882,0.771],"e":[0,0.51,0.89,0.282,0.5,0.333,0.873,0.582,1,0.157,0.855,0.882]},{"t":120}]}},"s":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[-430.769,-404.573],"e":[23.726,-364.48],"to":[75.7491683959961,6.68213844299316],"ti":[-123.915840148926,-8.51547145843506]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":31,"s":[23.726,-364.48],"e":[312.726,-353.48],"to":[123.915840148926,8.51547145843506],"ti":[-1.00208830833435,-1.83333337306976]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":61,"s":[312.726,-353.48],"e":[29.739,-353.48],"to":[1.00208830833435,1.83333337306976],"ti":[120.055290222168,0.60746711492538]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":91,"s":[29.739,-353.48],"e":[-407.606,-357.125],"to":[-120.055290222168,-0.60746711492538],"ti":[72.8907089233398,0.60746711492538]},{"t":120}]},"e":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[374.412,342.611],"e":[22.822,357.191],"to":[-58.5984153747559,2.42986845970154],"ti":[132.520950317383,-7.89707231521606]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":31,"s":[22.822,357.191],"e":[-420.714,389.994],"to":[-132.520950317383,7.89707231521606],"ti":[-4.68509674072266,-7.89707231521606]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":61,"s":[-420.714,389.994],"e":[50.932,404.573],"to":[4.68509674072266,7.89707231521606],"ti":[-132.918350219727,4.25226974487305]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":91,"s":[50.932,404.573],"e":[376.797,364.48],"to":[132.918350219727,-4.25226974487305],"ti":[-54.3107261657715,6.68213844299316]},{"t":120}]},"t":1,"nm":"Gradient Fill 1","mn":"ADBE Vector Graphic - G-Fill"},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[93.29,219.491],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group"}],"ip":0,"op":155,"st":0,"bm":0,"sr":1},{"ddd":0,"ind":2,"ty":1,"nm":"Deep Red Solid 1","ks":{"o":{"a":0,"k":100},"r":{"a":0,"k":0},"p":{"a":0,"k":[540,960,0]},"a":{"a":0,"k":[540,960,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"sw":1080,"sh":1920,"sc":"#be2a2a","ip":0,"op":155,"st":0,"bm":0,"sr":1}]}
|
1
src/examples/images/gradient_infinite.json
Normal file
1
src/examples/images/gradient_infinite.json
Normal file
File diff suppressed because one or more lines are too long
1
src/examples/images/gradient_sleepy_loader.json
Normal file
1
src/examples/images/gradient_sleepy_loader.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"v":"5.1.8","fr":23.9759979248047,"ip":0,"op":240.999979140721,"w":300,"h":300,"nm":"SynthesisProto_Loader","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Layer 2 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[-180],"e":[180]},{"t":239.999979227274}],"ix":10},"p":{"a":0,"k":[150.125,150,0],"ix":2},"a":{"a":0,"k":[533,533,0],"ix":1},"s":{"a":0,"k":[16,16,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[65.74,-27.805],[48.897,-48.895],[26.837,-63.449],[0,-71.877],[-27.805,-65.739],[-48.894,-48.896],[-63.449,-26.837],[-71.878,0],[-65.739,27.805],[-48.895,48.895],[-26.837,63.449],[0,71.878],[27.805,65.739],[48.896,48.896],[63.449,26.837],[71.877,0]],"o":[[-63.449,26.837],[-48.894,48.896],[-27.805,65.739],[0,71.878],[26.837,63.449],[48.897,48.895],[65.74,27.805],[71.877,0],[63.449,-26.837],[48.896,-48.896],[27.805,-65.739],[0,-71.877],[-26.837,-63.449],[-48.895,-48.895],[-65.739,-27.805],[-71.878,0]],"v":[[-207.395,-490.833],[-376.703,-376.703],[-490.833,-207.394],[-532.735,0],[-490.833,207.393],[-376.703,376.702],[-207.395,490.833],[0,532.735],[207.394,490.833],[376.702,376.702],[490.833,207.393],[532.738,0],[490.833,-207.394],[376.702,-376.703],[207.394,-490.833],[0,-532.738]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[65.201,65.2],[0,92.206],[-65.199,65.2],[-92.207,0],[-65.2,-65.2],[0,-92.206],[65.2,-65.201],[92.206,0]],"o":[[-65.199,-65.201],[0,-92.206],[65.201,-65.2],[92.206,0],[65.2,65.2],[0,92.206],[-65.2,65.2],[-92.207,0]],"v":[[-244.095,244.094],[-345.202,0],[-244.095,-244.094],[0,-345.202],[244.095,-244.094],[345.202,0],[244.095,244.094],[0,345.202]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gf","o":{"a":0,"k":100,"ix":10},"r":1,"g":{"p":3,"k":{"a":0,"k":[0,0.133,0.063,0.282,0.5,0.386,0.257,0.459,1,0.639,0.451,0.635],"ix":9}},"s":{"a":0,"k":[661,0],"ix":5},"e":{"a":0,"k":[-690,0],"ix":6},"t":1,"nm":"Gradient Fill 1","mn":"ADBE Vector Graphic - G-Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[533,533],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":1,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":720.999937595269,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Layer 1 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[180],"e":[-180]},{"t":239.999979227274}],"ix":10},"p":{"a":0,"k":[150.125,150,0],"ix":2},"a":{"a":0,"k":[726,726,0],"ix":1},"s":{"a":0,"k":[16,16,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-400.378],[-400.379,0],[0,400.378],[400.378,0]],"o":[[0,400.378],[400.378,0],[0,-400.378],[-400.379,0]],"v":[[-724.948,0],[0,724.949],[724.948,0],[0,-724.949]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gf","o":{"a":0,"k":100,"ix":10},"r":1,"g":{"p":3,"k":{"a":0,"k":[0,0.133,0.063,0.282,0.5,0.386,0.257,0.459,1,0.639,0.451,0.635],"ix":9}},"s":{"a":0,"k":[200,0],"ix":5},"e":{"a":0,"k":[-608,0],"ix":6},"t":1,"nm":"Gradient Fill 1","mn":"ADBE Vector Graphic - G-Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[726,726],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":180,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":1,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":720.999937595269,"st":0,"bm":0}],"markers":[]}
|
1
src/examples/images/gradient_smoke.json
Normal file
1
src/examples/images/gradient_smoke.json
Normal file
File diff suppressed because one or more lines are too long
1
src/examples/images/hamburger.json
Normal file
1
src/examples/images/hamburger.json
Normal file
File diff suppressed because one or more lines are too long
1
src/examples/images/happy_trio.json
Normal file
1
src/examples/images/happy_trio.json
Normal file
File diff suppressed because one or more lines are too long
1
src/examples/images/holi_colors.json
Normal file
1
src/examples/images/holi_colors.json
Normal file
File diff suppressed because one or more lines are too long
1
src/examples/images/hourglass.json
Normal file
1
src/examples/images/hourglass.json
Normal file
File diff suppressed because one or more lines are too long
1
src/examples/images/la_communaute.json
Normal file
1
src/examples/images/la_communaute.json
Normal file
File diff suppressed because one or more lines are too long
1
src/examples/images/like_button.json
Normal file
1
src/examples/images/like_button.json
Normal file
File diff suppressed because one or more lines are too long
1
src/examples/images/loading_animation.json
Normal file
1
src/examples/images/loading_animation.json
Normal file
File diff suppressed because one or more lines are too long
1
src/examples/images/loading_rectangles.json
Normal file
1
src/examples/images/loading_rectangles.json
Normal file
File diff suppressed because one or more lines are too long
1
src/examples/images/loveface_emoji.json
Normal file
1
src/examples/images/loveface_emoji.json
Normal file
File diff suppressed because one or more lines are too long
1
src/examples/images/material_wave_loading.json
Normal file
1
src/examples/images/material_wave_loading.json
Normal file
File diff suppressed because one or more lines are too long
1
src/examples/images/meta_universe.json
Normal file
1
src/examples/images/meta_universe.json
Normal file
File diff suppressed because one or more lines are too long
1
src/examples/images/ondas.json
Normal file
1
src/examples/images/ondas.json
Normal file
File diff suppressed because one or more lines are too long
1
src/examples/images/open_envelope.json
Normal file
1
src/examples/images/open_envelope.json
Normal file
File diff suppressed because one or more lines are too long
1
src/examples/images/ripple_loading_animation.json
Normal file
1
src/examples/images/ripple_loading_animation.json
Normal file
File diff suppressed because one or more lines are too long
1
src/examples/images/road_trip.json
Normal file
1
src/examples/images/road_trip.json
Normal file
File diff suppressed because one or more lines are too long
1
src/examples/images/snail.json
Normal file
1
src/examples/images/snail.json
Normal file
File diff suppressed because one or more lines are too long
1
src/examples/images/spin,_lil_loader_v2.json
Normal file
1
src/examples/images/spin,_lil_loader_v2.json
Normal file
File diff suppressed because one or more lines are too long
1
src/examples/images/swinging.json
Normal file
1
src/examples/images/swinging.json
Normal file
File diff suppressed because one or more lines are too long
1
src/examples/images/teen_walking.json
Normal file
1
src/examples/images/teen_walking.json
Normal file
File diff suppressed because one or more lines are too long
1
src/examples/images/telegram.json
Normal file
1
src/examples/images/telegram.json
Normal file
File diff suppressed because one or more lines are too long
1
src/examples/images/three.json
Normal file
1
src/examples/images/three.json
Normal file
File diff suppressed because one or more lines are too long
1
src/examples/images/tile_grid_loading_animation.json
Normal file
1
src/examples/images/tile_grid_loading_animation.json
Normal file
File diff suppressed because one or more lines are too long
1
src/examples/images/triib_manage.json
Normal file
1
src/examples/images/triib_manage.json
Normal file
File diff suppressed because one or more lines are too long
1
src/examples/images/voice_recognition.json
Normal file
1
src/examples/images/voice_recognition.json
Normal file
File diff suppressed because one or more lines are too long
1
src/examples/images/walker.json
Normal file
1
src/examples/images/walker.json
Normal file
File diff suppressed because one or more lines are too long
1
src/examples/images/yoyo.json
Normal file
1
src/examples/images/yoyo.json
Normal file
File diff suppressed because one or more lines are too long
|
@ -23,6 +23,7 @@ source_file = [
|
|||
'InvLumaMasking.cpp',
|
||||
'InvMasking.cpp',
|
||||
'LinearGradient.cpp',
|
||||
'Lottie.cpp',
|
||||
'LumaMasking.cpp',
|
||||
'Masking.cpp',
|
||||
'MaskingMethods.cpp',
|
||||
|
|
Loading…
Add table
Reference in a new issue