ThorVG 0.15

āϤāĻŋāύ āĻŽāĻžāϏ⧇āϰ āĻ•āĻ ā§‹āϰ āĻĒāϰāĻŋāĻļā§āϰāĻŽā§‡āϰ āĻĒāϰ, ThorVG āϭ⧇āĻ•ā§āϟāϰ āĻ—ā§āϰāĻžāĻĢāĻŋāĻ•ā§āϏ āϞāĻžāχāĻŦā§āϰ⧇āϰāĻŋāϰ 0.15, C++ (C++14 āĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ) āĻ āϞ⧇āĻ–āĻž āĻāĻŦāĻ‚ MIT āϞāĻžāχāϏ⧇āĻ¨ā§āϏ⧇āϰ āĻ…āϧ⧀āύ⧇ āĻŦāĻŋāϤāϰāĻŖ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇āĨ¤ āϞāĻžāχāĻŦā§āϰ⧇āϰāĻŋāϟāĻŋ āĻĒā§āϰāĻœā§‡āĻ•ā§āĻŸā§‡ āϭ⧇āĻ•ā§āϟāϰ āĻ—ā§āϰāĻžāĻĢāĻŋāĻ•ā§āϏ āϰ⧇āĻ¨ā§āĻĄāĻžāϰ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻšāϝāĻŧ āϟāĻŋāĻœā§‡āύ āĻ“āĻāϏ, āĻ—āĻĄā§‹āϟ āχāĻžā§āϜāĻŋāύ, āĻāϞāĻ­āĻŋāϜāĻŋāĻāϞ āĻāĻŦāĻ‚ āϖ⧇āϞ⧋āϝāĻŧāĻžāĻĄāĻŧ āĻĄāϟāϞāϟāĻŋ.

āĻĨāϰ āϭ⧇āĻ•ā§āϟāϰ āĻ—ā§āϰāĻžāĻĢāĻŋāĻ•ā§āϏ (ThorVG) āĻšāϞ āĻāĻ•āϟāĻŋ āϞāĻžāχāϟāĻ“āϝāĻŧ⧇āϟ āĻāĻŦāĻ‚ āĻĒā§‹āĻ°ā§āĻŸā§‡āĻŦāϞ āĻ“āĻĒ⧇āύ āϏ⧋āĻ°ā§āϏ āϞāĻžāχāĻŦā§āϰ⧇āϰāĻŋ āϝāĻž āϭ⧇āĻ•ā§āϟāϰ āϏāĻŋāύ āĻāĻŦāĻ‚ āĻ…ā§āϝāĻžāύāĻŋāĻŽā§‡āĻļāύ, āĻĢāĻ°ā§āĻŽā§āϝāĻžāϟ āϏāĻš āϰ⧇āĻ¨ā§āĻĄāĻžāϰ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻĄāĻŋāϜāĻžāχāύ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇ āĻāϏāĻ­āĻŋāϜāĻŋ āϟāĻŋāύāĻŋ 1.2, Lottie āĻāĻŦāĻ‚ āύ⧇āϟāĻŋāĻ­ TVG āĻĢāϰāĻŽā§āϝāĻžāϟ (SVG, āĻāϰ āϏāĻžāĻĨ⧇ āϏāĻ‚āϕ⧁āϚāĻŋāϤ āĻāϞāĻœā§‡āĻĄāĻžāĻŦā§āϞ⧁).

āĻĒāĻžāĻ āĻžāĻ—āĻžāϰ āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇ āϏ⧁āĻŦāĻŋāϧāĻžāϜāύāĻ• API āϭ⧇āĻ•ā§āϟāϰ āĻ—ā§āϰāĻžāĻĢāĻŋāĻ•ā§āϏ āφāĻŽāĻĻāĻžāύāĻŋ, āϤ⧈āϰāĻŋ āĻāĻŦāĻ‚ āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ⧇āϰ āϜāĻ¨ā§āϝ, āϏ⧇āχāϏāĻžāĻĨ⧇ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āĻ—ā§āϰāĻžāĻĢāĻŋāĻ• āĻĢāĻ°ā§āĻŽā§āϝāĻžāĻŸā§‡ āϰāĻĒā§āϤāĻžāύāĻŋ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ, āϝāĻž āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āϏāĻĢā§āϟāĻ“āϝāĻŧā§āϝāĻžāϰ āĻĒā§āĻ˛ā§āϝāĻžāϟāĻĢāĻ°ā§āĻŽā§‡ āĻāĻŦāĻ‚ āĻ—ā§āϰāĻžāĻĢāĻŋāĻ• āĻŦāĻŋāώāϝāĻŧāĻŦāĻ¸ā§āϤ⧁ āĻ­āĻŋāĻœā§āϝ⧁āϝāĻŧāĻžāϞāĻžāχāϜ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύāϗ⧁āϞāĻŋāϤ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ⧇āϰ āϜāĻ¨ā§āϝ āĻāϟāĻŋāϕ⧇ āϏāĻ°ā§āĻŦāϜāύ⧀āύ āĻ•āϰ⧇ āϤ⧋āϞ⧇:

# "Example.h" āύāĻžāĻŽāĻ¸ā§āĻĨāĻžāύ std āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻ…āĻ¨ā§āϤāĻ°ā§āϭ⧁āĻ•ā§āϤ āĻ•āϰ⧁āύ; void exportGif() { āĻ…āĻŸā§‹ āĻ…ā§āϝāĻžāύāĻŋāĻŽā§‡āĻļāύ = āϟāĻŋāĻ­āĻŋāϜāĻŋ::āĻ…ā§āϝāĻžāύāĻŋāĻŽā§‡āĻļāύ::āĻœā§‡āύ(); āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧ āĻ›āĻŦāĻŋ = āĻ…ā§āϝāĻžāύāĻŋāĻŽā§‡āĻļāύ->āĻ›āĻŦāĻŋ(); āϝāĻĻāĻŋ (!tvgexam::verify(picture->load(EXAMPLE_DIR"/lottie/walker.json"))) āĻĢāĻŋāϰ⧇ āφāϏ⧇; āĻ›āĻŦāĻŋ->āφāĻ•āĻžāϰ (800, 800); āĻ…āĻŸā§‹ āϏ⧇āĻ­āĻžāϰ = āϟāĻŋāĻ­āĻŋāϜāĻŋ::āϏ⧇āĻ­āĻžāϰ::āĻœā§‡āύ(); āϝāĻĻāĻŋ (!tvgexam::verify(saver->save(std::move(animation), "./test.gif"))) āĻĢ⧇āϰāϤ; āϏ⧇āĻ­āĻžāϰ->āϏāĻŋāĻ™ā§āĻ•(); cout << "āϏāĻĢāϞāĻ­āĻžāĻŦ⧇ test.gif āĻ āϰāĻĒā§āϤāĻžāύāĻŋ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇āĨ¤" <<endl; } int main(int argc, char **argv) { if (tvgexam::verify(tvg::Initializer::init(0))) { exportGif(); āϟāĻŋāĻ­āĻŋāϜāĻŋ::āχāύāĻŋāĻļāĻŋāϝāĻŧāĻžāϞāĻžāχāϜāĻžāϰ::āϟāĻžāĻ°ā§āĻŽ(); } āϰāĻŋāϟāĻžāĻ°ā§āύ 0; }

āϞāĻžāχāĻŦā§āϰ⧇āϰāĻŋāϟāĻŋ lottie2gif, svg2png āĻāĻŦāĻ‚ svg2tvg āχāωāϟāĻŋāϞāĻŋāϟāĻŋāϗ⧁āϞāĻŋāϰ āϏāĻžāĻĨ⧇āĻ“ āφāϏ⧇⧎

āύāϤ⧁āύ āϏāĻ‚āĻ¸ā§āĻ•āϰāϪ⧇ āĻŦ⧇āĻļ āĻ•āϝāĻŧ⧇āĻ•āϟāĻŋ āωāĻ˛ā§āϞ⧇āĻ–āϝ⧋āĻ—ā§āϝ āωāĻ¨ā§āύāϤāĻŋ āϰāϝāĻŧ⧇āϛ⧇:

  • āωāĻ˛ā§āϞ⧇āĻ–āϝ⧋āĻ—ā§āϝāĻ­āĻžāĻŦ⧇ āωāĻ¨ā§āύāϤ āĻ•āĻ°ā§āĻŽāĻ•ā§āώāĻŽāϤāĻž, āĻ•āĻžāĻ°ā§āϝāĻ•āĻžāϰāĻŋāϤāĻž āĻāĻŦāĻ‚ WebGPU āχāĻžā§āϜāĻŋāύ⧇āϰ āĻ¸ā§āĻĨāĻžāϝāĻŧāĻŋāĻ¤ā§āĻŦ;
  • āĻ¸ā§āĻŸā§āϰ⧋āĻ• āϰ⧇āĻ¨ā§āĻĄāĻžāϰāĻŋāĻ‚ āĻ•āĻ°ā§āĻŽāĻ•ā§āώāĻŽāϤāĻž āĻĒā§āϰāĻžāϝāĻŧ āϤāĻŋāύāϗ⧁āĻŖ āĻŦ⧃āĻĻā§āϧāĻŋ;
  • āĻŽāĻžāĻ¸ā§āĻ•āĻŋāĻ‚ āĻāĻŦāĻ‚ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āĻ“āĻ­āĻžāϰāϞ⧇ āĻĒāĻĻā§āϧāϤāĻŋāϰ āωāĻ¨ā§āύāϤ āĻ•āĻ°ā§āĻŽāĻ•ā§āώāĻŽāϤāĻž;
  • āωāĻ˛ā§āϞ⧇āĻ–āϝ⧋āĻ—ā§āϝāĻ­āĻžāĻŦ⧇ GPU āĻŽā§‡āĻŽāϰāĻŋ āϞ⧋āĻĄ āĻšā§āϰāĻžāϏ;
  • āĻ•ā§āϰāĻĒ āφāωāϟāϞāĻžāχāύ āĻāĻŦāĻ‚ āĻĒāĻ°ā§āĻĻāĻžāϰ āĻĻ⧃āĻļā§āϝāĻŽāĻžāύ āĻāϞāĻžāĻ•āĻž āĻĒāϰāĻŋāϚāĻžāϞāύāĻžāϰ āϜāĻ¨ā§āϝ āĻ…āϤāĻŋāϰāĻŋāĻ•ā§āϤ āϏāĻŽāĻ°ā§āĻĨāύ;
  • Lottie āĻ…ā§āϝāĻžāύāĻŋāĻŽā§‡āĻļāύ āĻŦāĻžāĻ¸ā§āϤāĻŦāĻžāϝāĻŧāύ āωāĻ˛ā§āϞ⧇āĻ–āϝ⧋āĻ—ā§āϝāĻ­āĻžāĻŦ⧇ āωāĻ¨ā§āύāϤ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇;
  • ThorVG-āϤ⧇ āϏāĻŦāĻšā§‡āϝāĻŧ⧇ āĻŦāĻĄāĻŧ āϏāĻ‚āϝ⧋āϜāύ āĻšāϞ Lottie āĻ…ā§āϝāĻžāύāĻŋāĻŽā§‡āĻļāύ⧇āϰ āĻ¸ā§āϤāϰāϗ⧁āϞāĻŋāϰ āϜāĻ¨ā§āϝ āϏāĻŽāĻ°ā§āĻĨāύ;
  • Lottie āĻ…ā§āϝāĻžāύāĻŋāĻŽā§‡āĻļāύ⧇ āχāĻ¨ā§āϟāĻžāϰ⧇āĻ•ā§āϟāĻŋāĻ­ āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝ āϝ⧋āĻ— āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇;
  • āωāĻ¨ā§āύāϤ āĻŸā§‡āĻ•ā§āϏāϟ āĻ…ā§āϝāĻžāύāĻŋāĻŽā§‡āĻļāύ;
  • āĻ…āĻĢāϏ⧇āϟ āϏāĻš āĻŦ⧇āϜāĻŋāϝāĻŧāĻžāϰ āĻ•āĻžāĻ°ā§āϭ⧇āϰ āύāĻŋāϝāĻŧāĻ¨ā§āĻ¤ā§āϰāĻŖ āĻĒāϝāĻŧ⧇āĻ¨ā§āϟ āĻ—āĻŖāύāĻžāϰ āϜāĻ¨ā§āϝ āωāĻ¨ā§āύāϤ āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽ;
  • āĻĻ⧃āĻļā§āϝ⧇ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āĻĒā§‹āĻ¸ā§āϟ-āĻĒā§āϰāϏ⧇āϏāĻŋāĻ‚ āĻĒā§āϰāĻ­āĻžāĻŦ āĻĒā§āϰāϝāĻŧā§‹āĻ— āĻ•āϰāĻžāϰ āĻ•ā§āώāĻŽāϤāĻž āϝ⧋āĻ— āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇;
  • āϝ⧌āĻ—āĻŋāĻ• āĻŸā§‡āĻ•ā§āϏāϟ āĻ—ā§āϞāĻŋāĻĢ⧇āϰ āϜāĻ¨ā§āϝ āϏāĻŽāĻ°ā§āĻĨāύ āϝ⧋āĻ— āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇;
  • OpenGL āχāĻžā§āϜāĻŋāύ⧇ āĻ•āĻŽā§āĻĒā§‹āϜāĻŋāĻļāύ āĻ•āĻ°ā§āĻŽāĻ•ā§āώāĻŽāϤāĻž āωāĻ¨ā§āύāϤ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇;
  • āύāϤ⧁āύ āĻ¸ā§āĻĨāĻŋāϤāĻŋāĻļā§€āϞ āĻāĻŦāĻ‚ āĻĒāϰ⧀āĻ•ā§āώāĻžāĻŽā§‚āϞāĻ• API āϝ⧋āĻ— āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇;
  • āĻ…āύ⧇āĻ• āĻŦāĻžāĻ— āϏāĻ‚āĻļā§‹āϧāύ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇.

āωāĻ¤ā§āϏ: linux.org.ru

DDoS āϏ⧁āϰāĻ•ā§āώāĻž, VPS VDS āϏāĻžāĻ°ā§āĻ­āĻžāϰ āϏāĻš āϏāĻžāχāϟāϗ⧁āϞāĻŋāϰ āϜāĻ¨ā§āϝ āύāĻŋāĻ°ā§āĻ­āϰāϝ⧋āĻ—ā§āϝ āĻšā§‹āĻ¸ā§āϟāĻŋāĻ‚ āĻ•āĻŋāύ⧁āύ đŸ”Ĩ DDoS āϏ⧁āϰāĻ•ā§āώāĻž āϏāĻš āύāĻŋāĻ°ā§āĻ­āϰāϝ⧋āĻ—ā§āϝ āĻ“āϝāĻŧ⧇āĻŦāϏāĻžāχāϟ āĻšā§‹āĻ¸ā§āϟāĻŋāĻ‚ āĻ•āĻŋāύ⧁āύ, VPS VDS āϏāĻžāĻ°ā§āĻ­āĻžāϰ | ProHoster