Я довольно новичок во всей игре GTK и хочу создать алгоритм для снятия снимков экрана всех мониторов.GTK/GDK Алгоритм для полного скриншота всех мониторов
я что-то вдоль этих линий мышления:
gdk_display_manager_list_displays
- каждый дисплей может иметь несколько экранов (экраны означает мониторы?), Так что используйте
gdk_display_get_n_screens
, чтобы получить мониторы на дисплей от1
- получить корневой GTK окно всех экранов от
2
- создать новый Pixbuf для каждого окна gtk для каждого окна от
3
сgdk_pixbuf_new
- заполнить каждую pixbuf из
4
сgdk_pixbuf_get_from_drawable
для каждого соответствующего корневого окна из3
для каждого соответствующего экрана от2
для каждого соответствующего дисплея от1
(возможно, потребуетсяgdk_drawable_get_size
иgdk_window_get_origin
для каждого для арг, чтобы pixbuf) gdk_pixbuf_get_pixels
для каждого pixbuf
Является ли это приемлемым решением?
Я думаю, что он может работать. Вот ссылка: http://git.xfce.org/apps/xfce4-screenshooter/tree/lib/screenshooter-capture.c#n325 – ntd
Спасибо @ntd! Я написал эту версию здесь в js-ctypes: https://github.com/Noitidart/NativeShot/blob/gdk-experimental/modules/workers/MainWorker.js#L439-506, но ее получение null, когда я пытаюсь использовать gdk3 метод 'gdk_pixbuf_get_from_window' и его сбой, когда я пытаюсь использовать gdk2 метод' gdk_pixbuf_get_from_drawable' :( – Noitidart
Мой комментарий слишком длинный, поэтому я отправил ответ. Я думаю, что решение будет включать в себя множество проб и ошибок на вашей стороне. – ntd