Stabile release fan Wine 5.0

Nei in jier fan ûntwikkeling en 28 eksperimintele ferzjes presintearre stabile release fan 'e iepen ymplemintaasje fan' e Win32 API - Wyn 5.0, dy't mear as 7400 feroarings omfette. De wichtichste prestaasjes fan 'e nije ferzje omfetsje de levering fan ynboude Wine-modules yn PE-formaat, stipe foar multi-monitor konfiguraasjes, in nije ymplemintaasje fan' e XAudio2 audio API en stipe foar de Vulkan 1.1 graphics API.

In Wyn befêstige folsleine wurking fan 4869 (in jier lyn 4737) programma foar Windows, oar 4136 (in jier lyn 4045) programma wurket perfekt mei ekstra ynstellings en eksterne DLLs. 3635 programma's hawwe lytse prestaasjesproblemen dy't it gebrûk fan basisapplikaasjefunksjes net bemuoie.

Kaai ynnovaasjes Wyn 5.0:

  • Modules yn PE-formaat
    • Mei de MinGW-kompiler binne de measte Wine-modules no boud yn it útfierbere triemformaat PE (Portable Executable, brûkt op Windows) ynstee fan ELF. It brûken fan PE oplost problemen mei it stypjen fan ferskate kopiear beskerming regelingen dy't ferifiearje de identiteit fan systeem modules op skiif en yn ûnthâld;
    • PE executables wurde no kopiearre nei de ~/.wine ($WINEPREFIX) map ynstee fan it brûken fan dummy DLL triemmen, wêrtroch it spul mear ferlykber is mei echte Windows ynstallaasjes, op kosten fan it konsumearjen fan ekstra skiifromte;
    • Modules omboud ta PE-formaat kinne standert brûke wchar C-funksjes en konstanten mei Unicode (bygelyks L"abc");
    • Wine C runtime hat stipe tafoege foar keppeljen mei binaries boud yn MinGW, dy't standert brûkt wurdt ynstee fan MinGW runtime by it bouwen fan DLL's;
  • Graphics subsysteem
    • Stipe tafoege foar wurkjen mei meardere monitors en grafyske adapters, ynklusyf de mooglikheid om ynstellings dynamysk te feroarjen;
    • De stjoerprogramma foar de Vulkan graphics API is bywurke om te foldwaan oan de Vulkan 1.1.126 spesifikaasje;
    • De WindowsCodecs-bibleteek biedt de mooglikheid om ekstra rasterformaten te konvertearjen, ynklusyf formaten mei in yndeksearre palet;
  • Direkte 3D
    • By it útfieren fan Direct3D-applikaasjes op folslein skerm, wurdt de skermbefeiligingsoprop blokkearre;
    • DXGI (DirectX Graphics Infrastructure) hat stipe tafoege foar it ynformearjen fan in applikaasje as syn finster wurdt minimalisearre, wêrtroch de applikaasje de prestaasjes fan boarne-yntinsive operaasjes kin ferminderje as it finster minimearret;
    • Foar applikaasjes dy't DXGI brûke, is it no mooglik om te wikseljen tusken folslein skerm en finstermodus mei de kombinaasje Alt+Enter;
    • De mooglikheden fan 'e Direct3D 12-ymplemintaasje binne útwreide, bygelyks is d'r no stipe foar it wikseljen tusken folslein skerm en finstermodi, feroarjen fan skermmodi, skaalfergrutting fan útfier en it behearen fan it renderingbufferferfangingsinterval (swap-ynterval);
    • Ferbettere ôfhanneling fan ferskate grinssituaasjes, lykas it gebrûk fan ynfierwearden bûten it berik foar transparânsje- en djiptetests, rendering mei reflekteare tekstueren en buffers, en it brûken fan ferkearde DirectDraw-objekten klipper, it meitsjen fan Direct3-apparaten foar ferkearde finsters, mei sichtbere gebieten wêrfan de minimale parameterwearden gelyk binne oan it maksimum, ensfh.
    • Direct3D 8 en 9 jouwe krekter folgjen "smoarch» gebieten fan laden tekstueren;
    • De grutte fan 'e fereaske adresromte by it laden fan 3D-tekstueren komprimearre mei de S3TC-metoade is fermindere (ynstee fan folslein te laden, wurde tekstueren yn brokken laden).
    • Ynterface útfierd ID3D11Multithread om krityske seksjes te beskermjen yn multi-threaded applikaasjes;
    • Ferskate ferbetterings en reparaasjes yn ferbân mei ljochtberekkeningen binne makke foar âldere DirectDraw-applikaasjes;
    • Oanfoljende oproppen ymplementearre om ynformaasje te krijen oer shaders yn 'e API ShaderReflection;
    • wined3d stipet no blitter CPU-basearre foar it ferwurkjen fan komprimearre boarnen;
    • De databank fan grafyske kaarten erkend yn Direct3D is útwreide;
    • Nije registerkaaien tafoege HKEY_CURRENT_USER\Software\Wine\Direct3D: "shader_backend" (efterkant foar wurkjen mei shaders: "glsl" foar GLSL, "arb" foar ARB vertex / fragmint en "gjin" om shader-stipe út te skeakeljen), "strict_shader_math" ( 0x1 - ynskeakelje, 0x0 - Direct3D shader konverzje útskeakelje). De "UseGLSL" kaai ferwurde (moat "shader_backend" brûke);
  • D3DX
    • Stipe foar it 3D-tekstuerkompresjemeganisme S3TC (S3 Texture Compression) is ymplementearre;
    • Korrekte ymplemintaasjes tafoege fan operaasjes lykas tekstuerfolling en ûnmappenbere oerflakken;
    • Ferskate ferbetterings en reparaasjes binne makke oan it skeppingskader fisuele effekten;
  • Kernel (Windows Kernel Interfaces)
    • De measte fan 'e funksjes brûkt yn Kernel32 binne ferpleatst nei
      KernelBase, folgjende feroarings yn 'e Windows-arsjitektuer;

    • Mooglikheid om 32- en 64-bit DLL's te mingjen yn mappen dy't brûkt wurde foar laden. Soarget derfoar dat biblioteken dy't net oerienkomme mei de hjoeddeistige bitdjipte wurde negearre (32/64), yn gefal fierder lâns it paad is it mooglik om in bibleteek te finen dy't korrekt is foar de aktuele bitdjipte;
    • Foar apparaatbestjoerders is emulaasje fan kernelobjekten ferbettere;
    • Ymplementearre syngronisaasjeobjekten dy't wurkje op kernelnivo, lykas spinsloten, snelle mutexes en fariabelen ferbûn oan in boarne;
    • Soarget derfoar dat applikaasjes korrekt wurde ynformearre oer de batterijstatus;
  • Brûkersynterface en buroblêdyntegraasje
    • Minimalisearre finsters wurde no werjûn mei in titelbalke ynstee fan in Windows 3.1-stylikoan;
    • Nije knopstilen tafoege SplitButton (knop mei in dellûk list fan aksjes) en Kommando Keppelings (keppelings yn dialoochfinsters brûkt om nei de folgjende poadium te gean);
    • Symboalyske keppelings binne makke foar de mappen 'Downloads' en 'Sjabloanen', dy't ferwize nei de oerienkommende mappen op Unix-systemen;
  • Ynput-apparaten
    • By it opstarten wurde de nedige Plug & Play-apparaatbestjoerders ynstalleare en laden;
    • Ferbettere stipe foar spultsje controllers, ynklusyf in mini-joystick (hoed switch), stjoer, gas en rem pedalen.
    • Stipe foar de âlde Linux joystick API brûkt yn Linux kernels foarôfgeand oan ferzje 2.2 is staakt;
  • .NET
    • De Mono-motor is bywurke om 4.9.4 frij te litten en befettet no dielen fan it Windows Presentation Foundation (WPF) ramt;
    • Tafoege de mooglikheid om tafoegings te ynstallearjen mei Mono en Gecko yn ien mienskiplike map, it pleatsen fan bestannen yn 'e /usr/share/wynhierarchy ynstee fan te kopiearjen nei nije foarheaksels;
  • Netwurkfunksjes
    • De Wine Gecko-blêdermotor, dy't brûkt wurdt yn 'e MSHTML-bibleteek, is bywurke om 2.47.1 frij te litten. Stipe foar nije HTML APIs is ymplementearre;
    • MSHTML stipet no SVG-eleminten;
    • In protte nije VBScript-funksjes tafoege (Bygelyks flater- en útsûnderingshannelers, oere, dei, moanne, string, LBound, RegExp.Replace, РScriptTypeInfo_* en ScriptTypeComp_Bind * funksjes, ensfh.);
    • Foarsjoen fan behâld fan koade steat yn VBScript en JScript (skript persistinsje);
    • In earste ymplemintaasje tafoege fan 'e HTTP-tsjinst (WinHTTP) en de assosjearre API (HTTPAPI) foar client- en serverapplikaasjes dy't fersiken ferstjoere en ûntfange mei it HTTP-protokol;
    • Implementearre de mooglikheid om HTTP-proxy-ynstellingen te krijen fia DHCP;
    • Stipe tafoege foar it omlieden fan ferifikaasjefersiken fia de Microsoft Passport-tsjinst;
  • Kryptografy
    • Implementearre stipe foar elliptyske kromme kryptografyske kaaien (ECC) by it brûken fan GnuTLS;
    • De mooglikheid tafoege om kaaien en sertifikaten te ymportearjen fan bestannen yn PFX-formaat;
    • Stipe tafoege foar it kaaigeneraasjeskema basearre op it PBKDF2-wachtwurd;
  • Tekst en lettertypen
    • De DirectWrite API-ymplemintaasje hat stipe tafoege foar OpenType-funksjes relatearre oan glyph posysjonearring, dy't standert ynskeakele binne foar de Latynske styl, ynklusyf kerning;
    • Ferbettere feiligens foar it ferwurkjen fan lettertypegegevens troch de krektens fan ferskate gegevenstabellen te kontrolearjen foardat se se brûke;
    • DirectWrite-ynterfaces binne yn oerienstimming brocht mei de lêste SDK;
  • Lûd en fideo
    • In nije ymplemintaasje fan 'e lûd API is foarsteld XAudio2, boud op basis fan it projekt FAudio. Mei it brûken fan FAudio yn Wine kinne jo hegere lûdskwaliteit yn spultsjes berikke en funksjes brûke lykas folumemixing en avansearre lûdeffekten;
    • In grut oantal nije oproppen binne tafoege oan de ymplemintaasje fan it Media Foundation-ramt, ynklusyf stipe foar ynboude en oanpaste asynchrone wachtrijen, Source Reader API, Media Session, ensfh.
    • It fideo-opfangfilter is oerskeakele op it brûken fan de v4l2 API ynstee fan de v4l1 API, dy't it berik fan stipe kamera's útwreide hat;
    • De ynboude AVI, MPEG-I en WAVE decoders binne fuorthelle, yn stee dêrfan wurde no it systeem GStreamer of QuickTime brûkt;
    • Added in subset fan VMR7 konfiguraasje APIs;
    • Stipe tafoege foar it oanpassen fan it folume fan yndividuele kanalen oan lûdbestjoerders;
  • Ynternasjonalisaasje
    • Unicode-tabellen bywurke nei ferzje 12.1.0;
    • Implementearre stipe foar Unicode-normalisaasje;
    • Foarsjoen fan automatyske ynstallaasje fan 'e geografyske regio (HKEY_CURRENT_USER\Control Panel\International\Geo) basearre op de hjoeddeistige lokaasje;
  • RPC/COM
    • Stipe tafoege foar komplekse struktueren en arrays oan typelib;
    • Inisjele ymplemintaasje tafoege fan Windows Script runtime bibleteek;
    • Inisjele ymplemintaasje tafoege fan 'e ADO (Microsoft ActiveX Data Objects) bibleteek;
  • Ynstallateurs
    • Stipe foar levering fan patches (Patch Files) is ymplementearre foar de MSI-ynstallearder;
    • It hulpprogramma WUSA (Windows Update Standalone Installer) hat no de mooglikheid om updates yn .MSU-formaat te ynstallearjen;
  • ARM platfoarm
    • Foar de ARM64-arsjitektuer is stipe foar stapelûntwikkeling tafoege oan ntdll. Stipe tafoege foar it ferbinen fan eksterne libunwind-biblioteken;
    • Foar de ARM64-arsjitektuer is stipe foar seamless proxies ymplementearre foar objektynterfaces;
  • Untwikkelingsark / Winelib
    • De mooglikheid tafoege om de debugger fan Visual Studio te brûken om applikaasjes op ôfstân te debuggen dy't rinne yn Wine;
    • De DBGENG (Debug Engine) bibleteek is foar in part ymplemintearre;
    • Binaries gearstald foar Windows binne net mear ôfhinklik fan libwine, wêrtroch't se op Windows kinne rinne sûnder ekstra ôfhinklikens;
    • Added '--sysroot' opsje oan Resource Compiler en IDL Compiler om it paad foar koptekstbestannen te bepalen;
    • Opsjes tafoege '-doel', '-wine-objdir', '-wine-objdir' oan winegcc
      '-winebuild' en '-fuse-ld', dy't it opsetten fan 'e omjouwing foar cross-kompilaasje ferienfâldigje;

  • Ynsletten applikaasjes
    • Implementearre in CHCP-hulpprogramma om konsolekodearring te konfigurearjen;
    • It MSIDB-hulpprogramma foar it manipulearjen fan databases yn MSI-formaat is ymplementearre;
  • Optimalisearjen fan prestaasjes
    • Ferskate timing funksjes binne migrearre te brûken hege-optreden systeem timer funksjes, ferminderjen overhead yn de render loop fan in protte spultsjes;
    • De mooglikheid tafoege om Ext4 te brûken yn FS regime wurkje sûnder saaksensibiliteit;
    • De prestaasjes fan it ferwurkjen fan in grut oantal eleminten yn list werjaan dialoochfinsters dy't wurkje yn LBS_NODATA modus is optimalisearre;
    • Tafoege in flugger ymplemintaasje fan SRW sloten (Slim Reader / Writer) foar Linux, oerset nei Futex;
  • Eksterne ôfhinklikens
    • Om modules yn PE-formaat te sammeljen, wurdt de MinGW-w64 cross-compiler brûkt;
    • It ymplementearjen fan XAudio2 fereasket de FAudio-bibleteek;
    • Om triemferoarings op BSD-systemen te folgjen
      de Inotify-bibleteek wurdt brûkt;

    • Om útsûnderingen op it ARM64-platfoarm te behanneljen, is de Unwind-biblioteek fereaske;
    • Ynstee fan Video4Linux1 is de Video4Linux2-bibleteek no ferplicht.

Boarne: opennet.ru

Add a comment