Ukukhishwa okuzinzile kweWine 5.0

Ngemva konyaka wokuthuthuka nezinguqulo ezingu-28 zokuhlola kwethulwe ukukhululwa okuzinzile kokuqaliswa okuvulekile kwe-Win32 API - I-Wine 5.0, ehlanganisa izinguquko ezingaphezu kuka-7400. Izimpumelelo ezibalulekile zenguqulo entsha zihlanganisa ukulethwa kwamamojula Ewayini akhelwe ngaphakathi ngefomethi ye-PE, ukusekelwa kokulungiselelwa kokuqapha okuningi, ukuqaliswa okusha kwe-XAudio2 audio API kanye nokusekelwa kwe-API yezithombe ze-Vulkan 1.1.

Ewayinini kuqinisekisiwe ukusebenza okugcwele kwe-4869 (onyakeni odlule 4737) izinhlelo ze-Windows, ezinye izinhlelo ezingu-4136 (onyakeni odlule 4045) zisebenza kahle ngezilungiselelo ezengeziwe kanye nama-DLL angaphandle. Izinhlelo ezingu-3635 zinezinkinga zokusebenza ezincane ezingaphazamisi ukusetshenziswa kwemisebenzi yohlelo lokusebenza oluyisisekelo.

Ukhiye emisha Iwayini 5.0:

  • Amamojula ngefomethi ye-PE
    • Nge-MinGW compiler, amamojula amaningi Wewayini manje akhiwe ngefomethi yefayela esebenzisekayo ye-PE (Portable Executable, esetshenziswa ku-Windows) esikhundleni se-ELF. Ukusetshenziswa kwe-PE kuxazulula izinkinga ngokusekela izikimu ezihlukahlukene zokuvikela ikhophi eziqinisekisa ubunikazi bamamojula wesistimu kudiski nasenkumbulweni;
    • Okusebenzisekayo kwe-PE manje sekukopishelwe kusiqondisi ~/.wine ($WINEPREFIX) esikhundleni sokusebenzisa amafayela e-dummy DLL, okwenza izinto zifane kakhulu nokufakwa kwe-Windows kwangempela, ngezindleko zokusebenzisa isikhala sediski esengeziwe;
    • Amamojula aguqulelwe kufomethi ye-PE angasebenzisa okujwayelekile wchar C imisebenzi kanye constants nge Unicode (isibonelo, L"abc");
    • Isikhathi sokusebenza seWine C sengeze usekelo lokuxhumanisa okuhamba ngakubili okwakhiwe ku-MinGW, esetshenziswa ngokuzenzakalelayo esikhundleni sesikhathi sokusebenza se-MinGW lapho kwakhiwa ama-DLL;
  • Isistimu engaphansi yezithombe
    • Ukwesekwa okungeziwe kokusebenza nabaqaphi abaningi nama-adaptha ezithombe, okuhlanganisa ikhono lokushintsha izilungiselelo;
    • Umshayeli we-Vulkan graphics API ubuyekeziwe ukuze uhambisane nokucaciswa kwe-Vulkan 1.1.126;
    • Umtapo wezincwadi weWindowsCodecs unikeza ikhono lokuguqula amafomethi e-raster engeziwe, okuhlanganisa amafomethi anephalethi enenkomba;
  • I-Direct3D
    • Uma usebenzisa izinhlelo zokusebenza ze-Direct3D ezinesikrini esigcwele, ucingo lwesilondolozi sesikrini luyavinjwa;
    • I-DXGI (DirectX Graphics Infrastructure) yengeze usekelo lokwazisa uhlelo lokusebenza uma iwindi layo lincishisiwe, okuvumela uhlelo lokusebenza ukuthi lunciphise ukusebenza kwemisebenzi egxile kwizinsiza lapho kunciphisa iwindi;
    • Ezinhlelweni ezisebenzisa i-DXGI, manje usuyakwazi ukushintsha phakathi kwemodi yesikrini esigcwele neyewindi usebenzisa inhlanganisela ye-Alt+Enter;
    • Amakhono okusetshenziswa kwe-Direct3D 12 anwetshiwe, isibonelo, manje sekukhona ukusekelwa kokushintsha phakathi kwemodi yesikrini esigcwele nesefasiteleni, ukushintsha amamodi esikrini, ukukhishwa kwesikali nokuphatha isikhawu sokushintshwa kwebhafa (isikhawu sokushintsha);
    • Ukuphathwa okuthuthukisiwe kwezimo ezihlukene zemingcele, njengokusebenzisa amanani okufakwayo angaphandle kwebanga okuhlola ukubonisa ngale nokujula, ukunikezela ngemidwebo ebonisiwe namabhafa, nokusebenzisa izinto ezingalungile ze-DirectDraw. isiqeshana, ukudala amadivaysi e-Direct3 amafasitela angalungile, kusetshenziswa izindawo ezibonakalayo amanani azo amancane wepharamitha alingana nobukhulu, njll.
    • I-Direct3D 8 ne-9 ihlinzeka ngomkhondo onembe kakhudlwana "engcolile» izindawo zokuthungwa ezilayishiwe;
    • Usayizi wesikhala sekheli esidingekayo lapho kulayishwa imidwebo ye-3D ecindezelwe kusetshenziswa indlela ye-S3TC yehlisiwe (esikhundleni sokulayisha ngokuphelele, ukuthungwa kulayishwa ngezingcezu).
    • Isixhumi esibonakalayo senziwe I-ID3D11Uchungechunge oluningi ukuvikela izigaba ezibalulekile ezinhlelweni ezinezintambo eziningi;
    • Ukuthuthukiswa nokulungiswa okuhlukahlukene okuhlobene nezibalo zokukhanyisa kwenziwe ezinhlelweni ezindala ze-DirectDraw;
    • Kwenziwe amakholi angeziwe ukuze kutholwe ulwazi mayelana namashadi ku-API I-ShaderReflection;
    • i-wined3d manje isekela i-blitter I-CPU-based yokucubungula izinsiza ezicindezelwe;
    • Isizindalwazi samakhadi wezithombe aqashelwa ku-Direct3D sandisiwe;
    • Kwengezwe okhiye abasha bokubhalisa u-HKEY_CURRENT_USER\Software\Wine\Direct3D: “shader_backend” (i-backend yokusebenza nama-shader: “glsl” ye-GLSL, “arb” ye-ARB vertex/fragment kanye “none” ukukhubaza ukwesekwa kwe-shader), “strict_shader_math” ( 0x1 - vumela, 0x0 - khubaza ukuguqulwa kwe-shader kwe-Direct3D). Kwehliswe ukhiye othi "UseGLSL" (kufanele kusetshenziswe okuthi "shader_backend");
  • I-D3DX
    • Ukusekelwa kwendlela yokucindezela ukuthungwa kwe-3D ye-S3TC (S3 Texture Compression) sekuqalisiwe;
    • Kwengezwe ukusetshenziswa okulungile kwemisebenzi efana nokugcwalisa ukuthungwa kanye nezindawo ezingenakumephuzeka;
    • Ukuthuthukiswa nokulungiswa okuhlukahlukene kwenziwe ohlakeni lokudalwa imiphumela ebonakalayo;
  • I-Kernel (I-Windows Kernel Interfaces)
    • Iningi lemisebenzi esetshenziswe ku-Kernel32 iyiswe kuyo
      I-KernelBase, kulandela izinguquko ekwakhiweni kweWindows;

    • Ikhono lokuhlanganisa ama-DLL angama-32 namabhithi angu-64 kuzinkomba ezisetshenziselwa ukulayisha. Iqinisekisa ukuthi imitapo yolwazi engafani nokujula kwebhithi yamanje ayinakwa (32/64), uma kwenzeka uqhubeka nendlela ungathola umtapo wolwazi ofanele ukujula kwebhithi kwamanje;
    • Kubashayeli bedivayisi, ukulingiswa kwezinto ze-kernel kuthuthukisiwe;
    • Izinto ezisetshenziswayo zokuvumelanisa ezisebenza ezingeni le-kernel, njengama-spin locks, izimungulu ezisheshayo neziguquguqukayo ezinamathiselwe kusisetshenziswa;
    • Iqinisekisa ukuthi izinhlelo zokusebenza zaziswe kahle mayelana nesimo sebhethri;
  • I-interface yomsebenzisi kanye nokuhlanganiswa kwedeskithophu
    • Amawindi ancishisiwe manje aboniswa kusetshenziswa ibha yesihloko kunesithonjana sesitayela seWindows 3.1;
    • Kwengezwe izitayela zezinkinobho ezintsha SplitButton (inkinobho enohlu lokudonsela phansi lwezenzo) kanye Izixhumanisi Zomyalo (izixhumanisi ezisemabhokisini ezingxoxo zisetshenziselwa ukuya esigabeni esilandelayo);
    • Izixhumanisi ezingokomfanekiso zenzelwe amafolda ‘Okulandiwe’ kanye ‘Nezifanekiso’, akhomba kumibhalo ehambisanayo kumasistimu e-Unix;
  • Amadivayisi wokufaka
    • Ekuqaleni, izishayeli ezidingekayo ze-Plug & Play zedivayisi ziyafakwa futhi zilayishwe;
    • Ukusekelwa okuthuthukisiwe kwezilawuli zegeyimu, okuhlanganisa i-mini-joystick (iswishi yesigqoko), isiteringi, amaphedali egesi namabhuleki.
    • Ukusekelwa kwe-Linux joystick API endala esetshenziswa kumakernel e-Linux ngaphambi kwenguqulo 2.2 kunqanyuliwe;
  • .NET
    • Injini ye-Mono ibuyekeziwe ukuze ikhiphe i-4.9.4 futhi manje ihlanganisa izingxenye zohlaka lwe-Windows Presentation Foundation (WPF);
    • Kwengezwe ikhono lokufaka izengezo nge-Mono kanye ne-Gecko kumkhombandlela owodwa ovamile, ibeka amafayela ku-/usr/share/wine hierarchy esikhundleni sokuwakopishela kuziqalo ezintsha;
  • Izici zokuxhumana kwenethiwekhi
    • Injini yesiphequluli se-Wine Gecko, esetshenziswa kulabhulali ye-MSHTML, ibuyekeziwe ukuze kukhishwe i-2.47.1. Ukusekelwa kwama-HTML APIs amasha kuqalisiwe;
    • I-MSHTML manje isekela izakhi ze-SVG;
    • Kwengezwe imisebenzi eminingi emisha ye-VBScript (isibonelo, izibambi zephutha nezihlukile, Ihora, Usuku, Inyanga, Uchungechunge, LBound, RegExp.Replace, РScriptTypeInfo_* kanye nemisebenzi ye-ScriptTypeComp_Bind*, njll.);
    • Kuhlinzekwe ngokulondolozwa kwesimo sekhodi ku-VBScript naku-JScript (ukuphikelela kombhalo);
    • Kwengezwe ukuqaliswa kokuqala kwesevisi ye-HTTP (WinHTTP) kanye ne-API ehambisanayo (HTTPAPI) yezinhlelo zokusebenza zeklayenti neseva ezithumela futhi zamukele izicelo zisebenzisa iphrothokholi ye-HTTP;
    • Isebenzise ikhono lokuthola izilungiselelo zommeleli we-HTTP nge-DHCP;
    • Ukwesekwa okwengeziwe kokuqondisa kabusha izicelo zokuqinisekisa ngesevisi ye-Microsoft Passport;
  • I-Cryptography
    • Usekelo olusetshenzisiwe lokhiye be-cryptographic curve cryptographic (ECC) uma usebenzisa i-GnuTLS;
    • Kwengezwe ikhono lokungenisa okhiye nezitifiketi ezivela kumafayela ngefomethi ye-PFX;
    • Ukwesekwa okwengeziwe kohlelo lokukhiqiza ukhiye olusekelwe kuphasiwedi ye-PBKDF2;
  • Umbhalo namafonti
    • Ukusetshenziswa kwe-DirectWrite API kungeze usekelo lwezici ze-OpenType ezihlobene ukuma kwe-glyph, ezinikwe amandla ngokuzenzakalela kusitayela sesiLatini, okuhlanganisa i-kerning;
    • Ukuphepha okuthuthukisiwe kokucubungula idatha yefonti ngokubheka ukunemba kwamathebula edatha ahlukahlukene ngaphambi kokuwasebenzisa;
    • I-DirectWrite interface yenziwe yahambisana ne-SDK yakamuva;
  • Umsindo nevidiyo
    • Ukuqaliswa okusha kwe-API yomsindo kuhlongoziwe I-XAudio2, eyakhiwe ngesisekelo somsebenzi I-FAudio. Ukusebenzisa i-FAudio ku-Wine kukuvumela ukuthi ufinyelele ikhwalithi ephezulu yomsindo emidlalweni futhi usebenzise izici ezinjengokuxuba ivolumu nemisindo ethuthukisiwe;
    • Inani elikhulu lezingcingo ezintsha zengezwe ekusetshenzisweni kohlaka lweMedia Foundation, okuhlanganisa ukusekelwa kolayini abakhelwe ngaphakathi nangokwezifiso abavumelanayo, i-Source Reader API, i-Media Session, njll.
    • Isihlungi sokuthwebula ividiyo sishintshelwe ekusebenziseni i-v4l2 API esikhundleni se-v4l1 API, esinwebe ububanzi bamakhamera asekelwayo;
    • Amadekhoda akhelwe ngaphakathi e-AVI, MPEG-I kanye ne-WAVE asusiwe, esikhundleni sawo osekusetshenziswa isistimu ye-GStreamer noma i-QuickTime;
    • Kwengezwe isethi engaphansi ye-VMR7 APIs yokucushwa;
    • Ukwesekwa okwengeziwe kokulungisa ivolumu yeziteshi ngazinye kuzishayeli zomsindo;
  • Kwamanye amazwe
    • Amathebula e-Unicode avuselelwe enguqulweni engu-12.1.0;
    • Ukwesekwa okusetshenzisiwe kokujwayelekile kwe-Unicode;
    • Ihlinzeke ngokufakwa okuzenzakalelayo kwesifunda sendawo (HKEY_CURRENT_USER\Control Panel\International\Geo) ngokusekelwe endaweni yamanje;
  • I-RPC/COM
    • Ukwesekwa okwengeziwe kwezakhiwo eziyinkimbinkimbi nama-arrays ku-typelib;
    • Kwengezwe ukuqaliswa kokuqala komtapo wezincwadi we-Windows Script;
    • Kwengezwe ukuqaliswa kokuqala komtapo wezincwadi we-ADO (Microsoft ActiveX Data Objects);
  • Izifaki
    • Ukwesekwa kokulethwa kwamapheshi (Patch Files) kusetshenziswe isifaki se-MSI;
    • Insiza ye-WUSA (Windows Update Standalone Installer) manje isinamandla okufaka izibuyekezo ngefomethi ye-.MSU;
  • Inkundla ye-ARM
    • Ngokwakhiwa kwe-ARM64, ukusekelwa kokuhlehlisa isitaki kungeziwe ku-ntdll. Ukwesekwa okwengeziwe kokuxhuma imitapo yolwazi ye-libunwind;
    • Ngokwakheka kwe-ARM64, usekelo lwama-proxies angenazihibe lusetshenziswa ekuxhumaneni kwento;
  • Amathuluzi Okuthuthukisa / Winelib
    • Kwengezwe amandla okusebenzisa isilungisi sephutha kusuka ku-Visual Studio ukulungisa ukude izinhlelo zokusebenza ezisebenza ngewayini;
    • Umtapo wolwazi we-DBGENG (Debug Engine) usetshenziswe kancane;
    • Amabhinari ahlanganiselwe iWindows akusancikile ku-libwine, okubavumela ukuthi basebenze ku-Windows ngaphandle kokuncika okwengeziwe;
    • Kwengezwe inketho ethi '--sysroot' ku-Resource Compiler kanye ne-IDL Compiler ukuze kunqunywe indlela yamafayela anhlokweni;
    • Izinketho ezingeziwe ‘—target’, ‘—wine-objdir’, ‘—wine-objdir’ to winegcc
      ‘—winebuild’ kanye ‘-fuse-ld’, okwenza kube lula ukumisa indawo ukuze kuhlanganiswe;

  • Izinhlelo zokusebenza ezishumekiwe
    • Kusetshenziswe insiza ye-CHCP ukuze kulungiswe umbhalo wekhonsoli;
    • Insiza ye-MSIDB yokukhohlisa isizindalwazi ngefomethi ye-MSI isiqalisiwe;
  • Ukuthuthukisa ukusebenza
    • Imisebenzi ehlukahlukene yesikhathi ithuthelwe ukuze isebenzise imisebenzi yesibali sikhathi sesistimu esebenza kahle kakhulu, kwehliswa i-overhead ku-loop yokunikezela yemidlalo eminingi;
    • Kwengezwe amandla okusebenzisa i-Ext4 ku-FS umbuso ukusebenza ngaphandle kokuzwela kwecala;
    • Ukusebenza kokucubungula inani elikhulu lama-elementi kuzingxoxo zokubonisa zohlu ezisebenza kumodi ye-LBS_NODATA kuthuthukisiwe;
    • Kwengezwe ukuqaliswa okusheshayo kwezingidi ze-SRW (I-Slim Reader/Writer) ye-Linux, ehunyushwe ku-Futex;
  • Ukuncika kwangaphandle
    • Ukuhlanganisa amamojula ngefomethi ye-PE, i-MinGW-w64 cross-compiler isetshenziswa;
    • Ukusebenzisa i-XAudio2 kudinga umtapo wezincwadi we-FAudio;
    • Ukulandelela izinguquko zefayela ezinhlelweni ze-BSD
      kusetshenziswa umtapo wezincwadi we-Inotify;

    • Ukuze uphathe okuhlukile kuplathifomu ye-ARM64, umtapo we-Unwind uyadingeka;
    • Esikhundleni se-Video4Linux1, umtapo wezincwadi we-Video4Linux2 usuyadingeka.

Source: opennet.ru

Engeza amazwana