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

18 января 2018 года

После года разработки и 23 экспериментальных версий представлен стабильный релиз открытой реализации Win32 API - Wine 3.0, который вобрал в себя более 6000 изменений. Из ключевых достижений новой версии отмечается поддержка Direct3D 10 и 11, реализация обособленного потока обработки команд Direct3D, графический драйвер для платформы Android, улучшенная поддержка DirectWrite и Direct2D. Из возможностей, которые отложены до следующей значительной ветки, упоминаются поддержка Direct3D 12, Vulkan и реализация Direct3D через OpenGL ES на платформе Android.

В Wine подтверждена полноценная работа 4580 программ для Windows, еще 3907 программ прекрасно работают при дополнительных настройках и внешних DLL. У 3301 программ наблюдаются небольшие проблемы в работе, которые не мешают использованию основных функций приложений.

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

  • Direct3D
  • Реализована значительная часть возможностей Direct3D 10 и 11, в том числе вычислительные и тесселяционные шейдеры, потоковый вывод, инструкции и модификаторы интерполяции для моделей шейдеров 4 и 5, непрямой (indirect) рендеринг, структурированные и побайтово адресуемые буферы, многослойная отрисовка на трёхмерных текстурах и массивах текстур, создание уровней mip-map и т.д.
  • Реализация обособленного потока обработки команд Direct3D, позволяющего выполнять отрисовку в асинхронном режиме с распараллеливанием на многоядерных системах. В настоящее время работа сосредоточена на обеспечении корректной отрисовки в многопоточном режиме, но в будущем ожидается проведение работы по увеличению производительности. В секцию реестра "HKCU\Software\Wine\Direct3D" добавлен новый ключ

"csmt" (REG_DWORD), через который можно включить (0x1) или выключить (0x0, по умолчанию) поддержку многопоточной обработки команд Direct3D;

  • Улучшена поддержка применения базовых контекстов OpenGL в Direct3D, которые уже используются по умолчанию для обеспечения работы приложений Direct3D 10 и 11 на системах с графическими картами AMD и Intel, что позволяет при наличии OpenGL-драйверов Mesa обойтись без установки в реестре параметра"MaxVersionGL" для включения Direct3D 10 и 11;
  • Увеличено число графических карт, распознаваемых для WineD3D;
  • Графическая подсистема
  • В Direct2D реализована поддержка контуров геометрических объектов, кистей с линейными и радиальными градиентами, вычисления границ геометрических объектов, упрощения геометрических объектов;
  • Обеспечена совместимость Direct2D с GDI;
  • Список поддерживаемых расширений OpenGL обновлён до OpenGL 4.6;
  • Частично реализована библиотека GLU (OpenGL Utility Library). Системная библиотека GLU необходима только при использовании системы рендеринга Nurbs, во всех остальных случаях функции GLU теперь встроены в Wine;
  • В GdiPlus обеспечена обработка графических операций, включающих трансформации;
  • В GdiPlus добавлена поддержка воспроизведения большинства специфичных для GdiPlus типов записей metafile, помимо стандартных записей metafile;
  • В WindowsCodecs добавлена поддержка кодирования форматов изображений, включающих палитру;
  • Обеспечение работы Wine в окружении платформы Android
  • Появилась возможность сборки Wine в виде пакета в формате APK и установки как обычного приложения для Android;
  • Подготовлен полноценный графический драйвер (GDI) для Android. Из-за ограничений API Android возможна работа только в полноэкранном режиме;
  • Реализован полноценный звуковой драйвер для Android;
  • Обеспечена поддержка OpenGL, ограничивающаяся возможностями API OpenGL ES. Direct3D в окружении Android пока не поддерживается, так как не может быть полноценно реализован поверх OpenGL ES;
  • Ядро
  • Заявленная по умолчанию версия Windows поднята до Windows 7;
  • Реализована полная семантика именованных каналов, включая режим обмена сообщениями для именованных каналов. Обработка именованных каналов теперь целиком производится на стороне сервера Wine;
  • Поддержка исполняемых файлов в формате PIE (Position Independent Executables), как для исполняемого файла Wine, так как для запуска внешних исполняемых файлов;
  • Включено автоматическое создание устройств для параллельных и последовательных портов (могут быть переопределены через ключ HKLM\Software\Wine\Ports);
  • Реализован и включен по умолчанию безопасный режим поиска DLL (для отключения следует в разделе реестра HKLM\System\CurrentControlSet\Control\Session Manager установить переменную "SafeDllSearchMode" в 0);
  • Реализован безопасный режим поиска процессов, который отключен по умолчанию (включается через установку переменной HKLM\System\CurrentControlSet\Control\Session Manager\SafeProcessSearchMode в 1);
  • Увеличена производительность асинхронного ввода/вывода благодаря сокращению числа обращений к серверу;
  • На 64-разрядных платформах обеспечена возможность выделения областей виртуальной памяти произвольного размера;
  • Интерфейс пользователя
  • Выполнен редизайн курсоров мыши, которые также предложены в более высоком разрешении для экранов с высокой плотностью пикселей (HiDPI);
  • Для экранов с высокой плотностью пикселей адаптированы Shell Explorer, RichEdit и все основные диалоги;
  • Для переопределения DPI экрана предложена настройка "LogPixels", доступная в секции реестра "HKEY_CURRENT_USER\Control Panel\Desktop";
  • В режиме рабочего стола добавлена поддержка более высоких разрешений с различным коэффициентом соотношения сторон;
  • Реализована панель задач (Task Dialog);
  • В MSI добавлена поддержка внутреннего интерфейса (IUI, Internal User Interface);
  • Добавлен режим отрисовки тем оформления с применением двойной буферизации;
  • В библиотеку TWAIN добавлена поддержка диалога для выбора доступного сканера;
  • Добавлена возможность сохранения в OLE Data Cache платформонезависимых битовых карт и metafile;
  • Интеграция с рабочим столом
  • В desktop-файлах добавлена возможность определения поля StartupWMClass для обеспечения привязки к исполняемому файлу Windows;
  • Для определения изменений в буфере обмена X11-приложений задействована библиотека Xfixes вместо периодической проверки буфера;
  • В компонент RichEdit добавлена поддержка вставки в форме metafile;
  • Добавлена поддержка Progman DDE (компонент с DDE-сервером для Program Manager);
  • Активирован по умолчанию HID-сервис для определения устройств с поддержкой PnP;
  • Для macOS обеспечена поддержка четвёртой версии протокола вывода уведомлений;
  • Текст и шрифты
  • В API Uniscribe добавлена поддержка контекстной замены глифов;
  • Таблицы символов переведены на использование стандарта Unicode 10;
  • Обеспечена совместимость со шрифтовым движком FreeType 2.8.1;
  • DirectWrite
  • Обеспечена симуляция наклонных и жирных начертаний символов;
  • Улучшена обработка разрывов строк;
  • Улучшена отрисовка подчёркиваний;
  • Улучшена поддержка режима работы в оттенках серого;
  • Улучшена поддержка сглаживания и преобразования шрифтов;
  • Реализованы методы применения равномерного и пропорционального межстрочного интервала;
  • Кэш адаптирован для использования в многопоточных приложениях;
  • Реализована поддержка загрузки файлов шрифтов в оперативную память;
  • D3DX
  • Улучшена поддержка прешейдеров (preshader);
  • Добавлена возможность определения движков применения эффектов (ID3DXEffectStateManager) в приложениях D3DX 9;
  • Реализован пул эффектов для совместного использования параметров между разными эффектами D3DX 9;
  • Сетевые возможности
  • В WebServices добавлена поддержка приёма TCP- и UDP-соединений;
  • В Web Services добавлена поддержка протокола .NET Message Framing Protocol и формата .NET Binary Format, включая расширение для таблиц символов;
  • В Web Services включена поддержка приёма сообщений в асинхронном режиме;
  • Переработан код обработчика событий HTML для соответствия стандарту;
  • Добавлена поддержка нескольких стандартных HTML API;
  • В компонент WebBrowser добавлена поддержка файлов MHTML;
  • Улучшена поддержка встраивания HTML-документов в приложения .NET;
  • В WinHTTP налажен корректный разбор атрибутов Cookie;
  • Криптография
  • Добавлена встроенная реализация криптографических хэшей (вместо использования внешней библиотеки GnuTLS);
  • Добавлена поддержка симметричного алгоритма блочного шифрования AES;
  • В список известных сертификатов добавлен корневой сертификат Microsoft от 2011 года;
  • Дополнительные пакеты с Mono и Gecko теперь проверяются при помощи контрольных сумм SHA256;
  • Платформа ARM
  • На системах ARM по умолчанию выставлен ABI 'softfp' для совместимости с исполняемыми файлами Windows;
  • Добавлена поддержка предварительной загрузки (Preloader) на платформе ARM64;
  • Добавлена возможность использования режима отладки relay на системах ARM64;
  • Встроенные приложения
  • В RegEdit для улучшения совместимости с Windows переработаны функции импорта и экспорта реестра. По умолчанию экспорт осуществляется в формате Unicode. 64-разрядные представления в реестре теперь всегда снабжаются 64-разрядными префиксами;
  • В утилиту Reg.exe добавлены операции импорта и экспорта файлов с реестром;
  • В командном интерпретаторе добавлена команда MKLINK и обеспечена поддержка экранирования символов в командной строке;
  • В игре WineMine добавлен вывод диалога подтверждения операции перед сбросом лучших результатов;
  • Инструменты
  • В widl (компилятор IDL) обеспечена обработка возвратов из функций C++ в виде, совместимом с MSVC;
  • В компилятор ресурсов (wrc) добавлена возможность преобразования версий ресурсов через po-файлы;
  • В отладчик (winedbg) добавлена поддержка вывода состояния регистров для SSE и вычислений с плавающей запятой;
  • Все Perl-скрипты, разбирающие XML, переведены на использование модуля XML::LibXML;
  • Удалена устаревшая утилита wineinstall;
  • Разное
  • В XAudio реализована поддержка звуковых форматов с плавающей запятой с числом каналов более двух;
  • В C++ runtime добавлена поддержка Scheduler и аналогичных классов;
  • В ODBC добавлена поддержка установки драйвера SQL;
  • Добавлена поддержка каталога ProgramData;
  • В движок Mono перенесены исправления из основного проекта и добавлена поддержка второй версии API профилирования;
  • В отладочных трассировках обеспечено отображение идентификатора потока;
  • Новые зависимости
  • В число зависимостей включена библиотека krb5, используемая в Kerberos Authentication Package;
  • Для получения уведомления об изменении содержимого буфера обмена задействована библиотека Xfixes.

Источники править


 
 
Creative Commons
Эта статья содержит материалы из статьи «Стабильный релиз Wine 3.0», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.