Wine 3.0 już jest: nowe gry z Windowsa dziś ruszą na Linuksie, a kiedyś i na Androidzie
Miało być do końca 2017 roku, no cóż, nie udało się, aleoto już jest. Nowe stabilne Wine 3.0, najnowsze wydanie środowiska,pozwalającego uruchomić oprogramowanie pisane na Windows nasystemach uniksopodobnych, przynosi ponad 6 tysięcy zmian ipoprawek. Podczas gdy opiekunowie najpopularniejszych linuksowychdystrybucji już pracują nad przygotowaniem paczek, użytkownicyArcha czy Manjaro mogą wine sami sobie skompilować. Świeży skryptjuż jest w repozytoriumAUR.
19.01.2018 | aktual.: 19.01.2018 12:02
Grafika 3D, 2D i fonty
Wine 3.0 to przede wszystkim wielki krok naprzód dla linuksowychgraczy. Wydanie przynosi stabilne i dopracowane mechanizmy Direct3D10 i 11, które były wcześniej testowane w gałęzi staging, w tymwsparcie dla shaderów obliczeniowych, nowych etapów potokurenderowania, (hull shader i domain shader), licznych nowychinstrukcji shader modelu 4 i 5, nowych typów buforów,niebezpośrednich wywołań rysowania, współczynnika głębi,mipmappingu i wielu innych.
Poprawiono też wsparcie dla wywołań OpenGL w kontekścieDirect3D, tak by zapewnić wyższą kompatybilność ze sterownikamiMesa dla układów graficznych AMD i Intela – nie będzietrzeba już przy nich ustawiać klucza rejestru MaxVersionGL byaktywować wsparcie dla Direct3D 10 i 11. Baza danych kartgraficznych rozpoznaje też znacznie więcej modeli, a listęrozszerzeń OpenGL zaktualizowano do wersji 4.6 standardu.
[PL] Gry Linux:[PL] Gry Linux: Wiedzmin 3 GOTY wine-3.0-rc2 + wined3d-buffer_create
Domyślnie wyłączona, ale w wielu przypadkach przydatna możeokazać się funkcja wielowątkowego strumienia poleceń (CSMT),która łączy polecenia renderowania Direct3D z różnych wątków wpojedynczy wątek renderowania, celem zachowania poprawnościgrafiki.
Sporo zmian dotyczy grafiki 2D – rysowania obiektów geometriiDirect2D, kompatybilności z Graphics Display Interface, kodowaniaformatów grafiki z zadaną paletą poprzez windowsowe kodeki,rozszerzenia obsługi operacji graficznych GdiPlus. Dodano teżwsparcie dla podstawiania glifów i nowych tabel znaków zgodnych zestandardem Unicode.
Ulepszone wsparcie dla DirectWrite pozwala teraz na nowe trybyrysowania fontów, mamy jednolite i proporcjonalne metodyrozstawiania linii, obsługę symulacji pochyleń i wytłuszczeń,dodano dostępny dla aplikacji loader plików fontów w pamięci,dodano też wsparcie dla śledzenia znaków przycinania w trybachznakowym i słownym.
Android
Wraz z wersją 3.0, Wine staje się pełnoprawną aplikacją naAndroida – można je zbudować jako plik APK, który będzie sięzachowywał jak normalna aplikacja w systemie Google’a.
Wprowadzono też obsługę sterownika graficznego, póki co tylkow trybie pełnoekranowym. To wynik ograniczeń interfejsu zarządzaniaoknami Androida, ale w praktyce chodzi przecież o uruchamianiewindowsowych gier, więc to nie problem. Tak samo Wine obsługuje jużsterownik dźwięku Androida.
Niestety nie ma co liczyć jeszcze na grafikę wymagającąDirect3D na bazie biblioteki OpenGL ES. Wsparcie dla Direct3Dzostanie wprowadzone podczas następnego cyklu prac. W wypadku OpenGLjakieś wsparcie jest, ale jest ograniczone tylko do mobilnegopodzbioru (ES).
Pojawiły się też zmiany dla architektury ARM64, najważniejszejdziś z architektur sprzętowych wspieranych przez Androida,dotyczące obsługi liczb zmiennoprzecinkowych, działania preloaderai debuggera.
Kernel i sieć
Nowe Wine nie jest już (domyślnie) Windowsem XP. Teraz raportujesię jako Windows 7. Przynosi wsparcie dla windowsowego mechanizmukomunikacji międzyprocesowej poprzez potoki ze zdefiniowaną nazwą(named pipes), możliwość uruchamiania binarek PIE (PositionIndependent Executables).
Wine 3.0 automatycznie tworzy teraz urządzenia na porcieszeregowym i równoległym, tworząc odpowiadające im linkisymboliczne, potrafi obsługiwać wiele wersji tej samej bibliotekiDLL, oferuje znacznie większą wydajność w asynchronicznychwywołaniach I/O i pozwala obsłużyć dowolnie duże alokacjepamięci wirtualnej na 64-bitowych systemach.
Web Services obsługują teraz nasłuch protokołów TCP/UDP,wspierają binarny format .NET, mogą asynchronicznie otrzymywaćwiadomości, dodano wsparcie dla wielu standardowych interfejsówHTML, obsługę plików MHTML i osadzanie dokumentów HTML waplikacjach .NET.
Interfejs użytkownika i pulpit
Przeprojektowano wbudowane kursory myszy, te nowe wyglądająznacznie lepiej na ekranach wysokiej rozdzielczości, podobnie jakShell Explorer, kontrolki Rich Edit i okna dialogowe. W trybiedesktopowym wspierane są teraz różne wysokie rozdzielczości wróżnych formatach ekranu. Dodano kontrolkę TaskDialog, wsparciedla podwójnie buforowanego rysowania motywów graficznych, dialogwyboru źródła skanowania i możliwość przechowywania bitmap imetaplików w OLE Data Cache.
Poprawiono też integrację z pulpitami Linuksa i macOS-a. Łatwiejbędzie przypisać okno do posiadającej je aplikacji dziękiautomatycznemu generowaniu gotowych już plików .desktopwskazujących na windowsowy plik binarny, aplikacje windowsowesprawniej powinny chwytać zawartość schowka, dodano możliwośćwklejania metaplików, dodano wsparcie dla protokołu dynamicznejwymiany danych do manipulowania wpisami programów w menu.Automatycznie powinny być teraz też wykrywane urządzenia Plug andPlay poprzez usługę HID.
Co dalej?
Za sprawą wprowadzonych zmian można się spodziewać możliwościuruchomienia przez Wine wielu nowych gier, korzystających z mającegojuż przecież ponad 8 lat interfejsu Direct3D 11, wśród nichtakich tytułów jak Wiedźmin 3, Crysis 2, Deus Ex: Human Revolution(choć tu akurat jest wersja natywna) czy Prey 2017. Możliwe będzieteż uruchomienie Microsoft Office 2016, tak jak to już pokazalideweloperzy CodeWeavers.
Wiele kwestii przełożono na następny cykl deweloperski. Wine4.0 powinno przynieść nam między innymi wsparcie dla Direct3D 12 iVulkana, a także możliwość wykorzystania na Androidzie OpenGL ESdo realizacji poleceń Direct3D.
Przydatne linki
- Wine 3.0 – kodźródłowy(https://dl.winehq.org/wine/source/3.0/wine-3.0.tar.xz)
- Pakiety Wine dla popularnych dystrybucji – listarepozytoriów(https://www.winehq.org/download)
- Skrypt instalacji Wine na Archa i Manjaro – repozytoriumAUR(https://aur.archlinux.org/packages/wine-stable/)
- Instrukcje budowania Wine na macOS-ie – wikiprojektu(https://wiki.winehq.org/MacOS)
- Lista kompatybilności aplikacji Windows – WineHQ