Стабильный релиз 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