Я потратил крайне много времени на то, чтобы разобраться с прозрачностью в Cairo...
Вроде все просто, но ничего не удавалось.
И вот настал момент прозрения...
Первоначальный исходник за который я уцепился был не очень корректным и ввел меня в заблуждение.
Я полагал, что возможно создать несколько DrawingArea, спокойно наслоить их друг на друга (находясь в пространстве контейнера Fixed) и радоваться результатам - это глупо.
В результате я кардинально пересмотрел подход к созданию GUI и нашол интересное решение.
Теперь все решает класс Node, созданный на основе EventBox. Это такой виртуальный верхний слой, который считает данные, следит за мышкой, реагирует на события.
Малейшее изменение в этом слое влияет на нижний слой - DrawingArea и тут происходит все рисование.
Если кто-то захочет поспорить или предложить лучшее решение - я буду рад, пишите комментарии.
А пока вот такой результат:
Здесь демонстрируется пространство 2000х2000px и работа двух самостоятельных объектов Node, связанных 1 ниткой.
Работает очень быстро. Это радует...
На видео есть небольшое торможение, но это связано только с захватом видео, которое пожирает все ресурсы, в реальности все двигается исключительно быстро.
На видео есть небольшое торможение, но это связано только с захватом видео, которое пожирает все ресурсы, в реальности все двигается исключительно быстро.
Комментариев нет:
Отправить комментарий