Pas njĂ« vit zhvillimi dhe 30 versioneve eksperimentale, Ă«shtĂ« lansuar njĂ« version i qĂ«ndrueshĂ«m i implementimit tĂ« hapur tĂ« Win32 API â Wine 7.0, i cili pĂ«rmban mĂ« shumĂ« se 9100 ndryshime. NjĂ« nga arritjet kryesore tĂ« versionit tĂ« ri Ă«shtĂ« pĂ«rkthimi i shumicĂ«s sĂ« moduleve tĂ« Wine nĂ« formatin PE, mbĂ«shtetja pĂ«r tema vizuale, zgjerimi i skenĂ«s pĂ«r joystick-et dhe pajisjet e hyrjes me ndĂ«rfaqe HID, realizimi i arkitekturĂ«s WoW64 pĂ«r tĂ« ekzekutuar programe 32-bit nĂ« njĂ« mjedis 64-bit.
Në Wine konfirmohet funksionimi plotësisht i 5156 (një vit më parë 5049) aplikacioneve për Windows, ndërsa 4312 (një vit më parë 4227) aplikacione funksionojnë shkëlqyeshëm me konfigurime shtesë dhe DLL të jashtme. 3813 aplikacioneve (një vit më parë 3703) kanë disa probleme të vogla në funksionim, të cilat nuk pengojnë përdorimin e funksioneve kryesore të aplikacioneve.
Inovacionet kryesore në Wine 7.0:
- Modulet në formatin PE
- G almost çdo DLL-bibliotekë është konvertuar në përdorimin e formatit të skedarëve ekzekutivë PE (Portable Executable, e aplikuar në Windows) në vend të ELF. Përdorimi i PE zgjidh problemet me mbështetje për skemat e ndryshme mbrojtjeje nga kopjimi, që kryejnë kontrollin e identitetit të moduleve sistemore në disk dhe në memorie.
- ĂshtĂ« realizuar mundĂ«sia e ndĂ«rveprimit tĂ« moduleve PE me bibliotekat Unix duke pĂ«rdorur thirrjen e zakonshme tĂ« sistemit bĂ«rthamĂ« NT, e cila lejon tĂ« fshehĂ« referencĂ«n nĂ« kodin Unix nga debuggers tĂ« Windows dhe tĂ« ndjekĂ« regjistrimin e proceseve.
- DLL-të e integruara tani ngarkohen vetëm nëse në disk ekziston një skedar i përputhshëm në formatin PE, pavarësisht nëse është një bibliotekë e vërtetë apo një pishtar. Kjo ndryshim lejon aplikacionin të shohë gjithmonë lidhjen e saktë me skedarët PE. Për të çaktivizuar këtë sjellje, mund të përdorni variablën e mjedisit WINEBOOTSTRAPMODE.
- WoW64
- ĂshtĂ« realizuar shkalla WoW64 (Windows-on-Windows 64-bit), e cila lejon ekzekutimin e aplikacioneve 32-bit Windows nĂ« procese Unix 64-bit. MbĂ«shtetja Ă«shtĂ« realizuar pĂ«rmes lidhjes sĂ« njĂ« shtrese qĂ« pĂ«rkthehet thirrjet 32-bit tĂ« sistemit NT nĂ« referencat 64-bit nĂ« NTDLL.
- WoW64 katet janë përgatitur për shumicën e bibliotekave Unix dhe lejojnë modulat 32-bit në formatin PE të aksesojnë bibliotekat 64-bit Unix. Pasi të përfundojë përkthimi i të gjithë moduleve në formatin PE, do të jetë e mundur të ekzekutohen aplikacionet Windows 32-bit pa instaluar bibliotekat Unix 32-bit.
- Temat
- ĂshtĂ« realizuar mbĂ«shtetje pĂ«r tema vizuale. NĂ« paketĂ« pĂ«rfshihen temat vizuale "Light", "Blue" dhe "Classic Blue", tĂ« cilat mund tĂ« zgjidhen pĂ«rmes konfiguruesit WineCfg.
- ĂshtĂ« shtuar mundĂ«sia pĂ«r tĂ« personalizuar pamjen e tĂ« gjithĂ« elementeve tĂ« kontrollit tĂ« ndĂ«rfaqes pĂ«rmes temave. ĂshtĂ« siguruar pĂ«rditĂ«sim automatik i pamjes sĂ« elementeve pas ndryshimit tĂ« temĂ«s.
- TĂ« gjitha aplikacionet e integruara nĂ« Wine kanĂ« marrĂ« mbĂ«shtetje pĂ«r temat. ĂshtĂ« bĂ«rĂ« adaptimi i aplikacioneve pĂ«r ekranet me densitet tĂ« lartĂ« pikselash (High DPI).
- Nënshkrimi grafik
- ĂshtĂ« shtuar njĂ« bibliotekĂ« e re Win32u, e cila pĂ«rmban pjesĂ«t e bibliotekave GDI32 dhe USER32, tĂ« lidhura me pĂ«rpunimin grafik dhe menaxhimin e dritareve nĂ« nivelin e bĂ«rthamĂ«s. NĂ« vazhdim do tĂ« fillojĂ« puna pĂ«r transferimin nĂ« Win32u tĂ« komponentĂ«ve tĂ« drejtuesve, tĂ« tillĂ« si winex11.drv dhe winemac.drv.
- Driveri Vulkan ka mbështetje për specifikimin e API-t grafik Vulkan 1.2.201.
- Ofrohet mbështetje për daljen përmes API-t Direct2D për objekte gjeometrike me hije, me mundësinë e verifikimit të përputhjes së klikimit (hit-test).
- Në API-në Direct2D është implementuar mbështetje fillestare për efektet vizuale, të aplikuara duke përdorur ndërfaqen ID2D1Effect.
- Në API-në Direct2D është shtuar mbështetje për ndërfaqen ID2D1MultiThread, e cila përdoret për të organizuar aksesin ekskluziv në burime në aplikacione me shumë fije.
- NĂ« grupin e bibliotekave WindowsCodecs Ă«shtĂ« implementuar mbĂ«shtetje pĂ«r dekodimin e imazheve nĂ« formatin WMP (Windows Media Photo) dhe kodimin e imazheve nĂ« formatin DDS (DirectDraw Surface). ĂshtĂ« ndalur mbĂ«shtetja pĂ«r kodimin e imazheve nĂ« formatin ICNS (pĂ«r macOS), i cili nuk mbĂ«shtetet nĂ« Windows.
- Direct3D
- ĂshtĂ« pĂ«rmirĂ«suar ndjeshĂ«m motorri i ri i renderimit, i cili realizon pĂ«rkthimin e thirrjeve Direct3D nĂ« API grafike Vulkan. NĂ« shumicĂ«n e situatave, niveli i mbĂ«shtetjes Direct3D 10 dhe 11 nĂ« motorin e bazuar nĂ« Vulkan Ă«shtĂ« arritur nĂ« paritet me motorin e vjetĂ«r tĂ« bazuar nĂ« OpenGL. PĂ«r tĂ« aktivizuar motorin e renderimit pĂ«rmes Vulkan, duhen vendosur variablat e regjistrit Direct3D "renderer" nĂ« vlerĂ«n "vulkan".
- Janë realizuar shumë nga funksionalitetet e Direct3D 10 dhe 11, duke përfshirë kontekstet e vonuara (Deferred Contexts), të punuar në kontekstin e pajisjeve, objektet e gjendjes, offsetet e qëndrueshme në buferë, pastrimin e pamjeve të pakontrolluara të teksteve, kopjimin e të dhënave midis burimeve në formate pa lloj (DXGI_FORMAT_BC3_TYPELESS, DXGI_FORMAT_R32G32B32A32_TYPELESS) etj.
- Shtuar mbështetje për konfigurime me shumë monitorë, duke lejuar zgjedhjen e monitorit për paraqitjen e aplikacioneve Direct3D në modin e ekranit të plotë.
- Në API-në DXGI është implementuar mundësia e gamma-korrigjimit të ekranit, e cila mund të aplikohet nga aplikacionet e bazuara në Direct3D 10 dhe 11 për të ndryshuar ndriçimin e ekranit. E mundësuar nxjerrja e numëruesve të frame bufferëve virtualë (SwapChain).
- Në Direct3D 12 është e shtuar mbështetje për nënshkrime rrënjësore versioni 1.1.
- Në kodin e vizatimit përmes API-së Vulkan është përmirësuar efikasiteti i trajtimit të kërkesave kur sistemi mbështet zgjerimin VK_EXT_host_query_reset.
- Shtuar mundësinë e daljes së frame bufferëve virtualë (SwapChain) përmes GDI, nëse OpenGL ose Vulkan nuk mund të përdoren për paraqitje, për shembull, kur jepet në një dritare nga procese të ndryshme, si në programet e bazuara në framework-un CEF (Chromium Embedded Framework).
- Kur përdoret backend-i për shaders GLSL për udhëzimet e shaders, sigurohet aplikimi i modifikatorit "precise".
- Në API-në DirectDraw është shtuar mbështetje për renderimin 3D në memorie të sistemit, duke përdorur pajisje softuerike si "RGB", "MMX" dhe "Ramp".
- Në bazën e kartave grafike Direct3D janë shtuar kartat AMD Radeon RX 5500M, AMD Radeon RX 6800/6800 XT/6900 XT, AMD Van Gogh, Intel UHD Graphics 630 dhe NVIDIA GT 1030.
- Nga regjistri HKEY_CURRENT_USER\Software\Wine\Direct3D është hequr çelësi "UseGLSL", në vend të të cilit, duke filluar nga Wine 5.0, duhet të përdoret "shader_backend".
- Për mbështetje të Direct3D 12 tani është e nevojshme të ketë bibliotekën vkd3d me version më të paktën 1.2.
- D3DX
- Në realizimin e D3DX 10 është përmirësuar mbështetja për kornizën e efekteve vizuale dhe është shtuar mbështetje për formatin e imazheve Windows Media Photo (JPEG XR).
- Jane shtuar funksionet e ofruara në D3DX10 për krijimin e teksturave, si D3DX10CreateTextureFromMemory().
- Pjesërisht janë realizuar ndërfaqet programore ID3DX10Sprite dhe ID3DX10Font.
- Të dhënat dhe video
- Në një backend të përbashkët WineGStreamer janë bashkuar shtesat GStreamer për DirectShow dhe kornizën Media Foundation, gjë që duhet ta thjeshtojë zhvillimin e API-ve të reja për dekodimin e përmbajtjes.
- Objektet e Windows Media për lexim sinqanik dhe asinhronik janë realizuar mbi bazën e backend-it WineGStreamer.
- Përmirësimi i realizimit të kornizës Media Foundation është vazhduar, duke shtuar mbështetje për funksionalitetin IMFPMediaPlayer, alokuesin e mostrave (sample allocator), si dhe përmirësuar mbështetje për EVR dhe buferat e vizatimit SAR.
- Biblioteka wineqtdecoder, e cila ofronte një dekoder për formatin QuickTime (për të gjitha kodekët tani përdoret GStreamer), është eliminuar.
- Pajisjet hyrëse
- Ădo pĂ«rmirĂ«sim Ă«shtĂ« bĂ«rĂ« nĂ« kĂ«tĂ« grup, duke pĂ«rfshirĂ« analizĂ«n e deskriptorĂ«ve HID, pĂ«rpunimin e mesazheve HID dhe ofrimin e mini-drejtorive HID pĂ«r pajisjet qĂ« mbĂ«shtesin protokollin HID (Dispositive tĂ« NdĂ«rfaqes NjerĂ«zore).
- Në backend-in e drayivarit winebus.sys, është përmirësuar përkthimi i përshkrimeve të pajisjeve në mesazhe HID.
- Një backend i ri DirectInput për joypad-et që mbështesin protokollin HID është shtuar. Janë realizuar mundësitë e përdorimit të efekteve të reagimit në joystick-e. paneli i menaxhimit Përmirësuar është optimizimi i bashkëpunimit me pajisjet që janë të pajtueshme me XInput. Në WinMM, mbështetje për joypad-et është transferuar në DInput, në vend të përdorimit të backend-it evdev në Linux dhe IOHID në macOS. Drayvari i vjetër i joystick-ëve, winejoystick.drv, është eliminuar.
- Në modul DInput janë shtuar teste të reja që bazohen në përdorimin e pajisjeve virtuale HID dhe nuk kërkojnë një pajisje fizike.
- Teksti dhe fontet
- Në DirectWrite është shtuar objekti Font Set.
- Në RichEdit është implementuar saktësisht interfaci TextHost.
- Kernel (ndërfaqet e kernelit Windows)
- Kur nisni njĂ« skedar ekzekutiv tĂ« paidentifikuar nĂ« Wine (p.sh. âwine foo.msiâ), tani thirret start.exe, e cila thotĂ« menaxherĂ«t e lidhur me llojin e skedarit.
- Shtuar mbĂ«shtetje pĂ«r mekanizmat e sinkronizimit NtAlertThreadByThreadId dhe NtWaitForAlertByThreadId, tĂ« ngjashĂ«m me fjeh – nĂ« Linux.
- Shtuar mbështetje për objektet debugging NT, të përdorura për debugging të funksioneve të bërthamës.
- Shtuar mbështetje për çelësat dinamikë të regjistrit për ruajtjen e të dhënave në lidhje me performancën.
- C Runtime
- Në C runtime është implementuar një grup i plotë i funksioneve matematikore, i cili është transferuar kryesisht nga biblioteka Musl.
- Për të gjitha platformat CPU është siguruar mbështetje e saktë për funksionet për llogaritjet me pikë float.
- Aftësitë rrjetërore
- Përmirësuar është moda e kompatibilitetit me Internet Explorer 11 (IE11), e cila tani përdoret si parazgjedhje për përpunimin e dokumenteve HTML.
- Biblioteka mshtml tani JavaScript në modalitetin ES6 (ECMAScript 2015), i cili mbështet mundësi të tilla si shprehja let dhe objekti Map.
- Instalimi i paketave MSI të Wine në katalogun e punës me shtesat për motorin Gecko tani bëhet sipas nevojës, jo gjatë përditësimit të Wine.
- Shtuar mbështetje për protokollin DTLS.
- Shërbimi NSI (Interface për Dyqanin e Rrjetit) është realizuar, duke ruajtur dhe transmetuar informacion për rrugëtimin dhe ndërfaqet rrjetësore në kompjuter.
- Përpunuesit e API-së WinSock, si setsockopt dhe getsockopt, janë transferuar në bibliotekën NTDLL dhe drejtuesin afd.sys, për të përputhur arkitekturën e Windows.
- Tani në katalogun e punës të Wine instalohen skedarët e veta me databaza rrjetesh, si /etc/protocols dhe /etc/networks, në vend të referimit në databaza të ngjashme Unix.
- Platforma alternative
- Shtuar mbështetje për pajisjet Apple të bazuara në çipin ARM M1 (Apple Silicon).
- Për të mbështetur funksionet BCrypt dhe Secur32 në platformën macOS, tani kërkohet instalimi i bibliotekës GnuTLS.
- Skedarët ekzekutivë 32-bit për platforma ARM tani kompilohen në modalitetin Thumb-2, në një mënyrë të ngjashme me Windows. Një preloader përdoret për ngarkimin e skedarëve të tillë.
- Për platformat 32-bit ARM është implementuar mbështetje për shfaqjen (unwinding) e përjashtimeve.
- Për FreeBSD është zgjeruar numri i thirrjeve të mbështetura për informacionin e ulët të sistemit, si të dhënat mbi gjendjen e memories dhe nivelin e karikimit të baterisë.
- Aplikacione dhe mjete të integruara për zhvillimin
- NĂ« utilitarin reg.exe Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r pĂ«rfaqĂ«simet 32 dhe 64-bit tĂ« regjistrit. ĂshtĂ« shtuar mbĂ«shtetje pĂ«r kopjimin e çelĂ«save tĂ« regjistrit.
- Në utilitarin WineDump është shtuar mbështetje për output-in e dump-it të metadata-s së Windows dhe për të treguar informacion të detajuar rreth shënimeve të CodeView.
- Në debugin e Wine Debugger (winedbg) është realizuar mundësia e debugin të proceseve 32-bit nga debugin i 64-bit.
- Në kompilatorin IDL (widl) është shtuar mundësia e ngarkimit të biblioteka të integruara në skedarët PE, është siguruar mbështetje për atribute dhe konstrukte specifike për WinRT, si dhe është realizuar kërkimi për biblioteka në lidhje me platformën.
- Sistemi i ndërtimit
- NĂ« katalogĂ«t specifikĂ« pĂ«r arkitekturĂ«n e harduerit, bibliotekat tani ruhet me emra qĂ« reflektojnĂ« arkitekturĂ«n dhe llojin e skedarĂ«ve ekzekutivĂ«, pĂ«r shembull, âi386-windowsâ pĂ«r formatin PE dhe âx86_64-unixâ pĂ«r bibliotekat unix, gjĂ« qĂ« mundĂ«son mbĂ«shtetje pĂ«r arkitektura tĂ« ndryshme nĂ« njĂ« instalim tĂ« vetĂ«m Wine dhe siguron ndĂ«rkompilimin e Winelib.
- PĂ«r tĂ« vendosur nĂ« titujt e skedarĂ«ve PE opsionin qĂ« rregullon kalimin nĂ« pĂ«rdorimin e bibliotekave DLL native, nĂ« winebuild Ă«shtĂ« shtuar flamuri ââprefer-native optionâ (pĂ«rpunimi DLL_WINE_PREATTACH nĂ« DllMain Ă«shtĂ« ndĂ«rprerĂ«).
- Shtuar mbështetje për versionin 4 të formatit të të dhënave të dekompozimit Dwarf, i cili tani përdoret si default gjatë ndërtimit të bibliotekave Wine.
- ĂshtĂ« shtuar njĂ« opsion ndĂ«rtimi ââenable-build-idâ pĂ«r ruajtjen nĂ« skedarĂ«t ekzekutivĂ« tĂ« identifikatorĂ«ve unikĂ« tĂ« ndĂ«rtimit.
- Shtuar mbështetje për përdorimin e kompajlerit Clang në modin e kompatibilitetit me MSVC.
- TĂ« tjera
- Emrat e katalogĂ«ve tipikĂ« nĂ« ndĂ«rfaqen e pĂ«rdoruesit (Windows Shell) janĂ« sjellĂ« nĂ« skemĂ«n qĂ« aplikohet qĂ« nga Windows Vista, pra nĂ« vend tĂ« âMy Documentsâ tani krijohet katalogu âDocumentsâ, ndĂ«rsa shumica e tĂ« dhĂ«nave ruhet nĂ« katalogun âAppDataâ.
- Në shtresën për bibliotekën OpenCL është shtuar mbështetje për specifikimin OpenCL 1.2.
- Në drejtuesin WinSpool është shtuar mbështetje për variante të ndryshme të madhësive të faqeve gjatë printimit.
- ĂshtĂ« shtuar mbĂ«shtetje fillestare pĂ«r MSDASQL, ofruesin Microsoft OLE DB pĂ«r drejtuesit ODBC.
- Mënyra Wine Mono me implementimin e platformës .NET është përditësuar në versionin 7.0.0.
- Të dhënat Unicode janë përditësuar në specifikimin Unicode 14.
- Në pemën e teksteve burimore janë integruar bibliotekat Faudio, GSM, LCMS2, LibJPEG, LibJXR, LibMPG123, LibPng, LibTiff, LibXml2, LibXslt dhe Zlib, të cilat mblidhen në formatin PE dhe nuk kërkojnë një version në formatin Unix. Këto biblioteka gjithashtu mund të importohen nga sistemi për të përdorur ndërtimet e jashtme në vend të varianteve të integruara PE.
Burimi: opennet.ru
