LINUX.ORG.RU
ФорумTalks

В KWin добавлена поддержка создания визуальных эффектов на JavaScript


0

1

http://www.opennet.ru/opennews/art.shtml?num=32948

Мартин Грэслин (Martin Graesslin), один из ключевых разработчиков оконного менеджера KWin, представил новое достижение на поприще интеграции поддержки JavaScript: визуальные эффекты для KWin теперь можно создавать на языке JavaScript, а не только на C++.

C точки зрения производительности, эффекты на JavaScript ничем не отличаются от эффектов на C++. Система наложения эффектов в KWin разделена на две стадии: реагирование на изменение в оконном менеджере (например, закрытие окна) и рендеринг. Скриптовый API взаимодействует только с оконным менеджером и не касается отрисовки, все операции рендеринга как и раньше производятся низкоуровневыми подпрограммами на C++.

API для разработки эффектов максимально приближен к API для разработки скриптов-дополнений к KWin. Для создания анимационных эффектов предлагается использовать API, базирующийся на появившемся в Qt 4.8 элементе AnimationEffect. Для примера, Грэслин представил реализацию на JavaScript известного эффекта затухания (Fade), вариант на C++ которого занимает более 200 строк, а на JavaScript укладывается в 7 строк:

var duration = 250;
   effects.windowAdded.connect(function(w) {
      effect.animate(w, Effect.Opacity, duration, 1.0);
   });
   effects.windowClosed.connect(function(w) {
      effect.animate(w, Effect.Opacity, duration, 0.0, 1.0);
   });

В настоящее время JavaScript API находится на начальной стадии развития, но будет развиваться в рамках текущего цикла подготовки релиза KDE 4.9. Как уже упоминалось выше скрипты не могут участвовать в операциях рендеринга, но ситуация может измениться после появления биндинга для WebGL, что позволит, например, организовать загрузку собственных шейдеров. Пока реализация поддержки WebGL не входит в планы, по крайней мере в рамках цикла подготовки KDE 4.9.

Давно хотел воплотить несколько своих эффектов, но разбираться в С++ не хотелось.



Последнее исправление: fragment (всего исправлений: 1)
Ответ на: комментарий от Yareg

Дубль два:

Система наложения эффектов в KWin разделена на две стадии: реагирование на изменение в оконном менеджере (например, закрытие окна) и рендеринг. Скриптовый API взаимодействует только с оконным менеджером и не касается отрисовки, все операции рендеринга как и раньше производятся низкоуровневыми подпрограммами на C++.

fragment
() автор топика

Ну теперь-то этот замечательный эффект и на плюсах можно накидать в пару десятков строк.

thesis ★★★★★
()
Ответ на: комментарий от uju

Для этого надо привязки изобретать, а в Qt жабаскрипт из коробки. Вот они и извращаются. Впрочем, там Kross есть по идее.

Deleted
()
Ответ на: комментарий от Yareg

отнюдь
нативные объекты и пара строк управляющего сценария - в таком способе использования js проблем не вижу

wxw ★★★★★
()

Чем бы дитя не тешилось, лишь бы своих не нарожало.

geekless ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.