Стабильный релиз Wine 1.8
После полутора лет разработки и выпуска 56 экспериментальных версий представлен релиз открытой реализации Win32 API — Wine 1.6. С момента прошлой стабильной версии было внесено около 13 тысяч изменений. Выпуск примечателен реализацией DirectWrite, Direct2D и Direct3D 10/11, новым звуковым драйвером для PulseAudio и поддержкой множества новых игр и приложений. В настоящее время подтверждена полноценная работа в Wine 4088 Windows программ, еще 3571 программ прекрасно работают при дополнительных настройках и внешних DLL, у 3134 программ наблюдаются небольшие проблемы в работе, которые не мешают использованию основных функций приложений.
Из изменений, добавленных в процессе подготовки Wine 1.8, можно отметить:
- Графическая подсистема:
- Поддержка программного интерфейса Direct2D. Реализация включает в себя средства отрисовки в поверхности DXGI (DirectX Graphics Infrastructure) и битмапы WIC, геометрические объекты на основе прямых линий и кубических кривых Безье, вывод текста, битмапы и кисти (сплошные, на основе битмапов и непрозрачные).
- Возможность кодирования файлов PNG в чересстрочном режиме;
- Возможность чтения информации о цвете из PNG-файлов;
- В GdiPlus реализована поддержка анимированных GIF;
- Текст и шрифты
- Реализован программный интерфейс DirectWrite. Обеспечена поддержка загрузки файлов со шрифтами, рендеринга, генерации битмапов, работы с формами (shaping), сборки семейств шрифтов через комбинирование похожих шрифтовых начертаний, раскладки текста, сопоставления шрифтов, обработки разрывов строк и двунаправленного текста.
- Возможность синтеза жирных глифов для контурных шрифтов;
- Поддержка определения нескольких замен для одного шрифта через добавление многострочных записей в «HKCU\Software\Wine\Fonts\Replacements»;
- Более точка обработка диапазонов символов в вертикальном тексте за счёт использования таблиц Unicode;
- Таблицы символов на базе стандарта Unicode 8.0.0;
- Во встроенных шрифт Wingdings добавлены дополнительные глифы;
- В API Uniscribe добавлена поддержка сопряжения открывающихся и закрывающихся скобок для Unicode;
- Для более точной отрисовки теста в программе RichEdit задействован API Uniscribe;
- Direct3D
- Поддержка Direct3D 11, уровень реализации которой примерно соответствует поддержке Direct3D 10;
- Возможность выполнения простых графических приложений, использующих API Direct3D 10. На текущем этапе разработки пока остаётся много нереализованных функций, но уже доступны операции обновления ресурсов, распознаются объектные коды (opcode) моделей шейдеров, можно работать с буферами констант, реализованы различные представления ресурсов, объекты и блоки состояния (state objects, state blocks). Для работы Direct3D 10 требуется наличие системы с поддержкой как минимум OpenGL 3.2 и GLSL 1.50;
- Реализована часть интерфейса DXGI 1.1 (DirectX Graphics Infrastructure);
- Обеспечена корректное сворачивание приложений и восстановление режима экрана после потери фокуса;
- Реализованы функции смешивания вершин (vertex blending);
- Возможность задания размеров точке в привязке к вершинам;
- Расширена база данных графических карт wined3d, упрощён код определения графических карт и обеспечено задействование адекватных типовых режимов для нераспознанных карт;
- Реализован режим адресации текстур «mirror once», который может работать через задействование расширения GL_ARB_texture_mirror_clamp_to_edge или GL_EXT_texture_mirror_clamp
- Через расширение GL_ARB_blend_func_extended реализован фактор смешивания D3DBLEND_SRCALPHASAT;
- Для различных операций с текстурами задействованы расширения GL_ARB_sampler_objects и GL_EXT_texture_snorm;
- Введены более жесткие ограничения для формата текстур, что позволяет приложению переключиться на другой формат вместо некорректной обработки текущего;
- Улучшена поддержка Direct3D 9, добавлена возможность использования расширения GL_ARB_timer_query и константы D3DTSS_CONSTANT;
- Поддержка поверхностей NV12, которые могут применяться для вывода видео;
- Поддержка текстур и поверхностей ATI1N, которая реализована через обращение к расширению GL_ARB_texture_compression_rgtc;
- Поддержка интерфейса IDirect3DSwapChain9Ex;
- Добавлены базовые контексты OpenGL и OpenGL ES, а также возможность передачи многопоточных команд OpenGL («CSMT»);
- DirectDraw
- Улучшена реализация вызова SetCooperativeLevel (), что положительно сказалось на качестве работы эксклюзивного режима DirectDraw;
- Обеспечена более корректная работа механизма переключения поверхностей DirectDraw, что затронуло приложения, использующие более одного буфера предварительной отрисовки;
- Улучшены средства обработки палитр в DirectDraw, что улучшило работу приложений, манипулирующих режимами с 8-разрядной глубиной цвета;
- Улучшена поддержка поверхностей «Client memory», которые используются при сжатии текстур;
- Звук и видео
- Реализован звуковой драйвер, работающий через звуковой сервер PulseAudio. Драйвер подключается автоматически при наличии в системе запущенного сервера PulseAudio;
- В реализации DirectSound добавлена поддержка 5.1 surround, которую можно настроить через Winecfg;
- Реализован API XAudio2, который основан на использовании библиотеки OpenAL;
- Реализована седьмая версия API Video Mixing Renderer
- Добавлена поддержка кодирования и сжатия файлов AVI;
- Ядро
- Wine может быть настроен для вывода номера версии Windows, например,'Windows 8.1' или 'Windows 10';
- Реализованы объекты синхронизации событий (Keyed Events) и механизм синхронизации «init once»;
- Реализованы условные переменные;
- Реализованы Slim-блокировки на запись и чтение;
- Для загрузки DLL, библиотек типов и COM-классов задействован механизм активации контекста;
- Поддержка чтения и записи в Windows-устройства и их привязка к существующим Unix-устройствам;
- Поддержка TLS (Thread local storage) для динамически загружаемых библиотек;
- Поддержка обработки заданий;
- Добавлен сервис с планировщиком задач;
- Поддержка кодировки UTF-7;
- Возможность привязки процессов и потоков к определённым процессорным ядрам (affinity);
- Поддержка динамического перехода на зимнее/летнее время (DST, Daylight Saving Time);
- Добавлена эмуляции доступа к USER_SHARED_DATA на платформах x86–64;
- Представлен новый API для управления пулом потоков (thread pool);
- Реализована поддержка OpenMP;
- Предварительная поддержка HID-устройств ввода (Human Interface Device);
- Интерфейс пользователя
- Реализовано опциональное меню Start, для включения которого в настройках рабочего стола (HKCU\Software\Wine\Explorer\Desktops\*) нужно указать «EnableShell» = «Y»;
- В штатном диалоге открытия файла добавлено выподающее меню со списком операций с файлом;
- Обеспечено связывание папки 'My Documents' с директорией 'Documents', при её наличии;
- Поддержка задания тем оформления для полос прокрутки;
- Возможность сохранения и восстановления состояния типовых элементов панели инсрументов;
- Сетевые возможности
- Браузерный движок Gecko обновлён до версии, используемой в Firefox 40. В MSHTML реализовано большое число новых объектов и свойств;
- Поддержка автоматической настройки параметров прокси-сервера;
- При работе RPC поверх HTTP реализованы схемы аутентификации NTLM и Negotiate;
- Частично реализован Web Services API;
- Возможность отмены загрузки дополнений к Gecko и Mono из диалога с прогрессом выполняемой операции;
- Поддержка условной компиляции в JavaScript;
- В VBScript реализованы массивы, математические фунуции и раскрутки исключений (exception unwinding);
- Возможность использования Samba NetAPI для настройки подключения к удалённым сетевым хранилищам (network shares);
- Добавлена DDL с функциями для захвата пакетов (Packet Capture DLL);
- Поддержка вывода уведомлений об изменении состояния сетевого интерфейса;
- В Wininet добавлена поддержка сжатия контента методом Deflate;
- В Windows Sockets добавлен TransmitFile API;
- Улучшена поддержка сервиса передачи файлов BITS;
- Вывод на печать
- Поддержка вертикального текста при печати через драйвер PostScript;
- В драйвере PostScript обеспечена поддержка генерации стандартных имён глифов и
- Улучшена поддержка монохромных принтеров при выводе на печать цветных изображений;
- Встроенные приложения:
- В программе 'taskmgr' обеспечен показ признака выполнения процессов под WoW64;
- В 'regedit' улучшены средства импорта и экспорта файлов с реестром;
- В 'wineconsole' добавлена поддержка настройки вставки и переопределения режима в диалоге настройки;
- Разное
- В драйвере X11 появилась поддержка пятой версии протокола X Drag & Drop;
- В WMI (Windows Management Instrumentation) реализованы дополнительные системные классы WBEM;
- В MSI улучшены средства применения патчей;
- Поддержка свежих версий C/C++ runtime, в том числе новой библиотеки UCRTBASE.
- Многочисленные улучшения, связанные с поддержкой работы на платформе OS X: поддержка 64-разрядной архитектуры, поддержка джойстиков и всех событий мыши, возможность использования полноэкранного режима в стиле Cocoa, поддержка раскрытия окон на весь экран, возможность переключения раскладок клавиатуры, реализация TL (Active Template Library) версий 9, 10 и 11;
- В OLE-хранилище добавлена поддержка блокировки и размера более 4 Гб;
- Возможность загрузки 32-разрядых библиотеки из 64-разрядных программ;
- Для платформы ARM64 реализована поддержка режима WoW64;
- На платформе Android реализована поддержка 64-разрядной архитектуры;
- Возможность сборки разных версий DLL на основе одного набора исходных текстов;
- В число зависимостей включены liblcms2, libnetapi (network shares), libpcap (Packet Capture DLL), libpulse (Pulse Audio driver), OpenAL (XAudio2).
© OpenNet