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

31 января 2012 года

Мартин Грэслин (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 также приведёт к упрощению их последующей поддержки. В настоящее время разработчики испытывают большие проблемы с поддержанием в актуальном виде накопленной коллекции дополнений на C++, особенно в ситуации внесения изменений в API и непостоянности ABI. Дополнения на JavaScript можно будет вынести из основного дерева исходных текстов KWin и поставлять в виде отдельных пакетов. Для распространения эффектов предлагается использовать уже существующую структуру Plasma Package

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

Источники править


 
 
Creative Commons
Эта статья содержит материалы из статьи «В KWin добавлена поддержка создания визуальных эффектов на JavaScript», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.