Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: X11 child window в полный экран и обратно  (Прочитано 501 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн alexlogvinenkoit

  • Автор темы
  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
X11 child window в полный экран и обратно
« : 18 Апреля 2012, 18:14:46 »
Всем привет!

Столкнулся с такой вот задачей: необходимо дочернее окно показывать на весь экран и обратно в оконный режим. Тут очень важно: мне приходит указатель на GtkWidget, из него я получаю X-окно (parent), а после создаю новое дочернее X11 окно. MainLoop-а нет (точнее у меня нет доступа к нему, да и он мне не очень и пригодится, т.к. я использую X11, а mainloop - gtk).

Не знаю, ничего не могу придумать... Спрашивал где можно и где нельзя, наткнулся на 2 решения: использовать совместно с X11 XCB или XEmbed... Но вот беда - в туториалах, мануалах и примерах ничего хоть отдаленно похожего на мою ситуацию не нашел.

Да и еще: приложение использует OpenGL, поэтому использовать GTK не подойдет. Есть на это 2 причины:
 1. GTK не умеет работать с OpenGL, нужно дополнительная библиотека GTKGLEXT.
 2. Эта библиотека реально уступает по производительности обычным иксам (сам проверял)

Сейчас нашел только такой выход: в отдельном потоке (да уж, извините, сам знаю как это плохо и насколько X-lib этого не любит) запускаю mainloop, до этого вызываю XSelectInput. Все вроде бы неплохо... Единственное но - долго, через раз, иногда выскакивает fatal error "ресурс временно недоступен" и приложение крашится.

Подскажите, пожалуйста, как можно поступить в такой ситуации...

Спасибо!
На C я могу делать ошибки, на C++ я могу их еще и наследовать)

 

Страница сгенерирована за 0.015 секунд. Запросов: 22.