FTXUI 7.0.0









Më 13 maj, pas më shumë se një viti zhvillim, u lëshua versioni 7.0.0 i bibliotekës shumëplatformatike FTXUI, e destinuar për krijimin e aplikacioneve C++ me ndërfaqe tekstuale dhe e shpërndarë nën licencën MIT.

Mundësitë e bibliotekës:

  • stili funksional, ngjashĂ«m me React JS;
  • stili i thjeshtĂ« dhe elegant (sipasa autorit tĂ« bibliotekĂ«s);
  • trajtim i ngjarjeve tĂ« tastierĂ«s dhe "njĂ« miu";
  • mbĂ«shtetje pĂ«r UTF8 dhe Unicode;
  • mbĂ«shtetje pĂ«r True Color;
  • mbĂ«shtetje pĂ«r ndryshimin e stilit tĂ« kursorit;
  • mbĂ«shtetje pĂ«r animacione;
  • mbĂ«shtetje pĂ«r vizatimin;
  • mungesĂ« varĂ«sish nga palĂ«t e treta;
  • shumĂ«platformatĂ«si (Linux/MacOS, WebAssembly, Windows).
Ndryshimet

Dokumentacioni

  • U drejtua gjenerimi i dokumentacionit me Doxygen.
  • U shtua njĂ« temĂ« e vet me Doxygen.
  • Ndara dokumentacionin nĂ« disa faqe.

Kompilimi

  • U shtua skripta tools$ amalgamate.py pĂ«r gjenerimin e kodit burimor "amalgam": ftxui.cpp (534 KB), ftxui.hpp (110 KB) dhe ftxui_all.hpp (643 KB).
  • U shtua mbĂ«shtetje pĂ«r module C++20.
  • U shtua mbĂ«shtetje pĂ«r Meson.
  • U hoq varĂ«sia nga pthread.
  • U pĂ«rmirĂ«sua mbĂ«shtetja pĂ«r Bazel.
  • PĂ«rmirĂ«sime tĂ« tjera.

Ndryshime përkatësie me versionet e mëparshme

  • Rinovimi i emrave:
    • Pixel nĂ« `Cell
    • Image nĂ« Surface
    • ScreenInteractive nĂ« App
    • metoda PixelAt nĂ« CellAt
      Për të siguruar përputhshmëri, janë parashikuar emra dhe tituj për të mos penguar funksionimin e kodit ekzistues.
  • PĂ«rdorimi i std::string_view nĂ« vend tĂ« const std::string& aty ku Ă«shtĂ« e mundur. Kjo ofron pĂ«rputhshmĂ«ri mĂ« tĂ« mirĂ« me literalet e stringjeve dhe lejon shmangien e kopjimeve tĂ« panevojshme.

Komponentët

  • Sistemi i kapjes sĂ« sinjaleve Ă«shtĂ« pĂ«rmirĂ«suar dhe modernizuar duke pĂ«rdorur POSIX sigaction pĂ«r maskimin e sigurt tĂ« sinjaleve. U siguruar mbrojtja nga rikthimi i dyfishtĂ« tĂ« terminalit kur del nga programi me gjurmim atomik tĂ« gjendjes origjinale. U shtua mbĂ«shtetje pĂ«r sinjale tĂ« tjera POSIX (SIGBUS, SIGSYS si sinjale dĂ«shtimi, dhe SIGQUIT, SIGHUP si sinjale tĂ« mbylljes sĂ« vonuar) dhe u rregulluan probleme tĂ« sigurisĂ« nga sinjalet asinkrone.
  • U rregullua problemi me shfaqjen e kursorit kur pĂ«rdoren Renderer tĂ« personalizuar nĂ« konteinerĂ« tĂ« pĂ«rshtatur.
  • U rregullua pozicionimi i kursorit nĂ« fushat e hyrjes dhe stabiliteti i skrollimit.
  • U rregullua mbĂ«shtetja pĂ«r karaktere jo ASCII nĂ« modin e hyrjes sĂ« fjalĂ«kalimit.
  • U eleminua dridhja e kursorit gjatĂ« riparimit nĂ« App.
  • Trajtimi i hyrjes duke pĂ«rdorur POSIX pipes
    • Lejon aplikacionet FTXUI tĂ« lexojnĂ« tĂ« dhĂ«nat nga stdin (duke pĂ«rdorur pipe) dhe pĂ«r kĂ«tĂ« arsye tĂ« vazhdojnĂ« tĂ« pranojnĂ« input nga tastiera nĂ« terminal.
    • PĂ«rdoret si parazgjedhje.
    • Mund tĂ« çaktivizohet duke pĂ«rdorur App::HandlePipedInput(false).
    • E disponueshme vetĂ«m nĂ« Linux dhe macOS.
  • JanĂ« rregulluar shumĂ« gabime.

DOM

  • MbĂ«shtetje pĂ«r ndĂ«rrimin e linjave (n) brenda text() dhe vtext().
  • Tani dbox transferon fokusin nga nivelet e sipĂ«rme te ato tĂ« poshtme, nĂ« pĂ«rputhje me shfaqjen vizuale.
  • Shtuar mbĂ«shtetje pĂ«r dekoratorĂ«t e kufijve tĂ« tabelave. Kjo lejon, pĂ«r shembull, tĂ« ndryshoni ngjyrĂ«n e kufijve tĂ« tabelĂ«s.
  • Rregulluar gabimi i mbushjes sĂ« numrave nĂ« ComputeShrinkHard.
  • Shtuar specializimi nĂ« vbox/hbox/dbox pĂ«r mundĂ«sinĂ« e pĂ«rdorimit tĂ« kontejnerit Element si input.
  • NĂ« gridbox Ă«shtĂ« rregulluar shtimi i elementeve fĂ«mijĂ«.
  • Rregulluar shfaqja e gauge.
  • Shtuar variante parametrike tĂ« dekoratorĂ«ve flex me parametrin _factor. KĂ«to lejojnĂ« pĂ«rcaktimin e koeficientĂ«ve personalizuar pĂ«r shtrirje ose kontraktim:
    flex_factor(grow, shrink), flex_grow_factor(grow), flex_shrink_factor(shrink), si dhe variante për boshtet x dhe y.

Optimizime të renderimit

  • Optimizimi i lĂ«vizjes sĂ« kursorit mbi rreshta nĂ« metodĂ«n Screen::ResetPosition (pa pastrimin e ekranit) nĂ« njĂ« set komande parametrike CSI pĂ«r lĂ«vizjen e kursorit lart (x1B[<n>A) nĂ« vend tĂ« nxjerrjes njĂ« x1B[1A pĂ«r çdo rresht. Kjo redukton numrin e simboleve tĂ« escaping pĂ«r kornizĂ« gjatĂ« ripĂ«rllogaritjes (p.sh., ~197 -> 6 byte pĂ«r njĂ« ekran me 50 rreshta, reduktim ~33-fish).
  • Optimizuar Screen::ToString(), Color::Print() dhe string_width(), qĂ« pĂ«rshpejton:
    • Renderimi bazĂ« nĂ« ~27%.
    • Renderimi i tekstit nĂ« ~27%.
    • Renderimi i stileve nĂ« ~38%.

Burimi: linux.org.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster