Стабильный релиз 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;
    • В режиме рабочего стола обеспечен вывод на панели списка работающих приложений с возможностью переключения между ними. Добавлена поддержка менее популярных разрешений экрана (например, 640×400 и 1280×960);
    • Реализована четвёртая версия протокола трансляции уведомлений через системный лоток (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-*);
    • Обеспечена эмуляция прерывания 0×2d, используемого для отладочных целей;
  • Встроенные приложения
    • В прослойку '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.

© OpenNet