GTK 3.96, keluaran percubaan GTK 4, diterbitkan

10 bulan selepas itu masa lalu keluaran ujian dibentangkan GTK 3.96, keluaran percubaan baharu bagi keluaran stabil GTK 4 yang akan datang. Cawangan GTK 4 sedang dibangunkan sebagai sebahagian daripada proses pembangunan baharu yang cuba menyediakan pembangun aplikasi dengan API yang stabil dan disokong selama beberapa tahun yang boleh digunakan tanpa rasa takut terpaksa menulis semula aplikasi setiap enam bulan kerana menukar API di cawangan GTK seterusnya. Sehingga GTK 4 distabilkan sepenuhnya, adalah disyorkan agar aplikasi yang ditawarkan kepada pengguna terus dibina menggunakan cawangan GTK 3.24.

Utama perubahan dalam GTK 3.96:

  • Dalam API GSK (GTK Scene Kit), yang menyediakan pemaparan adegan grafik melalui OpenGL dan Vulkan, kerja telah dilakukan pada ralat, yang menjadi lebih mudah untuk dikenal pasti terima kasih kepada alat penyahpepijatan baharu gtk4-node-editor, yang membolehkan anda memuatkan dan memaparkan nod pemaparan dalam format bersiri (boleh disimpan dalam mod pemeriksaan pemeriksa GTK), dan juga membandingkan hasil pemaparan apabila menggunakan hujung belakang yang berbeza;

    GTK 3.96, keluaran percubaan GTK 4, diterbitkan

  • Keupayaan transformasi 3D telah dibawa ke tahap yang membolehkan anda mencipta kesan animasi seperti kiub berputar;

    GTK 3.96, keluaran percubaan GTK 4, diterbitkan

  • Sepenuhnya ditulis semula Bahagian belakang Broadway GDK direka untuk menghasilkan output perpustakaan GTK dalam tetingkap penyemak imbas web. Pelaksanaan Broadway lama tidak sesuai dengan kaedah pemaparan yang dicadangkan dalam GTK 4 (sebaliknya daripada output kepada penimbal, ia kini menggunakan model berdasarkan nod pemaparan, di mana output terdiri dalam bentuk pepohon operasi peringkat tinggi, diproses dengan cekap oleh GPU menggunakan OpenGL dan Vulkan).
    Pilihan Broadway baharu menukarkan nod pemaparan kepada nod DOM dengan gaya CSS untuk memaparkan antara muka dalam penyemak imbas. Setiap keadaan skrin baharu diproses sebagai perubahan dalam pepohon DOM berbanding keadaan sebelumnya, yang mengurangkan saiz data yang dihantar kepada klien jauh. Transformasi 3D dan kesan grafik dilaksanakan melalui sifat transformasi CSS;

  • GDK terus melaksanakan API yang direka bentuk dengan mengambil kira protokol Wayland, dan membersihkan API berasaskan X11 atau mengalihkannya ke bahagian belakang X11 yang berasingan. Terdapat kemajuan dalam kerja untuk beralih daripada penggunaan permukaan kanak-kanak dan koordinat global. Sokongan untuk GDK_SURFACE_SUBSURFACE telah dialih keluar daripada GDK;
  • Pemfaktoran semula kod yang dikaitkan dengan melaksanakan operasi Drag-and-Drop diteruskan, termasuk objek GdkDrag dan GdkDrop berasingan yang dicadangkan;
  • Pengendalian acara telah dipermudahkan dan kini hanya digunakan untuk input. Peristiwa yang selebihnya digantikan dengan isyarat yang berasingan, contohnya, bukannya peristiwa output, isyarat "GdkSurface::render" dicadangkan, bukannya peristiwa konfigurasi - "GdkSurface::size-changed", bukannya peristiwa pemetaan - "GdkSurface: :mapped”, bukannya gdk_event_handler_set() - "GdkSurface::event";
  • Bahagian belakang GDK untuk Wayland telah menambah sokongan untuk antara muka portal untuk mengakses tetapan GtkSettings. Untuk bekerja dengan kaedah input, sokongan untuk sambungan protokol text-input-unstable-v3 telah dicadangkan;
  • Untuk pembangunan widget, objek GtkLayoutManager baharu diperkenalkan dengan pelaksanaan sistem untuk mengawal susun atur elemen bergantung pada susun atur kawasan yang boleh dilihat. GtkLayoutManager menggantikan sifat anak dalam bekas GTK seperti GtkBox dan GtkGrid. Beberapa pengurus susun atur siap sedia dicadangkan: GtkBinLayout untuk bekas mudah dengan satu elemen kanak-kanak, GtkBoxLayout untuk elemen kanak-kanak yang dijajarkan secara linear, GtkGridLayout untuk menjajarkan elemen kanak-kanak ke grid, GtkFixedLayout untuk kedudukan sewenang-wenangnya bagi elemen kanak-kanak, GtkCustomLayout berdasarkan elemen tradisional penerjemahan_lokal pengendali;
  • Objek yang boleh diakses secara umum untuk paparan halaman elemen kanak-kanak telah ditambahkan pada widget GtkAssistant, GtkStack dan GtkNotebook, yang mana sifat anak yang bukan berkaitan Reka Letak bagi widget ini dipindahkan. Memandangkan semua sifat anak sedia ada telah ditukar kepada sifat biasa, sifat susun atur atau dialihkan ke objek halaman, sokongan untuk sifat anak telah dialih keluar sepenuhnya daripada GtkContainer;
  • Fungsi teras GtkEntry telah dialihkan ke widget GtkText baharu, yang turut termasuk antara muka pengeditan GtkEditable yang dipertingkatkan. Semua subkelas input data sedia ada telah dibuat semula sebagai pelaksanaan GtkEditable berdasarkan widget GtkText baharu;
  • Menambah widget GtkPasswordEntry baharu untuk borang kemasukan kata laluan;
  • GtkWidgets telah menambah keupayaan untuk mengubah elemen anak menggunakan kaedah transformasi linear yang ditentukan melalui CSS atau argumen gtk_widget_allocate kepada GskTransform. Ciri yang ditentukan telah digunakan dalam widget GtkFixed;
  • Model penjanaan senarai baharu telah ditambah: GtkMapListModel, GtkSliceListModel, GtkSortListModel, GtkSelectionModel dan GtkSingleSelection. Pada masa hadapan kami merancang untuk menambah sokongan untuk model senarai kepada GtkListView;
  • GtkBuilder telah menambah keupayaan untuk menetapkan sifat objek secara setempat (sebaris), dan bukannya menggunakan pautan mengikut pengecam;
  • Menambahkan arahan pada gtk4-builder-tool untuk menukar fail UI daripada GTK 3 kepada GTK 4;
  • Sokongan untuk tema utama, menu jadual dan kotak kombo telah dihentikan. Widget GtkInvisible telah dialih keluar.

    Sumber: opennet.ru

Tambah komen