Qt 6:n toiminnallisuuden tiekartta julkaistu

Lars Knoll, KHTML-moottorin luoja, Qt-projektin projektipäällikkö ja Qt-yhtiön tekninen johtaja, kerroin suunnitelmista luoda seuraava merkittävä Qt-kehyksen haara. Kun Qt 5.14 -haaran toiminnallisuus on valmis, kehitys keskittyy valmistautumaan Qt 6:n julkaisuun, jonka odotetaan tapahtuvan vuoden 2020 lopussa.

Qt 6:ta kehitetään siten, että varmistetaan yhteensopivuus Qt 5:n kanssa, mutta yksittäisiä ongelmia saattaa ilmetä, koska suunniteltuja arkkitehtonisia muutoksia ja siivouksia ei voida toteuttaa menettämättä tiettyä yhteensopivuustasoa. Siirtymän tasoittamiseksi jotkin Qt 6:n ominaisuudet suunnitellaan sisällytettäväksi supistetussa muodossa osana Qt 5.14- ja Qt 5.15 LTS -julkaisuja. Toolkit valmistetaan myös yksinkertaistamaan siirtymistä Qt 6:een.

Seuraavan merkittävän toimialan päätavoitteita ovat toiminnallisuuden saattaminen vuoden 2020 vaatimusten mukaiseksi, koodikannan puhdistaminen ja projektien ylläpidon yksinkertaistaminen. Odotetut muutokset:

  • QML:n merkittävä modernisointi:
    • Vahva kirjoitustuki.
    • Kyky kääntää QML C++ -esitykseen ja konekoodiin.
    • Täysi JavaScript-tuen tekeminen vaihtoehdoksi (täysin varustetun JavaScript-moottorin käyttäminen vaatii paljon resursseja, mikä estää QML:n käytön laitteissa, kuten mikro-ohjaimissa).
    • QML:n versioinnin kieltäminen.
    • QObjectissa ja QML:ssä kopioitujen tietorakenteiden yhdistäminen (vähentää muistin kulutusta ja nopeuttaa käynnistystä).
    • Siirtyminen pois ajonaikaisesta tietorakenteiden luomisesta käännösaikaisen luomisen hyväksi.
    • Sisäisten komponenttien piilottaminen yksityisten menetelmien ja ominaisuuksien avulla.
    • Parannettu integrointi kehitystyökalujen kanssa uudelleenfaktorointiin ja käännösajan virheiden diagnosointiin;
  • Lisätään uusi abstrakti kerros, Rendering Hardware Interface (RHI), joka mahdollistaa erilaisten grafiikkasovellusliittymien saumattoman käytön, mukaan lukien OpenGL, Vulkan, Metal ja Direct 3D (aiemmin Qt oli vain OpenGL). Kaikki olemassa oleva renderöintiinfrastruktuuri muunnetaan käyttämään RHI:tä, mukaan lukien QPainter, Qt Quick Scenegraph ja Qt3D. Suunnittelemme myös Qt Shader Tools -moduulin lisäämistä tukemaan erilaisia ​​Shader-kehityskieliä ja tarjoamaan varjostajien ristiin käännöksiä sekä rakennusvaiheessa että ajon aikana;
  • Yhtenäisen API:n valmistelu 2D- ja 3D-grafiikkaelementtejä yhdistävien käyttöliittymien luomiseen. Uuden API:n avulla voit määrittää 3D-rajapinnan elementtejä QML:n avulla ilman UIP-muotoa. Uusi käyttöliittymä 3D-sisällön integroimiseksi Qt Quickin kanssa aikoo ratkaista ongelmia, kuten QML:n integroimisen Qt 3D:n tai 3D Studion sisällön kanssa sekä kyvyttömyys synkronoida animaatioita ja kehystason muunnoksia 2D:n ja 3D:n välillä. Yhdistetty sisäkkäinen 2D- ja 3D-renderöinti toteutetaan uudella renderöintimoottorilla. Esikatselua uudesta Qt Quickista 3D-tuella odotetaan Qt 5.14 -julkaisussa;
  • Työkalujen lisääminen grafiikkaan liittyvien resurssien käsittelyyn käännöshetkellä, kuten PNG-kuvien muuntaminen pakatuiksi tekstuureiksi tai varjostimien ja verkkojen muuntaminen optimoituihin binäärimuotoihin tietyille laitteistoille;
  • Sisällytetään yhtenäinen moottori teemoille ja tyyleille, jonka avulla voit saavuttaa Qt-widgeteihin ja Qt Quickiin perustuvien sovellusten ulkonäön, jotka ovat kotoisin eri mobiili- ja työpöytäalustoista;
  • Työkalujen yhdistäminen käyttöliittymän luomiseen. Kahden erillisen tuotteen toimintojen päällekkäisyyden ja toimitusten keskeytymisen välttämiseksi Qt 3D Studion toiminnallisuuden odotetaan integroitavan Qt Design Studioon, jonka monet alijärjestelmät ja liitännäisten liitännäiskehys on rakennettu samalle koodipohjalle kuin Qt Creator.
    Qt Design Studio aikoo myös tarjota korkealaatuista integraatiota sisällöntuotantopaketteihin, kuten Photoshop, Sketch, Illustrator, Maya ja 3D Max. Yhtenäisen kehitystyökalupaketin tärkeimmät tuetut kielet ovat C++, QML ja Python. Yhdistäminen tarkoittaa myös mahdollisuutta käyttää Qt Creatorin käyttöliittymäsuunnittelutyökaluja ja tarjota käyttöliittymäsuunnittelijoille ominaisuuksia kehittäjätyökalujen avulla, esimerkiksi projektin kokoamista tai sovelluksen testaamista laitteella;

  • Rakennusjärjestelmänä päätettiin käyttää CMakea QMaken sijaan. Tuki sovellusten rakentamiseen QMakella säilyy, mutta itse Qt rakennetaan CMakella. CMake valittiin, koska tämä työkalupakki on laajalti käytössä C++-projektien kehittäjien keskuudessa ja sitä tuetaan monissa integroiduissa kehitysympäristöissä. Qbs-kokoonpanojärjestelmän kehittäminen, joka väitti korvaavan QMaken, lopetettu;
  • Siirtyminen C++17-standardiin kehityksen aikana (aiemmin käytettiin C++98). Qt 6 aikoo ottaa käyttöön tuen monille nykyaikaisille C++-ominaisuuksille, mutta menettämättä taaksepäin yhteensopivuutta aiempien standardien mukaisen koodin kanssa.
  • Mahdollisuus käyttää C++:sta joitain QML:lle ja Qt Quickille tarjotuista toiminnoista. Erityisesti esitellään uusi kiinteistöjärjestelmä QObjectille ja vastaaville luokille. Sidosten kanssa työskentelevä moottori integroidaan QML:stä Qt-ytimeen, mikä vähentää sidosten kuormitusta ja muistinkulutusta ja tekee ne kaikkien Qt:n osien käytettävissä, ei vain Qt Quickin;
  • Jatkettiin työtä lisäkielten, kuten Pythonin ja WebAssemblyn, tuen laajentamiseksi;
  • Uudelleenjärjestely hajottamalla pienempiin osiin ja pienentämällä taustatuotteen kokoa. Kehittäjätyökalut ja mukautetut komponentit toimitetaan lisäosina, jotka jaetaan uuden luettelokaupan kautta. Myös kolmannen osapuolen kehittäjien Qt-lisäykset, sekä ilmaiset että maksulliset, hyväksytään jakeluun.

Lähde: opennet.ru

Lisää kommentti