Представлен (http://ssj-gz.blogspot.ru/2013/01/emscripten-qt-progress-fas...) проект Emscripten-Qt (http://vps2.etotheipiplusone.com:30176/redmine/projects/emsc...), в рамках которого ведётся работа по созданию порта тулкита Qt, нацеленного на использование в web-браузере. В настоящее время для использования доступны компоненты QtCore и QtGui, преобразованные в JavaScript-представление. Изначальный С++ код данных компонентов был преобразован в биткод LLVM и затем транслирован в JavaScript при помощи компилятора Emscripten (https://www.opennet.ru/opennews/art.shtml?num=31155). Работа Emscripten-Qt возможна в любом браузере с поддержкой HTML5-элемента canvas и типизированных массивов, но тестирование проекта ведётся в Firefox и Chrome. Код проекта можно загрузить через Gitorious (https://qt.gitorious.org/~ssj/qt/emscripten-qt).
Кроме автоматизированного преобразования в JavaScript разработчиками ведётся работа по профилированию и выборочной оптимизации полученного кода (например, для некоторых классов была применено inline-развёртывание конструкция). По сравнению с первыми вариантами проекта уже удалось достигнуть неплохого повышения производительности. Например, демонстрация "сталкивающиеся мыши" раньше тратила на отрисовку кадра несколько секунд, после оптимизации производительность возросла до нескольких кадров в секунду. Кроме оптимизации проведена работа по улучшению поддержки клавиатуры, в том числе обработки в приложениях состояния таких клавиш как Shift и Ctrl.
Подготовленные проектом компоненты можно использовать для организации выполнения в браузере нативных Qt-приложений, также преобразованных при помощи Emscripten. В конечном счёте проект планирует обеспечить полный набор средств для упрощения сборки и адаптации таких приложений для работы в браузере. В настоящее время проектом уже подготовлено (http://vps2.etotheipiplusone.com:30176/redmine/projects/emsc...) и собрано для запуска в браузере несколько десятков демонстрационных приложений из состава Qt. Из не поддерживаемых в Emscripten-Qt приложений отмечаются многопоточные программы, программы с локальным циклом обработки событий, программы с интерфейсом drag and drop, программы, использующие расширенные модули (например, не планируется портировать QtScript и QtWebkit).
<center><a href="http://vps2.etotheipiplusone.com:30176/redmine/projects/emsc... src="https://www.opennet.ru/opennews/pics_base/0_1358253617.png" style="border-style: solid; border-color: #e9ead6; border-width: 15px;" title="" border=0></a></center>
URL: http://ssj-gz.blogspot.ru/2013/01/emscripten-qt-progress-fas...
Новость: https://www.opennet.ru/opennews/art.shtml?num=35838