Бриз: Почему в KDE 5 этого нет по умолчанию?

Как мы уже знаем, KDE Next (или KDE 5, как вы предпочитаете) был выпущен как стабильный несколько дней назад, и среди новых функций, которые он привносит, одной из самых обсуждаемых является новый Artwork под названием Breeze.

Breeze

Те, кто уже пробовал эту новую версию или смотрели видео, возможно, заметили, что в случае с оконным декоратором по умолчанию используется Oxygen, а не Breeze. Также Мартин Грисслин объясняет нам в его блоге в чем причина этого решения.

Поскольку статья написана на английском языке, я постараюсь донести до вас основную идею этого.

Почему по умолчанию не работает Breeze?

Я начинаю с объяснения того, как работают оконные декорации в KWin 4. KWin - это так называемое повторное родительство оконных менеджеров. Это означает, что окно, управляемое X11, помещается в другое окно X11, которое обеспечивает рамку окна. В KWin мы используем QWidget для рамки окна. Поэтому мы также ограничены тем, что предоставляет нам QWidget ... Наше решение состоит в том, чтобы перехватить все события рисования декораций в QWidget и подавить их, запустить перерисовку композитора и на этапе рендеринга гарантировать украшение временного изображения, которое затем копируется в текстуру.


Оформление окна темы Breeze основано на движке темы Aurorae. Поскольку я являюсь ведущим автором Aurorae, я могу упомянуть об этом в этом сообщении в блоге, не чувствуя себя плохо по этому поводу 🙂 Aurorae был разработан, чтобы очень легко создавать украшения и использовать новые функции полупрозрачности. Это решение, которое можно было бы использовать как украшение по умолчанию, но это никогда не было их целью. Идея заключалась в том, чтобы позволить пользователям, которые хотят настраивать эту функцию, в то время как большинство пользователей могут использовать собственные темы, которые работают быстрее. Аврора никогда не была быстрой, и она не будет быстрой.


Теперь в KWin 5 использование QML является основной проблемой, которая затрудняет использование Aurorae. QtQuick использует Scenegraph и использует QWindows вместо QWidget. Это облом для нашего API на основе QWidget. Мы скорректировали внутреннее использование для поддержки декораций на основе QWindows, но это был довольно трудный путь, поскольку есть различия в поведении окон. Поскольку он больше не основан на QWidget, наш захват событий рисования не работает, и нам требовалось новое решение для этого. И это решение еще хуже, чем предыдущее, потому что QtQuick в настоящее время работает через OpenGL. Из-за ограничений в приложении OpenGL Qt (может быть рассмотрено в Qt 5.4), которые мы не можем разделить с контекстом OpenGL, используемым QtQuick ... Это не только огромные накладные расходы при копировании содержимого из графического процессора в ОЗУ и обратно к графическому процессору вы также теряете много памяти. В случае развернутого окна это не только строка заголовка, но и все окно. И эти накладные расходы есть для каждого окна.


Одно это может сделать Аврору совершенно непригодной для использования. В настоящее время я использую тему Breeze, а KWin требуется более 200 МБ ОЗУ - это не совсем приемлемо. Но ситуация еще хуже. С QWindows мы не можем знать, какие области были обновлены. Поэтому, когда, например, обновляется кнопка, мы должны перекрасить все окно, включая полную копию содержимого оформления. Это большая проблема, особенно в анимационных ситуациях.


Итак, каков путь вперед? Я начал реализовывать новое оформление для API, сняв ограничение на оформление на основе благополучия из QWidget, и в то же время я начал реализовывать оформление Breeze с этим новым API. Надеюсь, мы сможем представить это в KWin 5.1.


Так и есть, господа. Надеюсь, вы более-менее понимаете, в чем проблема. Я собираюсь спросить Мартина, не более ли практично и быстрее сделать родную тему Breeze, такую ​​как Oxygen, хотя на данный момент я не волнуюсь, Oxygen, хотя это не самая симпатичная вещь в мире, у него много вариантов ..


11 комментариев, оставьте свой

Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.

  1.   Иванбаррам сказал

    Все прочитал, но ничего не понял, сегодня тормозит. В любом случае, я все еще не могу протестировать KDE 5 на моем OpenSUSE 13.1. Это ломает меня из-за некоторых "старых" зависимостей, которые у меня есть.
    Может, дам тебе еще шанс с другой ОС в виртуальной.

    Приветствую и спасибо за вклад.

    1.    карликовый сказал

      Это непросто, он в основном пытается объяснить, что способ реализации сложен, особенно для плагинов, и что, по сути, aurorae - МЕДЛЕННЫЙ, намного больше, чем Oxygen.

      Я не знаю, в этом смысле, в части декоратора окон и всего, что мне кажется, что

    2.    карликовый сказал

      Это непросто, он в основном пытается объяснить, что способ реализации сложен, особенно для плагинов, и что, по сути, aurorae - МЕДЛЕННЫЙ, намного больше, чем Oxygen.

      Я не знаю, в этом смысле, в части декоратора окон и всего того, что мне кажется, что KDE - это шаг позади GNOME, и будьте осторожны, я в лучшем случае фанат KDE, только мне нетрудно что-то признать когда это правда.

    3.    Тхарран сказал

      Не зная ничего о предмете, я в основном понял, что aurorae (движок, который использует Breeze) теперь вызывает проблемы, потому что Kwin5 больше не использует qwidget, как в kwin4, и окна не ведут себя так же. Вместо этого он использует QML и QTquick, которые работают напрямую с opengl, и поэтому кажется, что некоторые существующие ограничения в qt 5.3 препятствуют тому, чтобы старый движок и его темы не работали должным образом в новом Kwin.

  2.   mat1986 сказал

    Можно ли было бы создать (или адаптировать) Breeze к стилю или способу работы Oxygen?

  3.   Andekuera сказал

    Кто-нибудь знает, что будет с qtcurve?

    1.    Тхарран сказал

      Qtcurve-qt5 уже довольно давно работает отлично. Новая версия KDE выйдет, как всегда.

      1.    айория сказал

        Мне уже было странно, что в Kaos, который всегда находится в авангарде настоящего, тестируется Kf5, поэтому в Kaos linux плазма next или kde 5 будет поступать по умолчанию. Ух ты, ты не знал, что ты создатель Авроры ...

        1.    Тхарран сказал

          Я создатель полярных сияний? О_о;

  4.   Серхио Э. Дюран сказал

    Я создавал замену для breeze также в полярных сияниях под названием next fresh, которая позже будет свежей, но я не могу адаптировать SVG к теме, поэтому ее разработка неактивна, elav, если у вас есть возможность, я хотел бы, чтобы вы показали это ему создатель темы breeze, чтобы посмотреть, смогут ли они перенести идею украшения моего северного сияния в родные украшения KDE в качестве альтернативы украшению breeze

    https://drive.google.com/file/d/0B6VUkpZzqL7hbk1QbWN6eVcycU0/edit?usp=sharing

  5.   элиотайм3000 сказал

    Я думаю, что KDE 5 будет в Fedora, Debian, Slackware и Arch, когда у меня появятся семья и дети, и мне будет около 30 лет.

    Короче говоря, чтобы продолжать использовать маленькую молодежь, которую я оставил.