GTK 3.96, GTK 4 эксперименттік шығарылымы, жарияланған

10 айдан кейін өткеннің сынақ шығарылымы ұсынылды GTK 3.96, GTK 4-тің алдағы тұрақты шығарылымының жаңа эксперименттік шығарылымы. GTK 4 тармағы қолданбаларды әзірлеушілерге бірнеше жыл бойы қорықпай пайдалануға болатын тұрақты және қолдау көрсетілетін API ұсынуға тырысатын жаңа әзірлеу процесінің бөлігі ретінде әзірленуде. келесі GTK филиалында API өзгертуіне байланысты әр алты ай сайын қосымшаны қайта жазу қажет. GTK 4 толық тұрақтандырылғанша, пайдаланушыларға ұсынылатын қолданбаларды филиал арқылы құруды жалғастыру ұсынылады. GTK 3.24.

басты өзгерту GTK 3.96 нұсқасында:

  • API ішінде GSK OpenGL және Vulkan арқылы графикалық көріністерді көрсетуді қамтамасыз ететін (GTK Scene Kit) қателерді жүктеуге және көрсетуге мүмкіндік беретін gtk4-node-editor жаңа жөндеу құралының арқасында анықтау оңайырақ болатын қателермен жұмыс жасалды. рендеринг түйінін серияланған форматта (тексеру режимінде GTK инспекторында сақтауға болады), сондай-ақ әртүрлі серверлерді пайдалану кезінде көрсету нәтижелерін салыстыру;

    GTK 3.96, GTK 4 эксперименттік шығарылымы, жарияланған

  • 3D түрлендіру мүмкіндіктері айналмалы текше сияқты анимация әсерлерін жасауға мүмкіндік беретін деңгейге дейін жеткізілді;

    GTK 3.96, GTK 4 эксперименттік шығарылымы, жарияланған

  • Толығымен қайта жазылған Broadway GDK сервері веб-шолғыш терезесінде GTK кітапханасының шығысын көрсетуге арналған. Бродвейдің ескі іске асыруы GTK 4-те ұсынылған көрсету әдістеріне сәйкес келмеді (буферге шығарудың орнына ол енді рендерлік түйіндерге негізделген модельді пайдаланады, мұнда шығыс жоғары деңгейдегі операциялар ағашы түрінде тұрады, OpenGL және Vulkan көмегімен GPU тиімді өңделеді).
    Broadway жаңа опциясы интерфейсті браузерде көрсету үшін көрсету түйіндерін CSS мәнерлері бар DOM түйіндеріне түрлендіреді. Әрбір жаңа экран күйі қашықтағы клиентке жіберілетін деректердің өлшемін азайтатын алдыңғы күйге қатысты DOM ағашындағы өзгеріс ретінде өңделеді. 3D түрлендірулер мен графикалық әсерлер CSS түрлендіру қасиеті арқылы жүзеге асырылады;

  • GDK Wayland протоколын ескере отырып жасалған API интерфейстерін енгізуді жалғастыруда және X11 негізіндегі API интерфейстерін тазартады немесе оларды бөлек X11 серверіне жылжытады. Балалар беттері мен ғаламдық координаттарды пайдаланудан бас тарту жұмысында ілгерілеушілік бар. GDK_SURFACE_SUBSURFACE қолдауы GDK жүйесінен жойылды;
  • Ұсынылған бөлек GdkDrag және GdkDrop нысандарын қоса, Drag-and-Drop әрекеттерін орындаумен байланысты кодты рефакторинг жалғастырды;
  • Оқиғаларды өңдеу жеңілдетілді және енді тек енгізу үшін пайдаланылады. Қалған оқиғалар бөлек сигналдармен ауыстырылады, мысалы, шығыс оқиғаларының орнына «GdkSurface::render» сигналы ұсынылады, конфигурация оқиғаларының орнына - «GdkSurface:: size-changed», салыстыру оқиғаларының орнына - «GdkSurface: :mapped”, gdk_event_handler_set() орнына - "GdkSurface::event";
  • Wayland үшін GDK сервері GtkSettings параметрлеріне қатынасу үшін портал интерфейсіне қолдау қосты. Енгізу әдістерімен жұмыс істеу үшін мәтінді енгізу-тұрақсыз-v3 протоколының кеңейтімін қолдау ұсынылды;
  • Виджеттерді әзірлеу үшін көрінетін аймақтың орналасуына байланысты элементтердің орналасуын басқару жүйесін енгізу арқылы жаңа GtkLayoutManager нысаны енгізілген. GtkLayoutManager GtkBox және GtkGrid сияқты GTK контейнерлеріндегі еншілес сипаттарды ауыстырады. Бірнеше дайын орналасу менеджерлері ұсынылады: бір еншілес элементі бар қарапайым контейнерлер үшін GtkBinLayout, сызықты теңестірілетін еншілес элементтер үшін GtkBoxLayout, еншілес элементтерді торға туралау үшін GtkGridLayout, C еншілес элементтерінің ерікті орналасуы үшін GtkFixedLayout, Translatustom_catey_alk элементтеріне негізделген дәстүрлі GtkLotloyout. өңдеушілер;
  • Еншілес элементтерді бетті көрсетуге арналған жалпыға қолжетімді нысандар GtkAssistant, GtkStack және GtkNotebook виджеттеріне қосылды, оларға осы виджеттердің Орналасуға қатысты емес еншілес сипаттары тасымалданады. Барлық бар еншілес сипаттар кәдімгі сипаттарға, орналасу сипаттарына түрлендірілген немесе бет нысандарына жылжытылғандықтан, еншілес сипаттарға қолдау GtkContainer ішінен толығымен жойылды;
  • Негізгі GtkEntry функционалдығы жақсартылған GtkEditable өңдеу интерфейсін қамтитын жаңа GtkText виджетіне жылжытылды. Барлық бар деректерді енгізу ішкі сыныптары жаңа GtkText виджетіне негізделген GtkEditable іске асырулары ретінде қайта жасалды;
  • Құпия сөзді енгізу пішіндері үшін жаңа GtkPasswordEntry виджеті қосылды;
  • GtkWidgets GskTransform бағдарламасына CSS немесе gtk_widget_allocate аргументі арқылы көрсетілген сызықтық түрлендіру әдістерін пайдаланып еншілес элементтерді түрлендіру мүмкіндігін қосты. Көрсетілген мүмкіндік GtkFixed виджетінде бұрыннан қолданылған;
  • Жаңа тізім жасау үлгілері қосылды: GtkMapListModel, GtkSliceListModel, GtkSortListModel, GtkSelectionModel және GtkSingleSelection. Болашақта біз GtkListView-ге тізім үлгілеріне қолдау қосуды жоспарлап отырмыз;
  • GtkBuilder идентификатор бойынша сілтемелерді пайдаланудың орнына нысан сипаттарын жергілікті (кіріктірілген) орнату мүмкіндігін қосты;
  • UI файлдарын GTK 4-тен GTK 3-ке түрлендіру үшін gtk4-builder-tool пәрмені қосылды;
  • Негізгі тақырыптарды, кестелік мәзірлерді және біріктірілген терезелерді қолдау тоқтатылды. GtkInvisible виджеті жойылды.

    Ақпарат көзі: opennet.ru

пікір қалдыру