crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Lighthouse - оконная система написанная на Qt
Litkevich Yuriy
  опции профиля:
сообщение 13.2.2010, 22:42
Сообщение #1


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9656
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


В лаборатории тролей появилось упоминание об исследовательском проекте Lighthouse.
Специфичная оконная система построенная на плагинах. И позволяющаяя переносить Qt на любые оконные системы, или вовсе туда, где раньше их не было
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 14.2.2010, 1:41
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


В принципе идея общей памяти для рисования не нова, вроде бы простой канвас получается. Я только понять не могу такие вещи:

- каким образом оконный менеджер троллей узнает о параметрах виджета? Те же координаты x, y.
- виджеты из демонстрационного ролика собраны специальной версией Qt или были доработаны для работы с этим оконным менеджером?
- в ролике четко видно, что реальная оконная система работает, а троллевская работает уже внутри одного из окна, которое принадлежит тому оконному менеджеру, который установлен в системе. Если оконная система не была полностью подменена, то я вижу только один вариант - приложения были модифицированы таким образом, чтобы renderer рисовал не на виджет, а в QSharedMemory. Тогда не совсем понятно откуда взялось упоминание о сокетах.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 14.2.2010, 1:49
Сообщение #3


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9656
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


SABROG, я наверное буду не оригинален в ответе, но всё же.
Запусти пример MDI. В нём дочерние окна - наследники QTextEdit, в которые не передаётся виджет-родитель, т.е. по идее они должны плавать как самостоятельны окна. Но они это делают только в нутри главного окна, мало того свернуться/развернутся могут внутри него.

Так что сам механизм управления окнами уже присутствует в Qt довольно давно.

П.С. я не пробовал изгаляться над внутренними окнами (типа баловаться флажками и т.д и т.п.).

П.П.С. Т.е. я думаю, что приложения ни как не были модифицированы, разве что запуск происходил как-то по особому.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 14.2.2010, 1:59
Сообщение #4


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


Одно дело, когда у тебя есть доступ ко всем окнам приложения, т.к. ты находишься в одном процессе, а тут ведь межпроцессное взаимодействие.

Я так понимаю они написали плагин, который запускается вместе любым Qtшным приложением и переопределяет графическую систему. Они наследуются от QGraphicsSystemPlugin и используют в других файлах недокументированные классы Qt.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 14.2.2010, 2:14
Сообщение #5


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9656
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(SABROG @ 14.2.2010, 4:59) *
и используют в других файлах недокументированные классы Qt
возможно. Ведь это пока исследовательский проект, могут как угодно изгаляться. Но я только блог прочитал, да ролик посмотрел, так сказать для общего представления. В глубь меня пока не особо интересует.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 14.2.2010, 2:30
Сообщение #6


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


Я обратил внимание из-за того, что когда пытался разобраться в теме отрисовки картинок поверх виджетов набрел в документации на строки о возможности создания своего Window Surface, но тогда я так и не нашел примера как это можно сделать, а через какое-то время на prog.org'e человек полез за приватными членами в QWidget, чтобы достать указатель на этот QWindowSurface и рисовать через него напрямую. В документации к Qt 4.3 этот класс был документирован с припиской "This class is under development and is subject to change.". В Qt 4.6.1 описание этого класса вообще отсутствует, хоть и упоминается.

P.S: в этом плане я с некоторым пренебрежением смотрю на QtCreator, там тролли тоже не гнушаются использовать недокументированные функции. Т.е. вместо того, чтобы пользователям добавить функционала они сами в своих же проектах используют хаки.

Сообщение отредактировал SABROG - 14.2.2010, 2:38
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 15.2.2010, 19:37
Сообщение #7


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9656
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


В блоге появилось продолжение про Lighthouse
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 1.4.2020, 21:14