تتوفر مجموعة أدوات الرسومات GTK 4.14 المزودة بمحركات جديدة لـ OpenGL وVulkan

بعد سبعة أشهر من التطوير، تم نشر إصدار مجموعة أدوات متعددة المنصات لإنشاء واجهة مستخدم رسومية - GTK 4.14.0. يتم تطوير GTK 4 كجزء من عملية تطوير جديدة تحاول تزويد مطوري التطبيقات بواجهة برمجة تطبيقات مستقرة ومدعومة لعدة سنوات يمكن استخدامها دون الخوف من الاضطرار إلى إعادة كتابة التطبيقات كل ستة أشهر بسبب تغييرات واجهة برمجة التطبيقات في GTK التالية فرع.

في المستقبل، من المخطط تشكيل فرع تجريبي 4.90، والذي سيعمل على تطوير وظائف الإصدار المستقبلي من GTK5. سيتضمن فرع GTK5 تغييرات تنتهك التوافق على مستوى واجهة برمجة التطبيقات (API)، على سبيل المثال، المتعلقة بإيقاف بعض عناصر واجهة المستخدم، مثل مربع حوار تحديد الملف القديم. كما تتم مناقشة إمكانية إنهاء دعم بروتوكول X5 في فرع GTK11 وترك القدرة على العمل فقط باستخدام بروتوكول Wayland.

تتضمن بعض أبرز التحسينات في GTK 4.14 ما يلي:

  • يتضمن محركات عرض موحدة جديدة "ngl" و"vulkan" باستخدام OpenGL (GL 3.3+ وGLES 3.0+) وواجهات برمجة تطبيقات الرسومات Vulkan. يعتمد كلا المحركين على Vulkan API، لكن محرك “ngl” لديه طبقة تجريد منفصلة لـ OpenGL تعمل فوق Vulkan، مع مراعاة الاختلافات بين OpenGL وVulkan. أتاح هذا النهج استخدام بنية تحتية مشتركة في كلا المحركين لمعالجة الرسم البياني للمشهد والتحويلات والتخزين المؤقت للأنسجة والصور الرمزية. كما أدى التوحيد أيضًا إلى تبسيط عملية صيانة قاعدة التعليمات البرمجية لكلا المحركين وإبقائهما محدثين ومتزامنين.

    على عكس محرك gl القديم، الذي كان يستخدم تظليلًا بسيطًا منفصلاً لكل نوع من عقدة العرض ويعيد فرز البيانات بشكل دوري أثناء العرض خارج الشاشة، تستخدم المحركات الجديدة بدلاً من العرض خارج الشاشة تظليلًا معقدًا (ubershader) يفسر البيانات من المخزن المؤقت . من بين السمات المميزة للمحركات الجديدة، تم ذكر تجانس الكفاف (يسمح لك بالحفاظ على التفاصيل الدقيقة وتحقيق رسم ملامح أكثر سلاسة)، وتشكيل التدرجات التعسفية (يمكن استخدام أي عدد من الألوان والصقل) والتحجيم الجزئي.

  • يتم تمكين محرك العرض "ngl" الجديد بشكل افتراضي، كما يتم تمكين دعم واجهة برمجة تطبيقات الرسومات Vulkan أيضًا بشكل افتراضي. عند البناء في التكوين الافتراضي، أصبح دعم Vulkan 1.3 مطلوبًا الآن.
  • قامت مكتبة GSK (GTK Scene Kit)، التي توفر القدرة على عرض المشاهد الرسومية من خلال OpenGL وVulkan، بإجراء تحسينات كبيرة تتعلق بعرض الخطوط والتلميحات واستخدام قيم المقياس غير الصحيحة عند عرض النص. عند التلميح (تنعيم مخطط الصورة الرمزية أثناء التنقيط لزيادة الوضوح على الشاشات ذات الدقة المنخفضة)، يتم تطبيق تحديد موضع الحروف الرسومية على وحدات البكسل الفرعية. تم تحسين جودة عرض الخطوط عند قيم المقياس غير الصحيحة (على سبيل المثال، 125%). تم تنفيذ الدعم لإخلاء العناصر من ذاكرات التخزين المؤقت للحروف الرسومية والقوام. تحسين كفاءة التخزين المؤقت للصور الرمزية.
  • كجزء من الابتعاد عن استخدام مكتبة القاهرة لصالح عرض GPU، تمت إضافة دعم "المسارات" لرسم الأشكال والمساحات باستخدام سلسلة من الخطوط أو منحنيات بيزير المكعبة والتربيعية. بالنسبة للرسم باستخدام المسارات، يوجد كائن GskPath الذي يحدد معلمات الخطوط أو المنحنيات، بالإضافة إلى كائن GskPathBuilder لإنشاء المنحنيات، وGskPathPoint لتحديد نقطة على الشكل، وGskPathMeasure لأخذ قياسات مثل طول المسار.
    تتوفر مجموعة أدوات الرسومات GTK 4.14 المزودة بمحركات جديدة لـ OpenGL وVulkan
  • قامت مكتبة GDK، التي توفر طبقة بين GTK والنظام الفرعي للرسومات، بتوسيع الدعم لآلية DMA-BUF، والتي تسمح باستخدام المخازن المؤقتة على مستوى kernel التي يتم تناولها باستخدام واصف، مما يجعل من الممكن، بدلاً من نسخ بيانات البكسل، لنقلها بين أنظمة kernel الفرعية من خلال واصف. في سياق GTK، يمكن استخدام DMA-BUF لتقليل نسخ بيانات البكسل أثناء التركيب وعند العمل مع الفيديو (على سبيل المثال، يمكن تسجيل الفيديو بواسطة وحدة فك ترميز الأجهزة في dmabuf، ثم إرفاقه بسطح Wayland وتمريره إلى مدير التركيب لواجهة المستخدم وتركيب الإخراج على الشاشة دون عمليات نسخ البيانات غير الضرورية).

    تمت إضافة عنصر واجهة المستخدم GtkGraphicsOffload لإرسال محتوى مثل الفيديو مباشرة إلى المدير المركب (تجاوز عرض GSK)، وتمت إضافة فئة GdkDmabufTextureBuilder لإنشاء كائنات GdkTexture من dmabuf لإنشاء محتوى للنقل المباشر. يمكن استخدام Pipewire أو video4linux أو gstreamer كمصدر لـ dmabuf. يتم دعم تنسيقات dmabuf NV16 وNV61 وNV24 وNV42 وYUV.

  • تمت إضافة فئة GtkPrintDialog، المصممة لإنشاء مربعات حوار الطباعة وتقديم واجهة برمجة تطبيقات غير متزامنة للاستخدام بدلاً من GtkPrintOperation.
  • قامت أداة GtkEmojiChooser بتحديث بيانات الرموز التعبيرية وإضافة القدرة على البحث بلغات مختلفة، مع مراعاة اللغات المختلفة.
  • قامت أداة GtkEntry بتحسين تتبع التغييرات التي أجراها المستخدم (لتنفيذ عملية التراجع).
  • في عنصر واجهة المستخدم GtkFileChooser، تم تسريع فتح مربع حوار تحديد الملف.
  • فئة GtkShortcutsWindow، التي تعرض تلميحات الأدوات لاختصارات لوحة المفاتيح وإيماءات الشاشة، تم تكييفها للشاشات الصغيرة.
  • يوفر وضع الفحص (مفتش GTK) عرض معلومات حول OpenGL والأسطح السفلية وFPS.
  • تمت إضافة أمر "مقارنة" إلى الأداة المساعدة gtk4-rendernode-tool.
  • تم اقتراح أداة مساعدة جديدة، gtk4-path-tool، للعمل مع المسارات.
  • تمت إضافة دعم التسجيل التلقائي إلى الأداة المساعدة gtk4-node-editor.
  • تم إصلاح العطل الذي حدث عند استخدام Wayland في البيئات غير المستندة إلى GNOME Shell.
  • تمت إضافة ميزات جديدة للأشخاص ذوي الإعاقة تتعلق بعرض النص المنسق المعقد وتشغيل WebKitGTK وعرض الإشعارات. تحسين الدعم لمواصفات ARIA. تمت إضافة واجهة GtkAccessibleText لاستخدام ميزات إمكانية الوصول في عناصر واجهة المستخدم النصية التابعة لجهات خارجية. أضافت واجهة GtkText دعمًا لبروتوكول AT-SPI للتفاعل مع برامج قراءة الشاشة.
  • تمت إضافة إمكانية عرض GPU باستخدام WGL API على نظام Windows الأساسي.
  • تقليل استهلاك الذاكرة عند تحميل السمات المستندة إلى CSS.

المصدر: opennet.ru

إضافة تعليق