Stabiele weergawe van Wine 5.0

Na 'n jaar van ontwikkeling en 28 eksperimentele weergawes aangebied stabiele vrystelling van 'n oop implementering van die Win32 API - Wyn 5.0, wat meer as 7400 2 veranderinge ingesluit het. Die sleutelprestasies van die nuwe weergawe sluit in die lewering van ingeboude wynmodules in PE-formaat, ondersteuning vir multimonitor-konfigurasies, 'n nuwe implementering van die XAudio1.1-klank-API en ondersteuning vir die Vulkan XNUMX-grafiese API.

In Wyn bevestig volle werking van 4869 ('n jaar gelede 4737) programme vir Windows, nog 4136 ('n jaar gelede 4045) programme werk perfek met bykomende instellings en eksterne DLL's. 3635 XNUMX programme het geringe prestasieprobleme wat nie inmeng met die gebruik van basiese toepassingsfunksies nie.

Sleutel innovasies Wyn 5.0:

  • Modules in PE-formaat
    • Met die MinGW-samesteller is die meeste Wynmodules nou gebou in die PE (Portable Executable, gebruik op Windows) uitvoerbare lêerformaat in plaas van ELF. Die gebruik van PE los probleme op met die ondersteuning van verskeie kopiebeskermingskemas wat die identiteit van stelselmodules op skyf en in geheue verifieer;
    • PE-uitvoerbares word nou na die ~/.wine ($WINEPREFIX) gids gekopieer in plaas daarvan om dummy DLL-lêers te gebruik, wat die goed meer soortgelyk maak aan regte Windows-installasies, ten koste van die verbruik van addisionele skyfspasie;
    • Modules omgeskakel na PE-formaat kan standaard gebruik wchar C funksies en konstantes met Unicode (byvoorbeeld, L"abc");
    • Wine C runtime het ondersteuning bygevoeg vir koppeling met binaries gebou in MinGW, wat by verstek gebruik word in plaas van MinGW runtime wanneer DLL's gebou word;
  • Grafiese substelsel
    • Bygevoeg ondersteuning om met veelvuldige monitors en grafiese adapters te werk, insluitend die vermoë om instellings dinamies te verander;
    • Die drywer vir die Vulkan grafiese API is opgedateer om aan die Vulkan 1.1.126 spesifikasie te voldoen;
    • Die WindowsCodecs-biblioteek bied die vermoë om bykomende rasterformate om te skakel, insluitend formate met 'n geïndekseerde palet;
  • Direct3D
    • Wanneer die volskerm Direct3D-toepassings uitgevoer word, word die skermbewaarder-oproep geblokkeer;
    • DXGI (DirectX Graphics Infrastructure) het ondersteuning bygevoeg om 'n toepassing in te lig wanneer sy venster geminimaliseer word, wat die toepassing toelaat om die werkverrigting van hulpbron-intensiewe bedrywighede te verminder wanneer die venster geminimaliseer word;
    • Vir toepassings wat DXGI gebruik, is dit nou moontlik om te skakel tussen volskerm- en venstermodus deur die Alt+Enter-kombinasie te gebruik;
    • Die vermoëns van die Direct3D 12-implementering is uitgebrei, byvoorbeeld, daar is nou ondersteuning vir omskakeling tussen volskerm- en venstermodusse, die verandering van skermmodusse, die skaal van uitset en die bestuur van die leweringbuffervervangingsinterval (ruilinterval);
    • Verbeterde hantering van verskeie grenssituasies, soos die gebruik van buite-reeks invoerwaardes vir deursigtigheid- en dieptetoetse, weergawe met gereflekteerde teksture en buffers, en die gebruik van verkeerde DirectDraw-voorwerpe knipper, skep Direct3-toestelle vir verkeerde vensters, gebruik sigbare areas waarvan die minimum parameterwaardes gelyk is aan die maksimum, ens.
    • Direct3D 8 en 9 bied meer akkurate opsporing "vuil» areas van gelaaide teksture;
    • Die grootte van die vereiste adresspasie wanneer 3D-teksture gelaai word wat met die S3TC-metode saamgepers is, is verminder (in plaas daarvan om heeltemal te laai, word teksture in stukke gelaai).
    • Koppelvlak geïmplementeer ID3D11Multithread om kritieke afdelings in multi-threaded toepassings te beskerm;
    • Verskeie verbeterings en regstellings wat verband hou met beligtingsberekeninge is gemaak vir ouer DirectDraw-toepassings;
    • Bykomende oproepe geïmplementeer om inligting oor shaders in die API te bekom ShaderReflection;
    • wined3d ondersteun nou blitter SVE-gebaseer vir die verwerking van saamgeperste hulpbronne;
    • Die databasis van grafiese kaarte wat in Direct3D erken word, is uitgebrei;
    • Bygevoeg nuwe registersleutels HKEY_CURRENT_USER\Software\Wine\Direct3D: "shader_backend" (agterkant vir werk met shaders: "glsl" vir GLSL, "arb" vir ARB hoekpunt/fragment en "none" om shader ondersteuning te deaktiveer), "strict_shader_math" ( 0x1 - aktiveer, 0x0 - deaktiveer Direct3D shader-omskakeling). Het die "UseGLSL" sleutel opgeskort (moet "shader_backend" gebruik);
  • D3DX
    • Ondersteuning vir die 3D tekstuur kompressie meganisme S3TC (S3 Texture Compression) is geïmplementeer;
    • Bygevoeg korrekte implementering van bewerkings soos tekstuurvulling en onkaartbare oppervlaktes;
    • Verskeie verbeterings en regstellings is aan die skeppingsraamwerk gemaak visuele effekte;
  • Kern (Windows Kernel Interfaces)
    • Die meeste van die funksies wat in Kernel32 gebruik word, is geskuif na
      KernelBase, na veranderinge in die Windows-argitektuur;

    • Vermoë om 32- en 64-bis DLL's te meng in dopgehou wat vir laai gebruik word. Verseker dat biblioteke wat nie by die huidige bisdiepte pas nie geïgnoreer word (32/64), in geval verder langs die pad is dit moontlik om 'n biblioteek te vind wat korrek is vir die huidige bisdiepte;
    • Vir toestelbestuurders is emulasie van kernvoorwerpe verbeter;
    • Geïmplementeerde sinchronisasie-voorwerpe wat op kernvlak werk, soos spinslotte, vinnige mutexes en veranderlikes wat aan 'n hulpbron gekoppel is;
    • Verseker dat toepassings korrek ingelig is oor die batterystatus;
  • Gebruikerskoppelvlak en lessenaarintegrasie
    • Geminimaliseerde vensters word nou vertoon deur 'n titelbalk eerder as 'n Windows 3.1-stylikoon te gebruik;
    • Bygevoeg nuwe knoppie style SplitButton (knoppie met 'n aftreklys van aksies) en Bevelskakels (skakels in dialoogkassies wat gebruik word om na die volgende stadium te beweeg);
    • Simboliese skakels is geskep vir die 'Downloads' en 'Sjablone'-vouers, wat na die ooreenstemmende gidse op Unix-stelsels wys;
  • Toevoertoestelle
    • By opstart word die nodige Plug & Play-toestelbestuurders geïnstalleer en gelaai;
    • Verbeterde ondersteuning vir spelbeheerders, insluitend 'n mini-joystick (hoedskakelaar), stuurwiel, gas- en rempedale.
    • Ondersteuning vir die ou Linux-joystick-API wat voor weergawe 2.2 in Linux-kerne gebruik is, is gestaak;
  • NET.
    • Die Mono-enjin is opgedateer om 4.9.4 vry te stel en sluit nou dele van die Windows Presentation Foundation (WPF) raamwerk in;
    • Het die vermoë bygevoeg om byvoegings met Mono en Gecko in een algemene gids te installeer, en plaas lêers in die /usr/share/wyn-hiërargie in plaas daarvan om dit na nuwe voorvoegsels te kopieer;
  • Netwerk funksies
    • Die Wine Gecko-blaaier-enjin, wat in die MSHTML-biblioteek gebruik word, is opgedateer om 2.47.1 vry te stel. Ondersteuning vir nuwe HTML API's is geïmplementeer;
    • MSHTML ondersteun nou SVG-elemente;
    • Het baie nuwe VBScript-funksies bygevoeg (byvoorbeeld fout- en uitsonderingshanteerders, Uur, Dag, Maand, String, LBound, RegExp.Replace, РScriptTypeInfo_* en ScriptTypeComp_Bind* funksies, ens.);
    • Voorsien bewaring van kodetoestand in VBScript en JScript (skrifvolharding);
    • Bygevoeg 'n aanvanklike implementering van die HTTP-diens (WinHTTP) en die gepaardgaande API (HTTPAPI) vir kliënt- en bedienertoepassings wat versoeke stuur en ontvang deur die HTTP-protokol te gebruik;
    • Implementeer die vermoë om HTTP-instaanbediener-instellings via DHCP te verkry;
    • Bygevoeg ondersteuning vir die herleiding van stawing versoeke deur die Microsoft Passport diens;
  • Kriptografie
    • Geïmplementeerde ondersteuning vir elliptiese kurwe kriptografiese sleutels (ECC) wanneer GnuTLS gebruik word;
    • Bygevoeg die vermoë om sleutels en sertifikate van lêers in PFX-formaat in te voer;
    • Bygevoeg ondersteuning vir die sleutel generering skema gebaseer op die PBKDF2 wagwoord;
  • Teks en lettertipes
    • Die DirectWrite API-implementering het ondersteuning bygevoeg vir OpenType-kenmerke wat verband hou met glyph-posisionering, wat by verstek geaktiveer is vir die Latynse styl, insluitend kerning;
    • Verbeterde sekuriteit vir die verwerking van fontdata deur die korrektheid van verskeie datatabelle na te gaan voordat dit gebruik word;
    • DirectWrite-koppelvlakke is in lyn gebring met die nuutste SDK;
  • Klank en video
    • 'n Nuwe implementering van die klank-API is voorgestel XAudio2, gebou op grond van die projek FAudio. Deur FAudio in Wine te gebruik, kan jy hoër klankgehalte in speletjies bereik en kenmerke soos volumevermenging en gevorderde klankeffekte gebruik;
    • 'n Groot aantal nuwe oproepe is bygevoeg tot die implementering van die Media Foundation-raamwerk, insluitend ondersteuning vir ingeboude en pasgemaakte asynchrone rye, Bronleser-API, Mediasessie, ens.
    • Die video-opnamefilter is oorgeskakel na die gebruik van die v4l2 API in plaas van die v4l1 API, wat die reeks ondersteunde kameras uitgebrei het;
    • Die ingeboude AVI, MPEG-I en WAVE dekodeerders is verwyder, in plaas daarvan word die stelsel GStreamer of QuickTime nou gebruik;
    • Bygevoeg 'n subset van VMR7 konfigurasie API's;
    • Bygevoeg ondersteuning vir die aanpassing van die volume van individuele kanale na klank drywers;
  • Internasionalisering
    • Unicode-tabelle opgedateer na weergawe 12.1.0;
    • Geïmplementeerde ondersteuning vir Unicode-normalisering;
    • Voorsien outomatiese installasie van die geografiese streek (HKEY_CURRENT_USER\Control Panel\International\Geo) gebaseer op die huidige ligging;
  • RPC/COM
    • Bygevoeg ondersteuning vir komplekse strukture en skikkings by typelib;
    • Bygevoeg aanvanklike implementering van Windows Script runtime biblioteek;
    • Bygevoeg aanvanklike implementering van die ADO (Microsoft ActiveX Data Objects) biblioteek;
  • Installeerders
    • Ondersteuning vir aflewering van pleisters (Patch Files) is geïmplementeer vir die MSI-installeerder;
    • Die WUSA (Windows Update Standalone Installer) nut het nou die vermoë om opdaterings in .MSU-formaat te installeer;
  • ARM platform
    • Vir die ARM64-argitektuur is ondersteuning vir stapelafwikkeling by ntdll gevoeg. Bygevoeg ondersteuning vir die koppeling van eksterne libunwind biblioteke;
    • Vir die ARM64-argitektuur is ondersteuning vir naatlose gevolmagtigdes vir objekkoppelvlakke geïmplementeer;
  • Ontwikkelingsgereedskap / Winelib
    • Bygevoeg die vermoë om die ontfouter van Visual Studio te gebruik om toepassings wat in Wine loop, op afstand te ontfout;
    • Die DBGENG (Debug Engine) biblioteek is gedeeltelik geïmplementeer;
    • Binaries wat vir Windows saamgestel is, is nie meer afhanklik van libwine nie, wat hulle toelaat om op Windows te werk sonder bykomende afhanklikhede;
    • Bygevoeg '--sysroot' opsie by Resource Compiler en IDL Compiler om die pad vir koplêers te bepaal;
    • Bygevoeg opsies '-teiken', '-wyn-objdir', '-wyn-objdir' by winegcc
      '-wynbou' en '-fuse-ld', wat die opstel van die omgewing vir kruissamestelling vergemaklik;

  • Ingebedde toepassings
    • 'n CHCP-hulpmiddel geïmplementeer om konsole-kodering op te stel;
    • Die MSIDB-hulpmiddel vir die manipulering van databasisse in MSI-formaat is geïmplementeer;
  • Optimalisering van prestasie
    • Verskeie tydsberekeningfunksies is gemigreer om hoëwerkverrigting-stelseltydhouerfunksies te gebruik, wat die bokoste in die weergawe-lus van baie speletjies verminder;
    • Bygevoeg die vermoë om Ext4 in FS te gebruik regime werk sonder hooflettergevoeligheid;
    • Die werkverrigting van die verwerking van 'n groot aantal elemente in lysvertoondialoogvensters wat in LBS_NODATA-modus werk, is geoptimaliseer;
    • Het 'n vinniger implementering van SRW-slotte (Slim Reader/Writer) vir Linux bygevoeg, vertaal na Futex;
  • Eksterne afhanklikhede
    • Om modules in PE-formaat saam te stel, word die MinGW-w64 kruissamesteller gebruik;
    • Die implementering van XAudio2 vereis die FAudio-biblioteek;
    • Om lêerveranderinge op BSD-stelsels op te spoor
      die Inotify-biblioteek word gebruik;

    • Om uitsonderings op die ARM64-platform te hanteer, word die Ontwikkel-biblioteek vereis;
    • In plaas van Video4Linux1, word die Video4Linux2-biblioteek nou benodig.

Bron: opennet.ru

Voeg 'n opmerking