Кіріспе
Бағдарламалық кітапхана
GDK (GIMP Drawing Kit) – төменгі деңгейдегі функцияларды, терезе және графикалық жүйелер ұсынатын функцияларды қоршап тұратын кітапхана. GDK дисплей сервері мен GTK кітапханасы арасында орналасқан, қарапайым примитивтерді салу, растрлық графиканы (бит карталарын), курсорларды, қаріптерді, сондай-ақ терезе оқиғаларын және сүйреп тастау мүмкіндіктерін сияқты негізгі рендерингті басқарады. GTK Scene Graph Kit (GSK) сияқты, GDK GTK құрамына кіреді және GNU Lesser General Public License (LGPL) лицензиясымен лицензияланады.
Бағдарламалық жасақтама архитектурасы
GTK GDK деп аталатын абстракциялық қабаттың үстінде іске асырылады, GTK-ді кіріс деректерін жинау, сүйреп тастау және пиксель форматтарын түрлендіру сияқты төменгі деңгейдегі мәселелерден босатады. GDK – бұл GTK-ны терезе жүйесінің ерекшеліктерінен бөлетін аралық қабат. GDK GTK-ның тасымалдануының маңызды бөлігі болып табылады. GLib төменгі деңгейдегі платформааралық функционалдықты қамтамасыз ететіндіктен, GTK-ны басқа платформаларда іске қосу үшін GDK-ны негізгі операциялық жүйенің графикалық қабатына порттау жеткілікті. Сондықтан, GDK-ның Windows API және Quartz-ға жасалған порттары Windows және macOS жүйелерінде GTK қосымшаларын іске қосуға мүмкіндік береді. GTK+ 2.8 нұсқасынан бастап GDK Cairo-ны қолдайды, оны GTK+ 3-те GDK-ның сурет салу функцияларының орнына пайдалану керек. GDK – бұл GTK-ны терезе жүйесінің ерекшеліктерінен оқшаулайтын аралық қабат. GDK – Xlib-тің айналасындағы жұқа орама. X Window System Xlib деп аталатын төменгі деңгейдегі кітапханамен бірге келеді. GDK-дағы әрбір функция тиісті Xlib функциясының айналасында өте жұқа орама болып табылады; бірақ Xlib-тің кейбір күрделілігі (және функционалдығы) бағдарламалауды жеңілдету және GDK-ны Wayland немесе Microsoft Windows сияқты басқа терезе жүйелеріне порттауды жеңілдету үшін жасырылған. Жасырылған Xlib функционалдығы қолданба бағдарламашыларына көбінесе қызығушылық тудырмайды; мысалы, терезе менеджерлері ғана пайдаланатын көптеген мүмкіндіктер GDK-да көрсетілмейді. GDK сізге төменгі деңгейдегі жұмыстарды орындауға мүмкіндік береді, мысалы, «осы пиксказды экранға шығарып жіберу» сияқты. GDK X протоколынан гөрі портативті қабатты ұсынады, X сияқты жүйелер ұсынатын төменгі деңгейдегі қолжетімділіктен айырылмастан. Бұл абстракцияның нағыз күші – егер сіз оны X орнына таңдасаңыз, сіздің бағдарламалық жасақтамаңыз Linux Framebuffer және Windows жүйелерінде автоматты түрде көрсетіледі. GDK-да OpenGL (немесе OpenGL ES) қолдауын қосу графикалық құбыржолды сәл жақсырақ басқаруға мүмкіндік береді; OpenGL текстуралы деректерді құрастыруға өте қолайлы, бірақ сурет салуға мүлдем жарамсыз.
GdkFrameClock (GdkFrameClock) дегенге сілтеңіз
GdkFrameClock GTK 3.8 нұсқасында қосылды. GTK қолданбалары негізгі циклға (Glib оқиға циклына қараңыз) бағынышты болып қалады, яғни қолданба осы негізгі цикл ішінде көбінесе бос жүреді және бірдеңе болғанша күтеді, содан кейін тиісті процедураны шақырады. GdkFrameClock қосымша механизм қосады, ол қолданбаға "серпіліс" жібереді. Ол қолданбаға терезелерді қашан жаңарту және қайта бояу керектігін хабарлайды. Жаңарту жиілігі монитордың жаңарту жиілігімен синхрондалуы мүмкін.
While GTK applications remain mainloop driven (cf. Glib event loop), meaning the application is idle inside this main loop most of the time and just waits for something to happen and then calls the appropriate subroutine when it does, GdkFrameClock adds an additional mechanism, that gives a "pulse" to the application. It tells the application when to update and repaint a window. The beat rate can be synchronized with the monitor refresh rate.
gdk-pixbuf
gdk pixbuf – сурет жүктеу және пиксельдік буферді басқару құралы. Кітапхана суреттерді жүктеу және сақтау мүмкіндіктерін, пикселдерді жылдам масштабтау және біріктіруді, қарапайым анимацияларды жүктеуді (мысалы, анимацияланған GIF-терді) және libart суреттер буферін GdkDrawable нысанына көрсетуді қамтамасыз етеді. gdk pixbuf-тың API өте кең. gdk pixbuf кітапханасының негізгі құрылымы – GdkPixbuf, жеке, мөлдір емес деректер құрылымы, ол ArtPixBuf қолдайтын көптеген ұғымдарды шағылыстырады. Шындығында, GdkPixbuf-тың көптеген жеке деректер өрістері ArtPixBuf-тағы сәйкес келетіндермен бірдей атауларға және деректер түрлеріне ие. Бұл ұқсастық gdk pixbuf libart-тың орауышы болған кездерге дейін жетеді. Содан бері libart тәуелділігі жойылды және gdk pixbuf GTK+ 2.0 код базасына біріктірілді. Осылайша, gdk pixbuf дербес кітапхана ретінде GNOME 1 нұсқасымен ғана шектелді. 2010 жылғы 23 қыркүйекте GTK+ 2.22 нұсқасының шығуымен gdk pixbuf GTK+ 2.0 нұсқасынан бастап GTK+ құрамына енгеннен кейін қайтадан дербес кітапханаға айналды. Бұл GTK+ 3-ке көшуге дайындық ретінде жасалды.
https://git.gnome.org/browse/gdk-pixbuf/
Алғашқы дербес нұсқа 2010 жылғы 21 қыркүйекте 2.22 нұсқасы болды, оның дамуы 2010 жылғы 23 маусымда 2.21.3 нұсқасымен басталды. gdk pixbuf-тың соңғы нұсқасы – 2017 жылғы 2 қазанда шыққан gdk pixbuf 2.36.11. 3.36 нұсқасын дамыту 2016 жылғы 26 сәуірде 3.35.1 нұсқасымен басталды.
Тарих
GDK бастапқыда GIMP растрлық графикалық редакторы үшін X Window жүйесінде әзірленген.