FTXUI 7.0.0









13. mai, ĂŒle aasta kestnud arenduse jĂ€rel, ilmus 7.0.0 platvormidevaheline teek FTXUI, mis on mĂ”eldud C++ rakenduste loomiseks, millel on tekstipĂ”hine liides ja mis on jaotatud MIT litsentsi alusel.

Raamatukogu vÔimalused:

  • funktsionaalne stiil, sarnaselt React JS-iga;
  • lihtne ja elegantne stiil (autori arvates);
  • klaviatuuri ja hiire sĂŒndmuste töötlemine;
  • UTF8 ja Unicode tugi;
  • True Color tugi;
  • kursori stiili muutmise tugi;
  • animatsioonide tugi;
  • joonistamise toimetamine;
  • ilma kolmandate osapoolte sĂ”ltuvusteta;
  • platvormideĂŒlene (Linux/MacOS, WebAssembly, Windows).
Muudatused

Dokumentatsioon

  • Dokumentatsiooni genereerimine Doxygeniga on parandatud.
  • Lisatud oma teema Doxygenile.
  • Dokumentatsiooni jagamine mitmeks lehekĂŒljeks.

Kompileerimine

  • Lisatud skript tools$ amalgamate.py ‘amalgameeritud’ lĂ€htekoodi genereerimiseks: ftxui.cpp (534 KB), ftxui.hpp (110 KB) ja ftxui_all.hpp (643 KB).
  • Lisatud C++20 moodulite tugi.
  • Lisatud Mesoni tugi.
  • Eemaldatud sĂ”ltuvus pthread'ist.
  • Parandatud Bazeli tugi.
  • Teised tĂ€iustused.

TagasikÀigu muudatused

  • Nimede muutmine:
    • Pixel muutus `Cell'iks
    • Image muutus Surface'iks
    • ScreenInteractive muutus App'iks
    • meetod PixelAt muutus CellAt'iks
      Tagamaks ĂŒhilduvust, on ette nĂ€htud alias'id ja pealkirjad, et mitte rikkuda olemasolevat koodi.
  • Kasutatakse std::string_view'i, kus see on vĂ”imalik, selle asemel et const std::string& kasutada. See tagab parema ĂŒhilduvuse stringi litteratega ning vĂ”imaldab vĂ€ltida tarbetuid kopeerimisi.

Komponendid

  • Signaali pĂŒĂŒdmise sĂŒsteem on tĂ€iustatud ja moderniseeritud, kasutades POSIX sigaction'i signaalide usaldusvÀÀrseks peitmiseks. Tagatud on topelt terminali taastamise kaitse programmi vĂ€ljumisel, kasutades aatomset jĂ€lgimist algse oleku osas. Lisatud on tĂ€iendavad POSIX signaalide (SIGBUS, SIGSYS kui rikke signaalid, ja SIGQUIT, SIGHUP kui viivitatud lĂ”petamise signaalid) tugi ja parandatud asĂŒnkroonsete signaalide turvaprobleemid.
  • Kohandatud Rendereri kasutamisel on parandatud kursori kuvamise probleem sisemistes konteinerites.
  • Parandatud kursori positsioneerimine sisestusvĂ€ljadele ja kerimise stabiilsus.
  • Parandatud mitte-ASCII sĂŒmbolite tugi paroolisisestusreĆŸiimis.
  • Eemaldatud kursori vilkumine App'is ĂŒmber joonistamisel.
  • Sisendi töötlemine POSIX torude abil
    • Lubab FTXUI rakendustel lugeda andmeid stdin'ist (toru kasutamisel) ning samal ajal vastu vĂ”tta sisendit klaviatuurilt terminalis.
    • Kasutatakse vaikevalikuna.
    • Seda saab vĂ€lja lĂŒlitada, kasutades App::HandlePipedInput(false).
    • Ainult Linuxis ja macOS'is saadaval.
  • Palju vigu on parandatud.

DOM

  • Toetab reavahet (n) text() ja vtext() sees.
  • NĂŒĂŒd edastab dbox fookuse ĂŒlemistelt kihtidelt alumistele, mis vastab visuaalsele kuvamisele.
  • Lisatud tabeli piirdekaunistuste tugi. See vĂ”imaldab nĂ€iteks tabeli piiride vĂ€rvi muutmist.
  • Parandatud tĂ€isarvude ĂŒlevoolu viga ComputeShrinkHardis.
  • Lisatud spetsialiseerimine vbox/hbox/dbox, et vĂ”imaldada Element konteineri kasutamine sisendina.
  • Gridboxis on parandatud alamelementide lisamist.
  • Parandatud gauge'i kuvamine.
  • Lisatud parameetriga variandid flex dekoratoreid parameetriga _factor. Need vĂ”imaldavad mÀÀrata kasutaja mÀÀratud pikendamise vĂ”i kokkusurumise koefitsiendid:
    flex_factor(grow, shrink), flex_grow_factor(grow), flex_shrink_factor(shrink), samuti variandid x ja y telgede jaoks.

Kujutise optimeerimine.

  • Kursori liikumise optimeerimine Screen::ResetPosition meetodis (ilma ekraani puhastamiseta) ĂŒhe parameetrilise CSI kĂ€susĂŒsteemina, et nihutada kursori ĂŒles (x1B[<n>A) asemel, et saata ĂŒks x1B[1A iga rea jaoks. See vĂ€hendas escape-mĂ€rkide arvu kaadris ĂŒmberjoonistamise ajal (nĂ€iteks ~197 -> 6 bitti 50 reaga ekraani jaoks, ~33-kordne vĂ€henemine).
  • Optimeeritud on Screen::ToString(), Color::Print() ja string_width(), mis kiirus:
    • PĂ”hirenderdus ~27% kiiremini.
    • Teksti renderdamine ~27% kiiremini.
    • Stiilide renderdamine ~38% kiiremini.

Allikas: linux.org.ru

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster