После тринадцати месяцев разработки и 24 экспериментальных версий представлен (https://www.winehq.org/news/2017012401) стабильный релиз открытой реализации Win32 API - Wine 2.0 (http://www.winehq.org/announce/2.0), который вобрал в себя около 6600 изменений. Из ключевых достижений новой версии отмечается реализация всех возможностей, необходимых для запуска Microsoft Office 2013, а также поддержка запуска 64-разрядных Windows-приложений на платформе macOS.
В Wine подтверждена (http://appdb.winehq.org/) полноценная работа 4450 программ для Windows, еще 3828 программ прекрасно работают при дополнительных настройках и внешних DLL, у 3185 программ наблюдаются небольшие проблемы в работе, которые не мешают использованию основных функций приложений. Из возможностей, работа над которыми продолжается, но которые не доведены до конца упомянут вынос (https://www.opennet.me/opennews/art.shtml?num=37818) из wined3d отдельного потока для взаимодействия с OpenGL, полная поддержка HID, графические драйверы для платформы Android и режим передачи сообщений для именованных каналов.
Wine 2.0 стал первым выпуском, подготовленным в рамках нового (https://www.opennet.me/opennews/art.shtml?num=43041) фиксированного цикла разработки, подразумевающего выпуск значительных релизов раз в год. Изменения также затронули и нумерацию версий: каждый значительный релиз будет приводить к увеличению первой цифры в номере версии (2.0.0, 3.0.0, 4.0.0), а обновления к стабильным релизам будут выпускаться с изменением третьей цифры (2.0.1, 2.0.2, 2.0.3). Экспериментальные версии, развиваемые в процессе подготовки следующего значительного релиза, будут выпускаться с изменением второй цифры (2.1, 2.2, 2.3).
Ключевые новшества (https://www.winehq.org/announce/2.0) Wine 2.0:
-
Текст и шрифты
- Продолжена реализация возможностей программного интерфейса DirectWrite (https://ru.wikipedia.org/wiki/DirectWrite), в том числе добавлена поддержка цветных шрифтов, подчёркивания, эффектов отрисовки, настроек в реестре для замены шрифтов, коллекций EUDC (end-user-defined characters);
- Поддержка встраивания шрифтов в файлы PDF;
- В элементе интерфейса RichEdit реализованы маркированные и нумерованные списки;
- Возможность синтеза глифов в жирном начертании (bold) для растровых шрифтов;
- Приведение таблиц символов в соответствие со стандартом Unicode 9.0.0;
-
Графическая подсистема
- В программном интерфейсе Direct2D (https://ru.wikipedia.org/wiki/Direct2D) реализованы средства отрисовки в окна, буферы (bitmap) и структуры GDI DC (Device Contexts);
- Внесена большая порция оптимизаций в движок DIB, который стал работать значительно быстрее;
- В GDI с целью повышения совместимости переработан код для работы с графикой;
- В GDI и GdiPlus добавлена поддержка расширенных мета-файлов GDI, в том числе с поддержкой градиентов;
- В графическом драйвере для macOS реализована поддержка отрисовки для экранов высокого разрешения ("Retina");
-
Интерфейс пользователя
- Переработана реализация буфера обмена. Улучшена совместимость с приложениями Windows, расширены возможности по помещению и извлечению текста с разметкой HTML, повышена плавность выполнения операций Drag & drop;
- В режиме рабочего стола обеспечен вывод на панели списка работающих приложений с возможностью переключения между ними. Добавлена поддержка менее популярных разрешений экрана (например, 640x400 и 1280x960);
- Реализована четвёртая версия протокола трансляции уведомлений через системный лоток (tray notification protocol);
- Расширено число элементов интерфейса, корректно масштабируемых на экранах с высоким DPI;
-
Direct3D, D3DX
- Расширены возможности Direct3D 10 и 11, в том числе добавлена поддержка инструкций моделей шейдеров 4 и 5, дополнительных форматов ресурсов, целочисленных параметров вершинных шейдеров, безтиповых ресурсов, чтения/записи sRGB, массивов текстур, индексов смещения в буфере, неупорядоченного доступа и перезапуска примитивов;
- Увеличено число графических карт, распознаваемых для WineD3D. Для более точного получения информации о графической карте по возможности теперь применяется расширение GLX_MESA_query_renderer;
- Раскладка памяти для ресурсов с текстурами по возможности приближена к платформе Windows, что позволило решить проблемы с работой приложений, например игры League of Legends, использующих обходные пути записи в память;
- Улучшена реализация технологии сглаживания MSAA (Multi-Sample AntiAliasing), обеспечено информирование приложения только о доступных уровнях качества, поддерживаемых в текущей реализации OpenGL;
- Добавлена поддержка уровней функциональности Direct3D 11;
- Реализована поддержка извлечения контекста усройств GDI из поверхностей DXGI, что позволяет отрисовывать поверхности DXGI через GDI;
- В реестр (HKCU\Software\Wine\Direct3D) добавлены новые настройки:
"CheckFloatConstants" для включения дополнительных проверок выхода за границы буфера, "SampleCount" для настройки принудительного включения сглаживания в приложениях без такой поддержки, "MaxShaderModelHS", "MaxShaderModelDS" и "MaxShaderModelCS" для ограничения уровней модели шейдеров;
- Добавлена поддержка асинхронных загрузчиков данных для D3DX 10 и 11;
- Доработан фреймворк для применения эффектов в D3DX 9: добавлена начальная поддержка прешейдеров (preshader), обеспечено корректное применение состояний эффектов;
-
Звук и видео
- Поддержка GStreamer 1.0 для вывода звука и видео;
- В DirectSound обеспечена поддержка преобразования объёмных форматов звука 5.1 и 4.0 в стерео;
-
Сетевые возможности
- Добавлена поддержка API Web Service (https://en.wikipedia.org/wiki/Web_service). Реализованы обработчики записи и чтения XML, имеется поддержка сериализации различных типов данных. Уровень поддержки API достаточен для проведения online-активации Microsoft Office 2013;
- Увеличена производительность JavaScript. Добавлена поддержка формата JSON. Браузерный движок Gecko обновлён до состояния, соответствующего Firefox 47;
- Добавлена поддержка интернационализованных доменных имён, содержащих символы национальных алфавитов;
- Реализована поддержка различных хэшей SHA через задействование библиотеки GnuTLS;
- В реализацию API Winsock добавлена возможность создания сокетов с флагом IP_DONTFRAGMENT, запрещающим фрагментацию пакетов;
- Обеспечена корректная обработка длинных URL;
-
Ядро
- Представлена новая архитектура драйверов, обеспечивающая поддержку устройств ввода (HID, Human Interface Device). Новая архитектура напоминает модель драйверов Windows, в которой доступны специфичные для платформ bus-драйверы и минидрайверы HID.
- Предоставлена возможность загрузки нескольких драйверов ядра в адресное пространство одного пользовательского процесса;
- Реализована возможность кэширования содержимого каталогов, не зависящая от специфичных для разных платформ системных вызовов;
- Добавлена большая порция новых библиотек API Set (api-ms-win-*);
- Обеспечена эмуляция прерывания 0x2d, используемого для отладочных целей;
-
Встроенные приложения
- В прослойку 'winebrowser' добавлена поддержка передачи нескольких аргументов при запуске браузера или почтового клиента;
- В утилиту 'reg' добавлена команда 'query' с возможностью обработки всех типов данных реестра;
- В просмотрщик системной подсказки 'winhlp32' добавлена поддержка отображения таблиц и изображений;
-
Разное
- Улучшена поддержка 64-разрядных систем: Добавлена возможность запуска 64-разрядых приложений на платформе macOS. Добавлена поддержка 64-разрядного режима в движок Mono. Обеспечена корректная обработка исключений C++ на системах x86-64.
- Добавлена поддержка коросскомпиляции с использованием инструментариев Mingw...
URL: https://www.winehq.org/news/2017012401
Новость: http://www.opennet.me/opennews/art.shtml?num=45911