Я написал несколько программ GTK, используя привязки gtkD для языка программирования D, которые в остальном являются консольными приложениями, но способны отображать графики на экране и сохранять их в файл. Я хотел бы запустить их на машине, к которой у меня есть только консольный доступ по SSH, что означает, что графики не будут отображаться на экране, но все равно будут записываться в файлы.
Когда я вызываю Main.init(), я получаю сообщение Gtk-WARNING **: не удается открыть дисплей, как и ожидалось. Когда я вместо этого вызываю Main.initCheck() и игнорирую ошибки, я просто получаю больше ошибок позже при выполнении, связанных с отсутствием экрана.
Есть ли какой-нибудь простой способ заставить мою программу игнорировать тот факт, что нет доступного экрана, делать все свои экранные рисунки на каком-то фиктивном устройстве (графический эквивалент /dev/null) и по-прежнему рисовать в Pixmaps и Pixbufs (необходимые для сохранять графики в файлы) и запускать части приложения, не основанные на графическом интерфейсе?
Правки: в тех случаях, когда приложение запускает окно и блокируется в цикле событий, идеальным решением было бы немедленно закрыть окно (или вообще не открыть его) и продолжить выполнение частей, не основанных на графическом интерфейсе. программы. Если это невозможно, я могу обойти это, убедившись, что не запускаю никаких окон.
Кроме того, оказывается, что Pixbuf и Pixmaps не работают без присутствия экрана. Я попытался рисовать в Pixmap, создать из него Pixbuf и сохранить результаты в файл либо после вызова Main.checkInit() и игнорирования ошибок, либо без оператора инициализации, и в любом случае GTK жалуется на отсутствие экрана.