21 ianuarie 2020 a fost lansată versiunea stabilă oficială — un instrument gratuit pentru rularea aplicațiilor native Windows în medii UNIX. Este o implementare alternativă, gratuită a Windows API. Acronomul recursiv WINE înseamnă "Wine Is Not an Emulator".
Această versiune beneficiază de aproape un an de dezvoltare și mai mult de 7400 de modificări separate. Dezvoltatorul principal, Alexandre Julliard, subliniază patru:
- Suport pentru module în format PE. Acest lucru rezolvă problemele cu diferite scheme de protecție împotriva copierii, care verifică modulele sistemice pe disc și în memorie.
- Suport pentru mai multe monitoare și mai multe GPU-uri, inclusiv modificarea dinamică a setărilor.
- Reimplementarea XAudio2 pe baza proiectului FAudio, o implementare deschisă a bibliotecilor audio DirectX. Trecerea la FAudio permite obținerea unei calități superioare a sunetului în jocuri, activarea amestecului de volum, efecte sonore extinse și altele.
- Suport pentru Vulkan 1.1.
Mai multe detalii despre noile caracteristici cheie.
Module PE
Cu un compilator MinGW disponibil, majoritatea modulelor Wine sunt acum compilate în format executabil PE (Portable Executable, format binar Windows) în loc de ELF.
Fișierele executabile PE sunt acum copiate în directorul ~/.wine în loc să utilizeze fișiere DLL fictive, ceea ce face ca aplicațiile să semene mai mult cu instalările reale Windows.
Până acum, nu toate modulele au fost convertite în format PE. Lucrările continuă.
Substanța grafică
Așa cum s-a spus anterior, a fost adăugat suport pentru lucrul cu mai multe monitoare și adaptoare grafice.
Driverul Vulkan a fost actualizat la specificațiile Vulkan 1.1.126.
În plus, biblioteca WindowsCodecs acum suportă formate raster suplimentare, inclusiv formate cu paletă indexată.
Direct3D
Aplicațiile Direct3D în modul ecran complet acum blochează apelul screensaver-ului.
Pentru aplicațiile DXGI, a fost implementată posibilitatea de comutare între modul ecran complet și modul fereastră folosind combinația standard Alt+Enter.
Capabilitățile Direct3D 12 au fost extinse: suport pentru comutarea între modul ecran complet și modul fereastră, modificări de moduri de ecran, vizualizări cu scalare și intervale de schimb ale bufferelor de redare (swap interval). Toate aceste funcții au fost deja implementate pentru versiunile anterioare ale Direct3D API.
Participanții proiectului au lucrat cu atenție și au eliminat efectiv sute de erori, îmbunătățind astfel gestionarea Wine în diverse situații-limită. Printre acestea se numără eșantionarea resurselor 2D în eșantionere 3D și invers, aplicarea valorilor inițiale care depășesc intervalele admisibile pentru teste de transparență și adâncime, redarea cu texturi și buffer-uri reflectate, utilizarea clipper-elor incorecte (obiect DirectDraw) și multe altele.
Dimensiunea spațiului de adresare necesar a fost redusă la încărcarea texturilor 3D comprimate prin metoda S3TC (în loc de încărcarea integrală, texturile sunt încărcate în bucăți).
Pentru aplicațiile mai vechi DirectDraw au fost introduse diverse îmbunătățiri și corecturi legate de calculul iluminării.
Baza de plăci grafice recunoscute în Direct3D a fost extinsă.
Rețea și criptografie
Motorul Gecko a fost actualizat la versiunea 2.47.1 pentru a suporta instrumente moderne. A fost implementată o serie de noi API HTML.
În MSHTML a fost implementat suportul pentru elemente SVG.
Au fost adăugate multe funcții noi VBScript (de exemplu, gestionatori de erori și excepții).
A fost implementată posibilitatea de a obține parametrii de configurare HTTP proxy prin DHCP.
În partea de criptografie, a fost implementat suportul pentru cheile criptografice bazate pe curbe eliptice (ECC) prin GnuTLS, adăugând posibilitatea de a importa chei și certificate din fișiere în format PFX, precum și suport pentru schema de generare a cheilor bazată pe parolă PBKDF2.
Adobe Photoshop CS6 sub Wine
Alte inovații importante
- Suport pentru spinlock-uri în nucleul NT.
- Datorită expirării brevetului pentru compresia texturilor DXTn și S3, a devenit posibilă includerea acestora în implementarea default.
- Suport pentru instalarea driverelor plug-and-play.
- Diverse îmbunătățiri în DirectWrite.
- Suport îmbunătățit pentru API-ul Windows Media Foundation.
- O mai bună sincronizare a primitivului datorită implementării pe futex-uri.
- Partajarea Wine-Mono pentru economisirea spațiului în loc de implementarea open-source .NET pentru fiecare.
~/.wine. - Suport pentru Unicode 12.0 și 12.1.
- Implementarea unui serviciu HTTP inițial (HTTP.sys) ca înlocuitor pentru Winsock API și IIS, rezultând o performanță superioară față de Windows Sockets API.
- O mai bună compatibilitate cu debugger-ele Windows.
- Suport îmbunătățit pentru LLVM MinGW și îmbunătățiri în cross-compilarea WineGCC.
Se pot menționa îmbunătățirile din interfața utilizatorului. De exemplu, feroneriile compuse sunt acum afișate prin intermediul unei bare de titlu, nu prin pictograme în stil Windows 3.1. Suportul pentru controller-ele de jocuri a fost îmbunătățit, inclusiv pentru comutatorul hat, volan și pedale.
Decodoarele integrate AVI, MPEG-I și WAVE au fost eliminate din Wine, fiind înlocuite cu sistemele GStreamer sau QuickTime.
A fost adăugată posibilitatea de a aplica debugerul din Visual Studio pentru depanarea de la distanță a aplicațiilor rulate în Wine, biblioteca DBGENG (Debug Engine) a fost parțial implementată, iar dependența de libwine a fost eliminată din fișierele compilate pentru Windows.
Pentru optimizarea performanței, diverse funcții de manipulare a timpului au fost convertite pentru a folosi funcții de sistem de înaltă performanță pentru temporizare, ceea ce a permis reducerea suprasarcinilor în ciclul de redare al multor jocuri. Au fost efectuate și alte optimizări ale performanței.
Lista completă a modificărilor se află la. .
,
se menționează: se menține o bază de date cu aplicații Windows compatibile cu Wine. Iată liderii după :
- Final Fantasy XI
- Adobe Photoshop CS6 (13.0)
- World of Warcraft 8.3.0
- EVE Online Current
- Magic: The Gathering Online 4.x
Se poate presupune că aceste aplicații sunt cele mai frecvent rulate în Wine.
Notă. Lansarea Wine 5.0 este dedicată memoriei lui Józef Kucia, care a decedat tragic în august 2019 la vârsta de 30 de ani, în timp ce explora o peșteră în sudul Poloniei. Józef a fost un participant important în dezvoltarea Direct3D Wine, precum și autor principal al proiectului. În timpul lucrului asupra Wine, el a contribuit cu peste 2500 de patch-uri.

Sursa: habr.com
