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 (GTK Scene Kit) нь OpenGL болон Vulkan-ээр дамжуулан график дүрслэлийг үзүүлэх боломжийг олгодог бөгөөд алдааг олж засварлах шинэ хэрэгсэл gtk4-node-editor-ийн ачаар алдааг олж илрүүлэхэд хялбар болсон бөгөөд энэ нь танд файлуудыг ачаалах, харуулах боломжийг олгодог. Зангилааг цуваа хэлбэрт оруулах (GTK байцаагчийг шалгах горимд хадгалах боломжтой), мөн өөр өөр арын хэсгийг ашиглах үед үзүүлэх үр дүнг харьцуулах;

    GTK 3.96, GTK 4-ийн туршилтын хувилбар, хэвлэгдсэн

  • 3D хувиргах чадварыг эргүүлэх шоо гэх мэт хөдөлгөөнт эффект үүсгэх боломжтой түвшинд хүргэсэн;

    GTK 3.96, GTK 4-ийн туршилтын хувилбар, хэвлэгдсэн

  • Бүрэн дахин бичсэн Broadway GDK backend нь вэб хөтчийн цонхонд GTK номын сангийн гаралтыг гаргахад зориулагдсан. Хуучин Broadway хэрэгжүүлэлт нь 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:: хэмжээ өөрчлөгдсөн", зураглалын үйл явдлын оронд "GdkSurface: :mapped”, gdk_event_handler_set()-ийн оронд - "GdkSurface::event";
  • Wayland-д зориулсан GDK backend нь GtkSettings тохиргоонд хандах портал интерфэйсийн дэмжлэгийг нэмсэн. Оролтын аргуудтай ажиллахын тулд текст оруулах-тогтворгүй-v3 протоколын өргөтгөлийг дэмжихийг санал болгосон;
  • Виджетүүдийг хөгжүүлэхийн тулд шинэ GtkLayoutManager объектыг үзэгдэх хэсгийн зохион байгуулалтаас хамааран элементүүдийн байршлыг хянах системийг нэвтрүүлсэн. GtkLayoutManager нь GtkBox болон GtkGrid зэрэг GTK контейнер дээрх хүүхдийн шинж чанарыг орлуулдаг. Хэд хэдэн бэлэн зохион байгуулалтын менежерүүдийг санал болгож байна: нэг хүүхэд элементтэй энгийн контейнерт зориулсан GtkBinLayout, шугаман зэрэгцүүлсэн хүүхэд элементүүдэд зориулсан GtkBoxLayout, сүлжээнд холбогдсон хүүхэд элементүүдийг зэрэгцүүлэхэд зориулсан GtkGridLayout, C үндсэн элементүүдийг дур мэдэн байрлуулах GtkFixedLayout, уламжлалт GtkFixedLayout нь C translatustom_elements-д суурилсан уламжлалт GtkLatloouts зохицуулагчид;
  • GtkAssistant, GtkStack болон GtkNotebook виджетүүдэд хүүхдийн элементүүдийг харуулах олон нийтэд нээлттэй объектуудыг нэмсэн бөгөөд эдгээр виджетүүдийн Layout-тай холбоогүй хүүхдийн шинж чанаруудыг шилжүүлсэн. Одоо байгаа бүх хүүхдийн шинж чанаруудыг ердийн шинж чанар, байршлын шинж чанарууд руу хөрвүүлсэн эсвэл хуудасны объект руу шилжүүлсэн тул GtkContainer-аас хүүхдийн шинж чанаруудын дэмжлэгийг бүрэн хассан;
  • GtkEntry-ийн үндсэн функцийг шинэ GtkText виджет рүү шилжүүлсэн бөгөөд энэ нь сайжруулсан GtkEditable засварлах интерфейсийг агуулдаг. Одоо байгаа бүх өгөгдөл оруулах дэд ангиудыг шинэ GtkText виджет дээр үндэслэн GtkEditable хэрэгжүүлэлт болгон өөрчилсөн;
  • Нууц үг оруулах маягтуудад зориулсан шинэ GtkPasswordEntry виджет нэмсэн;
  • GtkWidgets нь GskTransform-д CSS эсвэл gtk_widget_allocate аргументаар заасан шугаман хувиргах аргуудыг ашиглан хүүхэд элементүүдийг хувиргах чадварыг нэмсэн. Заасан функцийг GtkFixed виджетэд аль хэдийн ашигласан байна;
  • Жагсаалт үүсгэх шинэ загварууд нэмэгдсэн: GtkMapListModel, GtkSliceListModel, GtkSortListModel, GtkSelectionModel болон GtkSingleSelection. Ирээдүйд бид GtkListView-д жагсаалтын загваруудын дэмжлэгийг нэмэхээр төлөвлөж байна;
  • GtkBuilder нь линкийг танигчаар ашиглахын оронд объектын шинж чанарыг локал байдлаар (inline) тохируулах боломжийг нэмсэн;
  • UI файлуудыг GTK 4-аас GTK 3 болгон хөрвүүлэх командыг gtk4-builder-tool-д нэмсэн;
  • Гол сэдвүүд, хүснэгтийн цэсүүд болон комбинаци хайрцагуудыг дэмжихээ больсон. GtkInvisible виджетийг устгасан.

    Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх