Стабильный релиз Wine 2.0
25 января 2017 года
После тринадцати месяцев разработки и 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.
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.