Vuoden kehitystyön ja 28 kokeellisen version jälkeen esitetty vakaa julkaisu Win32 API:n avoimesta toteutuksesta - Viini 5.0, joka sisälsi yli 7400 2 muutosta. Uuden version tärkeimpiä saavutuksia ovat sisäänrakennettujen Wine-moduulien toimittaminen PE-muodossa, tuki usean näytön kokoonpanoille, uusi XAudio1.1-audio-API:n toteutus ja tuki Vulkan XNUMX -grafiikkasovellusliittymälle.
Viinissä vahvistettu 4869 (vuosi sitten 4737) Windows-ohjelman täysi toiminta, toiset 4136 (vuosi sitten 4045) ohjelmaa toimivat täydellisesti lisäasetusten ja ulkoisten DLL-tiedostojen kanssa. 3635 XNUMX ohjelmassa on pieniä suorituskykyongelmia, jotka eivät häiritse sovelluksen perustoimintojen käyttöä.
MinGW-kääntäjällä useimmat Wine-moduulit on nyt rakennettu PE (Portable Executable, käytetään Windowsissa) suoritettavassa tiedostomuodossa ELF:n sijaan. PE:n käyttö ratkaisee ongelmia tukemalla erilaisia kopiosuojausjärjestelmiä, jotka varmistavat järjestelmämoduulien identiteetin levyllä ja muistissa;
PE-suoritettavat tiedostot kopioidaan nyt ~/.wine ($WINEPREFIX) -hakemistoon vale-DLL-tiedostojen käyttämisen sijaan, mikä tekee niistä samankaltaisempia kuin oikeita Windows-asennuksia lisälevytilaa kuluttaen;
PE-muotoon muunnetut moduulit voivat käyttää standardia wchar C-funktiot ja vakiot Unicodella (esimerkiksi L"abc");
Wine C runtime on lisännyt tuen linkittämiselle MinGW:hen rakennettuihin binääriin, joita käytetään oletuksena MinGW-ajonajan sijaan DLL-tiedostoja rakennettaessa;
Grafiikka alijärjestelmä
Lisätty tuki useiden näyttöjen ja grafiikkasovittimien kanssa työskentelemiseen, mukaan lukien mahdollisuus muuttaa asetuksia dynaamisesti;
Vulkan-grafiikkasovellusliittymän ohjain on päivitetty vastaamaan Vulkan 1.1.126 -spesifikaatiota;
WindowsCodecs-kirjasto tarjoaa mahdollisuuden muuntaa muita rasterimuotoja, mukaan lukien muodot, joissa on indeksoitu paletti;
Direct3D
Kun suoritat koko näytön Direct3D-sovelluksia, näytönsäästäjäpuhelu estetään;
DXGI (DirectX Graphics Infrastructure) on lisännyt tuen sovellukselle ilmoittamiseen, kun sen ikkuna on pienennetty, minkä ansiosta sovellus voi vähentää resurssiintensiivisten toimintojen suorituskykyä ikkunaa pienennettäessä;
DXGI:tä käyttävissä sovelluksissa on nyt mahdollista vaihtaa koko näytön ja ikkunatilan välillä käyttämällä Alt+Enter-yhdistelmää;
Direct3D 12 -toteutuksen ominaisuuksia on laajennettu, esimerkiksi nyt on tuki koko näytön ja ikkunatilan välillä, näyttötilojen vaihtaminen, lähdön skaalaus ja renderöintipuskurin vaihtovälin (swap interval) hallinta;
Paranneltu erilaisten rajatilanteiden käsittelyä, kuten alueen ulkopuolisten syöttöarvojen käyttö läpinäkyvyys- ja syvyystesteissä, renderöinti heijastuvilla tekstuureilla ja puskureilla sekä väärien DirectDraw-objektien käyttö leikkuri, luoda Direct3-laitteita väärille ikkunoille, käyttämällä näkyviä alueita, joiden minimiparametriarvot ovat yhtä suuria kuin maksimi jne.
Direct3D 8 ja 9 tarjoavat tarkemman seurannan "likainen» ladattujen tekstuurien alueet;
Tarvittavan osoitetilan kokoa ladattaessa S3TC-menetelmällä pakattuja 3D-kuvioita on pienennetty (kokonaan lataamisen sijaan tekstuurit ladataan paloina).
Käyttöliittymä toteutettu ID3D11Multithread kriittisten osien suojaamiseen monisäikeisissä sovelluksissa;
Vanhemmille DirectDraw-sovelluksille on tehty erilaisia valaistuslaskelmiin liittyviä parannuksia ja korjauksia;
Otettiin käyttöön lisäkutsuja saadakseen tietoa API:n Shadereista ShaderReflection;
wined3d tukee nyt kiiltävä CPU-pohjainen pakattujen resurssien käsittelyyn;
Direct3D:ssä tunnistettujen näytönohjainten tietokanta on laajentunut;
Lisätty uudet rekisteriavaimet HKEY_CURRENT_USER\Software\Wine\Direct3D: "shader_backend" (shader_backend) Shadereiden kanssa työskentelyyn: "glsl" GLSL:lle, "arb" ARB-vertexille/fragmentille ja "none" shader-tuen poistamiseksi käytöstä), "strict_shader_math" ( 0x1 - ota käyttöön, 0x0 - poista Direct3D-varjostimen muunnos käytöstä). Käytöstä poistettu "UseGLSL"-avain (pitäisi käyttää "shader_backend");
D3DX
Tuki 3D-tekstuuripakkausmekanismille S3TC (S3 Texture Compression) on otettu käyttöön;
Lisätty oikeat toimintojen toteutukset, kuten tekstuurin täyttö ja kartoittamattomat pinnat;
Luomiskehykseen on tehty erilaisia parannuksia ja korjauksia erikoistehosteet;
Ydin (Windowsin ydinliittymät)
Suurin osa Kernel32:ssa käytetyistä toiminnoista on siirretty
KernelBase Windows-arkkitehtuurin muutosten jälkeen;
Mahdollisuus sekoittaa 32- ja 64-bittisiä DLL-tiedostoja lataamiseen käytetyissä hakemistoissa. Varmistaa, että kirjastot, jotka eivät vastaa nykyistä bittisyvyyttä, ohitetaan (32/64), mikäli polulla kauempana on mahdollista löytää nykyiselle bittisyvyydelle oikea kirjasto;
Laiteajureissa ytimen objektien emulointia on parannettu;
Toteutetut ytimen tasolla toimivat synkronointiobjektit, kuten spin lockit, nopeat mutexet ja resurssiin liitetyt muuttujat;
Varmistaa, että sovellukset saavat oikein tiedon akun tilasta;
Käyttöliittymän ja työpöydän integrointi
Pienennetyt ikkunat näytetään nyt käyttämällä otsikkopalkkia Windows 3.1 -tyylikuvakkeen sijaan;
Lisätty uusia painiketyylejä SplitButton (painike, jossa on avattava toimintoluettelo) ja Komentolinkit (linkkejä valintaikkunoissa käytetään siirtymiseen seuraavaan vaiheeseen);
Lataukset- ja Mallit-kansioille on luotu symboliset linkit, jotka osoittavat vastaaviin Unix-järjestelmien hakemistoihin.
Syöttölaitteet
Käynnistyksen yhteydessä tarvittavat Plug & Play -laiteohjaimet asennetaan ja ladataan.
Parannettu tuki peliohjaimille, mukaan lukien minijoystick (hattukytkin), ohjauspyörä, kaasu- ja jarrupolkimet.
Vanhan Linux-joystick API:n tuki, jota käytettiin Linux-ytimissä ennen versiota 2.2, on lopetettu.
. NET
Mono-moottori on päivitetty versioon 4.9.4, ja se sisältää nyt osia Windows Presentation Foundation (WPF) -kehyksestä;
Lisätty mahdollisuus asentaa lisäosia Monon ja Geckon kanssa yhteen yhteiseen hakemistoon sijoittamalla tiedostot /usr/share/wine-hierarkiaan sen sijaan, että ne olisi kopioitu uusiin etuliitteisiin;
Verkkoominaisuudet
MSHTML-kirjastossa käytettävä Wine Gecko -selainmoottori on päivitetty versioon 2.47.1. Uusien HTML-sovellusliittymien tuki on otettu käyttöön;
MSHTML tukee nyt SVG-elementtejä;
Lisätty monia uusia VBScript-toimintoja (esimerkiksi virhe- ja poikkeuskäsittelijät, tunti-, päivä-, kuukausi-, merkkijono-, LBound-, RegExp.Replace-, РScriptTypeInfo_*- ja ScriptTypeComp_Bind*-funktiot jne.);
Edellyttäen koodin tilan säilyttämistä VBScriptissä ja JScriptissä (scriptin pysyvyys);
Lisätty HTTP-palvelun (WinHTTP) ja siihen liittyvän API (HTTPAPI) ensimmäinen toteutus asiakas- ja palvelinsovelluksille, jotka lähettävät ja vastaanottavat pyyntöjä HTTP-protokollaa käyttäen.
Otettu käyttöön mahdollisuus saada HTTP-välityspalvelinasetukset DHCP:n kautta;
Lisätty tuki todennuspyyntöjen uudelleenohjaamiseen Microsoft Passport -palvelun kautta;
kryptografia
Toteutettu tuki elliptisen käyrän salausavaimille (ECC) GnuTLS:ää käytettäessä;
Lisätty mahdollisuus tuoda avaimia ja varmenteita tiedostoista PFX-muodossa;
Lisätty tuki avainten luontimallille, joka perustuu PBKDF2-salasanaan;
Teksti ja fontit
DirectWrite API -toteutus on lisännyt tuen OpenType-ominaisuuksille, jotka liittyvät kuvioiden paikannus, jotka ovat oletusarvoisesti käytössä latinalaisessa tyylissä, mukaan lukien kerning;
Parempi suojaus fonttitietojen käsittelyssä tarkistamalla eri tietotaulukoiden oikeellisuus ennen niiden käyttöä;
DirectWrite-liitännät on saatettu viimeisimmän SDK:n mukaisiksi;
Ääni ja video
Sound API:lle on ehdotettu uutta toteutusta XAudio2, rakennettu hankkeen pohjalta FAudio. FAudio in Wine avulla voit saavuttaa korkeamman äänenlaadun peleissä ja käyttää ominaisuuksia, kuten äänenvoimakkuuden miksausta ja edistyneitä äänitehosteita;
Media Foundation -kehyksen käyttöönottoon on lisätty suuri määrä uusia puheluita, mukaan lukien tuki sisäänrakennetuille ja mukautetuille asynkronisille jonoille, Source Reader API:lle, Media Sessionille jne.
Videon sieppaussuodatin on vaihdettu käyttämään v4l2 API:ta v4l1 API:n sijaan, mikä on laajentanut tuettujen kameroiden valikoimaa.
Sisäänrakennetut AVI-, MPEG-I- ja WAVE-dekooderit on poistettu, joiden sijaan käytetään nyt GStreamer- tai QuickTime-järjestelmää;
Lisätty osajoukko VMR7-määrityssovellusliittymiä;
Lisätty tuki yksittäisten kanavien äänenvoimakkuuden säätämiseen ääniohjaimiin;
Kansainvälistyminen
Unicode-taulukot päivitetty versioon 12.1.0;
Toteutettu tuki Unicode-normalisoinnille;
Mukana maantieteellisen alueen (HKEY_CURRENT_USER\Control Panel\International\Geo) automaattinen asennus nykyisen kielen perusteella;
RPC/COM
Lisätty tuki monimutkaisille rakenteille ja taulukoille typelibiin;
Lisätty Windows Script runtime -kirjaston käyttöönotto;
Lisätty ADO (Microsoft ActiveX Data Objects) -kirjaston käyttöönotto;
Asentajat
Tuki korjaustiedostojen toimitukselle (Patch Files) on otettu käyttöön MSI-asennusohjelmassa;
WUSA (Windows Update Standalone Installer) -apuohjelmalla on nyt mahdollisuus asentaa päivityksiä .MSU-muodossa.
ARM-alusta
ARM64-arkkitehtuurissa pinon purkamisen tuki on lisätty ntdll-tiedostoon. Lisätty tuki ulkoisten libunwind-kirjastojen yhdistämiseen;
ARM64-arkkitehtuurissa tuki saumattomille välityspalvelimille on toteutettu objektirajapinnoille;
Kehitystyökalut / Winelib
Lisätty mahdollisuus käyttää Visual Studion debuggeria Winessä toimivien sovellusten etäkorjaukseen;
DBGENG (Debug Engine) -kirjasto on osittain toteutettu;
Windowsille käännetyt binaarit eivät enää ole riippuvaisia libwinestä, joten ne voivat toimia Windowsissa ilman lisäriippuvuuksia.
Lisätty '--sysroot' vaihtoehto Resource Compileriin ja IDL Compileriin otsikkotiedostojen polun määrittämiseksi.
Lisätty vaihtoehdot "-target", "-wine-objdir", "-wine-objdir" viinigcc:hen
"—winebuild" ja "-fuse-ld", jotka yksinkertaistavat ristiinkääntämisympäristön luomista;
Sulautetut sovellukset
Otettiin käyttöön CHCP-apuohjelma konsolin koodauksen määrittämiseksi;
MSIDB-apuohjelma tietokantojen käsittelyyn MSI-muodossa on otettu käyttöön;
Suorituskyvyn optimointi
Useita ajoitustoimintoja on siirretty käyttämään korkean suorituskyvyn järjestelmän ajastintoimintoja, mikä vähentää monien pelien renderöintisilmukan ylimääräistä rasitusta.
Lisätty mahdollisuus käyttää Ext4:ää FS:ssä järjestelmä työskennellä ilman kirjainkokoa;
Useiden elementtien käsittelyn suorituskyky LBS_NODATA-tilassa toimivissa luettelonäyttöikkunoissa on optimoitu;
Lisätty nopeampi SRW-lukkojen käyttöönotto (Slim Reader/Writer) Linuxille, käännetty Futexiksi;
Ulkoiset riippuvuudet
Moduulien kokoamiseen PE-muodossa käytetään MinGW-w64-ristikääntäjää;