GDK
GDK ( مجموعة أدوات الرسم GIMP ) هي مكتبة تعمل كغلاف للوظائف الأساسية التي توفرها أنظمة النوافذ والرسومات. تقع GDK بين خادم العرض ومكتبة GTK ، وتتولى عمليات العرض الأساسية مثل رسم العناصر الأولية، والرسومات النقطية (الصور النقطية)، والمؤشرات ، والخطوط ، بالإضافة إلى أحداث النوافذ ووظيفة السحب والإفلات .
مثل GTK Scene Graph Kit (GSK)، فإن GDK هو جزء من GTK ومرخص بموجب رخصة جنو العمومية الصغرى (LGPL).
هندسة البرمجيات

تُنفَّذ مكتبة GTK فوق طبقة تجريدية تُسمى GDK، مما يُحررها من العمليات الأساسية مثل جمع المدخلات، والسحب والإفلات ، وتحويل تنسيق البكسل. تُعد GDK طبقة وسيطة تفصل GTK عن تفاصيل نظام النوافذ.
يُعدّ GDK جزءًا أساسيًا من قابلية نقل GTK. وبما أن GLib توفر بالفعل وظائف التشغيل عبر المنصات المختلفة على مستوى منخفض ، فإن كل ما يلزم لتشغيل GTK على منصات أخرى هو نقل GDK إلى طبقة الرسومات الخاصة بنظام التشغيل الأساسي. ومن ثم، فإن نقل GDK إلى واجهة برمجة تطبيقات Windows و Quartz هو ما يمكّن تطبيقات GTK من العمل على نظامي Windows و macOS على التوالي.
ابتداءً من GTK+ 2.8، يدعم GDK برنامج Cairo ، والذي يُنصح باستخدامه مع GTK+ 3 بدلاً من وظائف الرسم الخاصة بـ GDK. [ 2 ]
GDK هي طبقة وسيطة تعزل GTK عن تفاصيل نظام النوافذ . GDK عبارة عن غلاف بسيط حول Xlib . يأتي نظام X Window مزودًا بمكتبة منخفضة المستوى تُسمى Xlib . تقريبًا كل دالة في GDK هي غلاف بسيط جدًا حول دالة مقابلة في Xlib؛ ولكن بعض تعقيدات (ووظائف) Xlib مخفية، لتبسيط البرمجة وتسهيل نقل GDK إلى أنظمة نوافذ أخرى، مثل Wayland أو Microsoft Windows. وظائف Xlib المتوفرة موجهة في الغالب للتطبيقات؛ على سبيل المثال، العديد من الميزات التي تستخدمها مديرات النوافذ فقط غير متاحة في GDK.
يدعم GDK تقنية OpenGL (أو OpenGL ES ) لتحسين التحكم في مسار الرسومات .
GdkFrameClock
تمت إضافة GdkFrameClock في GTK 3.8 [ 3 ]
بينما تظل تطبيقات GTK مدفوعة بحلقة رئيسية (انظر حلقة أحداث Glib )، أي أن التطبيق يكون خاملاً داخل هذه الحلقة الرئيسية معظم الوقت في انتظار حدث ما، ثم يستدعي الروتين الفرعي المناسب عند حدوثه، فإن GdkFrameClock يضيف آلية إضافية تُخبر التطبيق متى يُحدّث النافذة ويُعيد رسمها. [ 4 ] ويمكن مزامنة معدل التحديث مع معدل تحديث الشاشة.
مجموعة أدوات رسم المشهد GTK
احتوى برنامج GDK في تاريخه على عدد من اللوحات المختلفة وارتبط بها .
كان المطورون يدرسون أيضًا اتجاهات جديدة للمكتبة، بما في ذلك إزالة مكونات واجهة برمجة التطبيقات المهملة وإضافة نظام رسم بياني متكامل للمشهد (لوحة الرسم) ، على غرار مكتبة رسومات Clutter، مما يدمج GTK بشكل فعال مع OpenGL و Vulkan . [ 5 ] [ 6 ]
تم إصدار مجموعة أدوات رسم المشهد GTK+ (GSK) كجزء من GTK+ 3.90 في مارس 2017. وهي عبارة عن رسم بياني للمشهد وواجهة برمجة تطبيقات للعرض في GTK. لم يتم دمج GSK بشكل إضافي مع GDK (الذي يُعد أيضًا جزءًا من GTK)، ولكنه موجود في دليل خاص به.
أنظمة النوافذ
يحتوي GDK على واجهات خلفية لنظامي نوافذ ، وهما بروتوكولات X11 و Wayland ، و Quartz و GDI ، وحتى محرك بروتوكول نقل النص التشعبي (HTTP) Broadway.
مع إصدار جنوم 3.16 في مارس 2015، حصلت مجموعة تطوير البرامج (GDK) على واجهة خلفية تجريبية لبروتوكول خادم العرض Mir . [ 9 ] يُعد بروتوكول خادم العرض Mir منتجًا من شركة Canonical لتوزيعة أوبونتو من لينكس، والتي تهدف إلى منافسة بروتوكول خادم العرض Wayland؛ وحتى الآن، فهو مُطبق فقط في أوبونتو.
في الوقت الحالي، لا يوجد نظام خلفي لنظام إدارة المفاتيح (KMS) .
يمكن استخدام متغير البيئة GDK_BACKEND لبدء تشغيل تطبيق وإجبار هذه النسخة منه على استخدام نظام نوافذ معين: GDK_BACKEND=wayland gnome-calculatorGDK_BACKEND=wayland CLUTTER_BACKEND=wayland cheese
gdk-pixbuf
gdk-pixbuf هي مجموعة أدوات لتحميل الصور ومعالجة مخزن البكسل. توفر المكتبة إمكانيات تحميل الصور وحفظها، وتغيير حجم وتركيب مخازن البكسل بسرعة، وتحميل الرسوم المتحركة البسيطة (مثل صور GIF المتحركة)، وعرض مخزن صور libart إلى مثيل GdkDrawable.
يحتوي gdk-pixbuf على واجهة برمجة تطبيقات كبيرة إلى حد ما.
تُعدّ بنية GdkPixbuf، وهي بنية بيانات خاصة غير شفافة، البنية الأساسية لمكتبة gdk-pixbuf، إذ تُحاكي العديد من المفاهيم التي يدعمها ArtPixBuf. في الواقع، تتشابه معظم حقول البيانات الخاصة في GdkPixbuf في الأسماء وأنواع البيانات مع نظيراتها في ArtPixBuf. يعود هذا التشابه إلى بدايات gdk-pixbuf عندما كانت مجرد غلاف لمكتبة libart . ومنذ ذلك الحين، تمّ الاستغناء عن libart، ودمج gdk-pixbuf في قاعدة بيانات GTK+ 2.0. وبناءً على ذلك، يقتصر استخدام gdk-pixbuf كمكتبة مستقلة على إصدار GNOME 1 .
مع إصدار GTK+ 2.22 في 23 سبتمبر 2010، تم تحويل gdk-pixbuf مرة أخرى إلى مكتبة مستقلة، بعد أن كانت تُشحن كجزء من GTK+ منذ الإصدار 2.0. وقد تم ذلك استعدادًا للانتقال إلى GTK+ 3.
كان الإصدار المستقل الأول هو 2.22 في 21 سبتمبر 2010، وبدأ تطويره مع الإصدار 2.21.3 في 23 يونيو 2010.
تاريخ
تم تطوير GDK في الأصل على نظام X Window لمحرر الرسومات النقطية GIMP . [ 10 ]
انظر أيضاً
- فوضى
مراجع
- ↑ "n Namespace Gdk – 4.0; The GTK toolkit Version 4.11.5" . فبراير 2023. تم الاطلاع عليه بتاريخ 28 يوليو 2023 .
- ↑ الانتقال من GTK+ 2.x إلى GTK+ 3 - استخدام Cairo للرسم
- ↑ "GdkFrameClock" .
- ↑ لارسون، ألكسندر (2013-11-04). "نموذج الرسم الحديث لـ Gtk" .
- ↑ مدونة ألبرتو رويز
- ↑ اقتراح هافوك بينينجتون لمخطط المشهد
- ↑ "مجموعة أدوات رسم المشهد GTK+" . 2014-07-29.
- ↑ "الجرافين" . 2014-05-02.
- ↑ "إضافة واجهة خلفية تجريبية لـ mir" .
- ↑ جيمب - تاريخ موجز (وقديم) لبرنامج جيمب
روابط خارجية
- كود GDK من إصدار GTK+ 3.19.0
- نموذج الرسم الحديث لـ Gtk – ألكسندر لارسون، 4 نوفمبر 2013
- نظرة عامة على GTK ومكتباتها (مؤرشفة بتاريخ 12 مارس 2019 على موقع Wayback Machine - مشروع GTK)
- https://git.gnome.org/browse/gtk-web/plain/images/architecture.svg
- مكتبات الرسومات
- GTK
