ThorVG 0.15

เบซเบผเบฑเบ‡เบˆเบฒเบเบชเบฒเบกเป€เบ”เบทเบญเบ™เบ‚เบญเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบซเบ™เบฑเบ, 0.15 เบ‚เบญเบ‡เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบฎเบนเบšเบžเบฒเบš vector ThorVG, เบ‚เบฝเบ™เปƒเบ™ C ++ (เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ C ++ 14) เปเบฅเบฐเปเบˆเบเบขเบฒเบเบžเบฒเบเปƒเบ•เป‰เปƒเบšเบญเบฐเบ™เบธเบเบฒเบ” MIT, เป„เบ”เป‰เบ–เบทเบเบ›เปˆเบญเบเบญเบญเบเบกเบฒ. เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเบฐเปเบ”เบ‡เบฎเบนเบšเบžเบฒเบš vector เปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™เป€เบŠเบฑเปˆเบ™: Tizen OS, เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ Godot, LVGL เปเบฅเบฐเบœเบนเป‰เบ™ dotLottie.

เบเบฃเบฒเบšเบŸเบดเบเป€เบงเบšเป€เบ•เบต Thor (ThorVG) เป€เบ›เบฑเบ™เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ”เป‚เบญเป€เบžเบ™เบŠเบญเบ”เบ—เบตเปˆเบกเบตเบ™เป‰เบณเปœเบฑเบเป€เบšเบปเบฒ เปเบฅเบฐเปเบšเบšเป€เบ„เบทเปˆเบญเบ™เบ—เบตเปˆเบ—เบตเปˆเบญเบญเบเปเบšเบšเบกเบฒเป€เบžเบทเปˆเบญเบชเบฐเปเบ”เบ‡เบžเบฒเบšเบงเบดเบเป€เบ•เบต เปเบฅเบฐเบžเบฒเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบง, เบฅเบงเบกเบ—เบฑเบ‡เบฎเบนเบšเปเบšเบšเบ•เปˆเบฒเบ‡เป†. SVG Tiny 1.2, Lottie เปเบฅเบฐเบฎเบนเบšเปเบšเบš TVG เบžเบทเป‰เบ™เป€เบกเบทเบญเบ‡ (SVG, เบšเบตเบšเบญเบฑเบ”เบ”เป‰เบงเบ LZW).

เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบชเบฐเบซเบ™เบญเบ‡ APIs เบชเบฐเบ”เบงเบ เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เป€เบ‚เบปเป‰เบฒโ€‹, เบเบฒเบ™โ€‹เบชเป‰เบฒเบ‡โ€‹เปเบฅเบฐโ€‹เบเบฒเบ™โ€‹เบชเบฐโ€‹เปเบ”เบ‡โ€‹เบฎเบนเบšโ€‹เบžเบฒเบš vectorโ€‹, เป€เบŠเบฑเปˆเบ™โ€‹เบ”เบฝเบงโ€‹เบเบฑเบ™โ€‹เบเบฑเบšโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบชเบปเปˆเบ‡โ€‹เบญเบญเบโ€‹เปƒเบซเป‰โ€‹เป€เบ‚เบปเบฒโ€‹เป€เบˆเบปเป‰เบฒโ€‹เบฎเบนเบšโ€‹เปเบšเบšโ€‹เบเบฒโ€‹เบŸเบดเบโ€‹เบ•เปˆเบฒเบ‡เป†โ€‹, เบ—เบตเปˆโ€‹เป€เบฎเบฑเบ”โ€‹เปƒเบซเป‰โ€‹เบกเบฑเบ™โ€‹เป€เบ›เบฑเบ™โ€‹เบ—เบปเปˆเบงโ€‹เป„เบ›โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เปƒเบ™โ€‹เป€เบงโ€‹เบ—เบตโ€‹เบŠเบญเบšโ€‹เปเบงโ€‹เบ•เปˆเบฒเบ‡เป†โ€‹เปเบฅเบฐโ€‹เบ„เปเบฒโ€‹เบฎเป‰เบญเบ‡โ€‹เบชเบฐโ€‹เบซเบกเบฑเบโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เป€เบšเบดเปˆเบ‡โ€‹เป€เบ™เบทเป‰เบญโ€‹เปƒเบ™โ€‹เบฎเบนเบšโ€‹เบžเบฒเบšโ€‹:

#include "Example.h" เป‚เบ”เบเปƒเบŠเป‰ namespace std; void exportGif() { auto animation = tvg::Animation::gen(); auto picture = เบžเบฒเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบง->เบฎเบนเบš(); เบ–เป‰เบฒ (!tvgexam::verify(picture->load(EXAMPLE_DIR"/lottie/walker.json"))) เบเบฑเบšเบ„เบทเบ™; เบฎเบนเบš->เบ‚เบฐเปœเบฒเบ”(800, 800); auto saver = tvg::Saver::gen(); เบ–เป‰เบฒ (!tvgexam::verify(saver->save(std::move(animation), "./test.gif"))) เบเบฑเบšเบ„เบทเบ™; saver->sync(); cout << "เบชเบปเปˆเบ‡เบญเบญเบเป„เบ› test.gif เบชเบณเป€เบฅเบฑเบ”เปเบฅเป‰เบง." <<endl; } int main(int argc, char **argv) { if (tvgexam::verify(tvg::Initializer::init(0))) { exportGif(); tvg::Initializer::term(); } เบเบฑเบšเบ„เบทเบ™ 0; }

เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบเบฑเบ‡เบกเบฒเบžเป‰เบญเบกเบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เปƒเบŠเป‰ lottie2gif, svg2png เปเบฅเบฐ svg2tvg.

เบชเบฐเบšเบฑเบšเปƒเบซเบกเปˆเบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบˆเปเบฒเบ™เบงเบ™เบซเบ™เบถเปˆเบ‡:

  • เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบ, เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเปเบฅเบฐเบ„เบงเบฒเบกเบซเบกเบฑเป‰เบ™เบ„เบปเบ‡เบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ WebGPU;
  • เบ›เบฐเบกเบฒเบ™เบชเบฒเบกเป€เบ—เบปเปˆเบฒเบ‚เบญเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบœเบปเบ™เป€เบชเบฑเป‰เบ™เป€เบฅเบทเบญเบ”เบ•เบฑเบ™เปƒเบ™;
  • เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบซเบ™เป‰เบฒเบเบฒเบเปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เบŠเป‰เบญเบ™เบเบฑเบ™เบ•เปˆเบฒเบ‡เป†;
  • เบเบฒเบ™เป‚เบซเบผเบ”เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ GPU เบซเบผเบธเบ”เบฅเบปเบ‡เบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบ;
  • เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ•เบฑเบ”เป‚เบ„เบ‡เบฎเปˆเบฒเบ‡เปเบฅเบฐเบเบฒเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡เบžเบทเป‰เบ™เบ—เบตเปˆเป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™เบ‚เบญเบ‡เบซเบ™เป‰เบฒเบˆเป;
  • เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบžเบฒเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบง Lottie เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบ;
  • เบเบฒเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบ—เบตเปˆเปƒเบซเบเปˆเบ—เบตเปˆเบชเบธเบ”เบ‚เบญเบ‡ ThorVG เปเบกเปˆเบ™เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบŠเบฑเป‰เบ™เปƒเบ™เบžเบฒเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบง Lottie;
  • เป€เบžเบตเปˆเบกเบฅเบฑเบเบชเบฐเบ™เบฐเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบเบฑเบšเบžเบฒเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบง Lottie;
  • เบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเบ‚เปเป‰เบ„เบงเบฒเบก;
  • เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบฅเบฐเบšเบปเบšเบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบˆเบธเบ”เบ„เบงเบšเบ„เบธเบกเบ‚เบญเบ‡เป€เบชเบฑเป‰เบ™เป‚เบ„เป‰เบ‡ Bezier เบ”เป‰เบงเบเบเบฒเบ™เบŠเบปเบ”เป€เบŠเบตเบ;
  • เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบœเบปเบ™เบเบฐเบ—เบปเบšเบซเบผเบฑเบ‡เบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เบ•เปˆเบฒเบ‡เป†เปƒเบซเป‰เบเบฑเบš scene;
  • เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบš glyphs เบ‚เปเป‰เบ„เบงเบฒเบกเบ›เบฐเบชเบปเบก;
  • เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบญเบปเบ‡เบ›เบฐเบเบญเบšเป„เบ”เป‰เบ–เบทเบเบ›เบฑเบšเบ›เบธเบ‡เปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ OpenGL;
  • เป€เบžเบตเปˆเบก APIs เบ„เบปเบ‡เบ—เบตเปˆเปเบฅเบฐเบ—เบปเบ”เบฅเบญเบ‡เปƒเบซเบกเปˆ;
  • เปเบเป‰โ€‹เป„เบ‚โ€‹เบ‚เปเป‰โ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เบซเบผเบฒเบโ€‹.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: linux.org.ru

เบŠเบทเป‰เป‚เบฎเบ”เบ•เบดเป‰เบ‡เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบชเปเบฒเบฅเบฑเบšเป€เบงเบฑเบšเป„เบŠเบ—เปŒเบ—เบตเปˆเบกเบตเบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡ DDoS, เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ VPS VDS ๐Ÿ”ฅ เบŠเบทเป‰เป€เบงเบฑเบšเป„เบŠเบ—เปŒเป‚เบฎเบ”เบ•เบดเป‰เบ‡เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบ”เป‰เบงเบเบเบฒเบ™เบ›เป‰เบญเบ‡เบเบฑเบ™ DDoS, เป€เบŠเบตเบšเป€เบงเบต VPS VDS | ProHoster