Как объединить циклы или как реализовать много циклов в главном цикле glib? - PullRequest
0 голосов
/ 24 марта 2012

У меня есть программа, которая использует Glib и glib main loop .Кроме того, он использует openGL для рисования некоторых вещей и должен обрабатывать вводы с клавиатуры.

Проблема состоит в том, что я использовал, чтобы все отделить от друг друга, а не объединятьв одной программе.Так как у Glib есть основной цикл, а openGL использует цикл для рендеринга (с некоторым сном).После всего этого мне нужен цикл для прослушивания ключевых событий.

Каков наилучший способ сделать всю эту работу вместе?Должен ли я сделать три цикла в потоках или реализовать другие циклы для glib основного цикла и как это сделать?

Ответы [ 2 ]

1 голос
/ 24 марта 2012

Я не уверен, что это то, что вы ищете, но я использовал расширение OpenGL для GTK +, называемое gtkglext http://projects.gnome.org/gtkglext/

GTK +, проекты также зависят от Glib, поэтому никаких изменений там нет.Преимущество использования основного цикла GTK + и gtkglext заключается в том, что вы можете смешивать обычные кнопки / виджеты или пользовательские 2D / 3D виджеты с окном OpenGL.

0 голосов
/ 24 марта 2012

Я не знаю о Glib как таковом, но я подозреваю, что вы хотите сделать, это иметь один цикл обработки событий, который может переключать и передавать события, которые будут обрабатываться соответствующими подсистемами. Которые затем возвращаются обратно в основной цикл.

...