Стабильный релиз Wine 2.0


После тринадцати месяцев разработки и 24 экспериментальных версий представлен стабильный релиз открытой реализации Win32 API - Wine 2.0, который вобрал в себя около 6600 изменений. Из ключевых достижений новой версии отмечается реализация всех возможностей, необходимых для запуска Microsoft Office 2013, а также поддержка запуска 64-разрядных Windows-приложений на платформе macOS.

-В Wine подтверждена полноценная работа 4450 программ для Windows, еще 3828 программ прекрасно работают при дополнительных настройках и внешних DLL. У 3185 программ наблюдаются небольшие проблемы в работе, которые не мешают использованию основных функций приложений. Из возможностей, работа над которыми продолжается, но которые не доведены до конца, упомянуты вынос из wined3d отдельного потока для взаимодействия с OpenGL, полная поддержка HID, графические драйверы для платформы Android и режим передачи сообщений для именованных каналов.

-Wine 2.0 стал первым выпуском, подготовленным в рамках нового фиксированного цикла разработки, подразумевающего выпуск значительных релизов раз в год.
-Изменения также затронули и нумерацию версий: каждый значительный релиз отныне будет приводить к увеличению первой цифры в номере версии (2.0.0, 3.0.0, 4.0.0), а обновления к стабильным релизам будут выпускаться с изменением третьей цифры (2.0.1, 2.0.2, 2.0.3).
-Экспериментальные версии, развиваемые в процессе подготовки следующего значительного релиза, будут выпускаться с изменением второй цифры (2.1, 2.2, 2.3).

Ключевые новшества Wine 2.0:

-Текст и шрифты
-Продолжена реализация возможностей программного интерфейса DirectWrite, в том числе добавлена поддержка цветных шрифтов, подчёркивания, эффектов отрисовки, настроек в реестре для замены шрифтов, коллекций EUDC (end-user-defined characters);
-Поддержка встраивания шрифтов в файлы PDF;
-В элементе интерфейса RichEdit реализованы маркированные и нумерованные списки;
-Возможность синтеза глифов в жирном начертании (bold) для растровых шрифтов;
-Приведение таблиц символов в соответствие со стандартом Unicode 9.0.0;
-Графическая подсистема
-В программном интерфейсе 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. Реализованы обработчики записи и чтения 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-w64 Clang и ARM;
-В C++ runtime MSVCIRT расширена поддержка потоков (stream);
В WMI (Windows Management Instrumentation) реализованы дополнительные классы WBEM;
-Улучшена поддержка деинсталляции MSI;
-Добавлены новые внешние зависимости: libudev для поддержки HID, GStreamer 1.0, GnuTLS 2.10 для SHA.
-Дополнение: Доступен Wine Staging 2.0, дополняющий Wine 2.0.