Pas njĂ« viti zhvillimi dhe 30 versioneve eksperimentale, u prezantua lĂ«shimi stabil i implementimit tĂ« hapur tĂ« Win32 API â Wine 7.0, i cili pĂ«rmban mĂ« shumĂ« se 9100 ndryshime. Nga arritjet kryesore tĂ« versionit tĂ« ri pĂ«rmendet kalimi i shumicĂ«s sĂ« moduleve tĂ« Wine nĂ« formatin PE, mbĂ«shtetje pĂ«r tema dizajni, zgjerimi i skemĂ«s pĂ«r joystick-et dhe pajisjet e inputit me ndĂ«rfaqe HID, realizimi i arkitekturĂ«s WoW64 pĂ«r tĂ« ekzekutuar programe 32-bit nĂ« njĂ« ambient 64-bit.
Në Wine, është konfirmuar funksionimi i plotë të 5156 (një vit më parë 5049) programeve për Windows, ndërsa 4312 (një vit më parë 4227) programe funksionojnë përsosur me konfigurime shtesë dhe DLL të jashtme. Tek 3813 programeve (një vit më parë 3703) vërehen probleme të vogla në funksionim, të cilat nuk pengojnë përdorimin e funksioneve kryesore të aplikacioneve.
Risi kryesore të Wine 7.0:
- Module në formatin PE
- Gati të gjitha bibliotekat DLL janë transferuar në përdorimin e formatit të skedarëve ekzekutivë PE (Portable Executable, e përdorur në Windows) në vend të ELF. Përdorimi i PE zgjidh problemet me mbështetjen e ndryshmeve mbrojtëse nga kopjimi, të cilat kryejnë verifikimin e identitetit të moduleve sistemore në disk dhe në memorie.
- ĂshtĂ« implementuar mundĂ«sia e ndĂ«rveprimit tĂ« moduleve PE me bibliotekat Unix duke pĂ«rdorur thirrjen standarde tĂ« sistemit bĂ«rthamĂ« NT, e cila lejon fshehjen e referencĂ«s nĂ« kodin Unix nga debugerĂ«t e Windows dhe ndjekjen e regjistrimit tĂ« rrjedhave.
- DLL-të e integruara tani ngarkohen vetëm kur në disk ekziston skedari përkatës në formatin PE, pavarësisht se a është ajo bibliotekë e vërtetë apo një dummy. Ky ndryshim lejon aplikacionin të shohë gjithmonë lidhjen korrekte me skedarët PE. Për të çaktivizuar këtë sjellje, mund të përdoret variabla e mjedisit WINEBOOTSTRAPMODE.
- WoW64
- ĂshtĂ« realizuar arkitektura WoW64 (Windows-on-Windows 64-bit), e cila lejon ekzekutimin e aplikacioneve Windows 32-bit nĂ« procese Unix 64-bit. MbĂ«shtetja Ă«shtĂ« realizuar pĂ«rmes bashkĂ«ngjitjes sĂ« njĂ« shtrese, e cila transkonverton thirrjet 32-bit NT nĂ« thirrje 64-bit nĂ« NTDLL.
- Shtresat WoW64 janë përgatitur për shumicën e bibliotekave Unix dhe lejojnë moduleve 32-bit në formatin PE të aksesojnë bibliotekat 64-bit Unix. Pas përfundimit të transferimit të të gjitha moduleve në formatin PE, do të ketë mundësinë të ekzekutohen aplikacione Windows 32-bit pa instaluar bibliotekat Unix 32-bit.
- Tematike e dizajnit
- ĂshtĂ« implementuar mbĂ«shtetje pĂ«r temat e dizajnit. NĂ« pĂ«rbĂ«rje pĂ«rfshihen temat e dizajnit "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Ă« gjithave elementeve tĂ« kontrollit tĂ« ndĂ«rfaqes pĂ«rmes temave tĂ« dizajnit. ĂshtĂ« siguruar pĂ«rditĂ«simi automatik i pamjes sĂ« elementeve pas ndryshimit tĂ« temĂ«s sĂ« dizajnit.
- Në të gjitha aplikacionet e integruara të Wine është shtuar mbështetje për temat e dizajnit. Janë bërë adaptime të aplikacioneve për ekranet me densitet të lartë pikselesh (High DPI).
- Sistemi grafik
- ĂshtĂ« shtuar njĂ« bibliotekĂ« e re Win32u, nĂ« tĂ« cilĂ«n janĂ« transferuar pjesĂ« tĂ« bibliotekave GDI32 dhe USER32, tĂ« lidhura me pĂ«rpunimin grafik dhe menaxhimin e dritareve nĂ« nivelin e bĂ«rthamĂ«s. NĂ« tĂ« ardhmen do tĂ« fillojĂ« puna pĂ«r tĂ« transferuar nĂ« Win32u komponentĂ«t e drejtuesve, siç janĂ« winex11.drv dhe winemac.drv.
- Në drejtuesin Vulkan është realizuar mbështetje për specifikimin e API grafik Vulkan 1.2.201.
- ĂshtĂ« ofruar mbĂ«shtetje pĂ«r daljen pĂ«rmes API Direct2D tĂ« objekteve gjeometrike tĂ« shtresuara, me mundĂ«sinĂ« e kontrollit tĂ« treguesve tĂ« goditjes (hit-test).
- Në API Direct2D është realizuar mbështetje fillestare për efektet vizuale që aplikohet duke përdorur ndërfaqen ID2D1Effect.
- Në API Direct2D është shtuar mbështetje për ndërfaqen ID2D1MultiThread, e cila përdoret për të organizuar qasje ekskluzive në burimet në aplikacione shumëfishe.
- NĂ« grupin e bibliotekave WindowsCodecs Ă«shtĂ« realizuar 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 motori i ri i renderimit, i cili bĂ«n transkriptimin e thirrjeve Direct3D nĂ« API-nĂ« grafike Vulkan. NĂ« shumicĂ«n e situatave, niveli i mbĂ«shtetjes pĂ«r Direct3D 10 dhe 11 nĂ« motorin e bazuar nĂ« Vulkan Ă«shtĂ« arritur nĂ« barazim me motorin e vjetĂ«r tĂ« bazuar nĂ« OpenGL. PĂ«r tĂ« aktivizuar motorin e renderimit pĂ«rmes Vulkan, duhet tĂ« vendosni variablĂ«n e regjistrit Direct3D "renderer" nĂ« vlerĂ«n "vulkan".
- Janë realizuar shumë mundësi të Direct3D 10 dhe 11, duke përfshirë kontekstet e vonuara (Deferred Contexts), funksionimin në kontekstin e pajisjeve me objekte të qëndrueshme të gjendjes, zhvendosjet e përhershme në bufe, pastrimin e pamjeve të paqartë të teksteve, kopjimin e të dhënave midis burimeve në formate pa lloj (DXGI_FORMAT_BC3_TYPELESS, DXGI_FORMAT_R32G32B32A32_TYPELESS) etj.
- Të shtuar mbështetje për konfigurime multi-monitor, duke lejuar zgjedhjen e monitorit për shfaqjen e aplikacioneve Direct3D në modalitetin me ekran të plotë.
- NĂ« API DXGI Ă«shtĂ« implementuar mundĂ«sia pĂ«r korrigjimin e gamma-s sĂ« ekranit, e cila mund tĂ« pĂ«rdoret nga aplikacionet e bazuara nĂ« Direct3D 10 dhe 11 pĂ«r tĂ« ndryshuar ndriçimin e ekranit. ĂshtĂ« siguruar nxjerrja e numĂ«ruesve tĂ« bufferĂ«ve virtualĂ« (SwapChain).
- Në Direct3D 12 është shtuar mbështetja për nënshkrimet themelore të versionit 1.1.
- Në kodin e renderimit përmes API Vulkan është rritur efikasiteti i përpunimit të kërkesave kur sistemi ka mbështetje për zgjerimin VK_EXT_host_query_reset.
- ĂshtĂ« shtuar mundĂ«sia pĂ«r tĂ« nxjerrĂ« bufferat virtualĂ« (SwapChain) pĂ«rmes GDI, nĂ«se OpenGL ose Vulkan nuk mund tĂ« pĂ«rdoren pĂ«r shfaqje, pĂ«r shembull, gjatĂ« shfaqjes nĂ« njĂ« dritare nga procese tĂ« ndryshme, si nĂ« programet e bazuara nĂ« frameworkun CEF (Chromium Embedded Framework).
- Me përdorimin e backend-it për shaderat GLSL për udhëzimet e shader-it, është siguruar aplikimi i modifikatorit "precise".
- Në API DirectDraw është shtuar mbështetje për renderimin 3D në memorien sistemike, duke përdorur pajisje programore 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.
- ĂelĂ«si "UseGLSL" Ă«shtĂ« fshirĂ« nga regjistri HKEY_CURRENT_USER\Software\Wine\Direct3D, nĂ« vend tĂ« tij, duke filluar nga Wine 5.0, duhet pĂ«rdorur "shader_backend".
- Për mbështetje të Direct3D 12 tani nevojitet libraria vkd3d me versionin minimal 1.2.
- D3DX
- Në implementimin D3DX 10 është përmirësuar mbështetja për frameworkun e efekteve vizuale dhe është shtuar mbështetje për formatin e imazheve Windows Media Photo (JPEG XR).
- Janë shtuar funksionet për krijimin e teksturave të ofruara në D3DX10, si D3DX10CreateTextureFromMemory().
- Janë implementuar pjesërisht ndërfaqet programore ID3DX10Sprite dhe ID3DX10Font.
- Zëri dhe video
- Në një backend të përbashkët WineGStreamer janë bashkuar shtesat GStreamer për DirectShow dhe frameworkun Media Foundation, çka duhet ta thjeshtëzojë zhvillimin e API-ve të reja për dekodimin e përmbajtjes.
- Në bazën e backend-it WineGStreamer janë realizuar objektet Windows Media për leximin sinkron dhe asinhron.
- Funksionaliteti i frameworkut Media Foundation është përmirësuar më tej, është shtuar mbështetje për funksionalitetin IMFPMediaPlayer, alokuesin e mostrave (sample allocator), është përmirësuar mbështetja për EVR dhe bufferët e vizatimit SAR.
- Biblioteka wineqtdecoder, që ofronte një dekoder për formatin QuickTime (për të gjitha kodekët tani përdoret GStreamer), është fshirë.
- Pajisjet e inputit
- Në mënyrë të konsiderueshme është përmirësuar steku për pajisjet hyrëse që mbështesin protokollin HID (Pajisje të Ndërfaqes Njerëzore), i cili realizon mundësi të tilla si analiza e HID-deskriptorëve, përpunimi i mesazheve HID dhe sigurimi i mini-drejtorëve HID.
- Në back-end-et e drejtorit winebus.sys është përmirësuar translacioni i përshkrimeve të pajisjeve në mesazhe HID.
- Shtuar një back-end të ri DirectInput për joytë, që mbështesin protokollin HID. Realizuar mundësia e përdorimit të efekteve të reagimit në joytë. Përmirësuar panairi i menaxhimit përdorimin e joytë. Optimizuar ndërveprimi me pajisjet që janë të pajtueshme me XInput. Në WinMM mbështetja për joytë është kaluar në DInput, në vend të përdorimit të back-end-it evdev në Linux dhe IOHID në macOS. Shtyry drejtorin e vjetër të joytë winejoystick.drv.
- Në modul DInput janë shtuar teste të reja, të bazuara në përdorimin e pajisjeve virtuale HID dhe që nuk kërkojnë praninë e një pajisjeje fizike.
- Teksti dhe fontet
- Në DirectWrite është shtuar objekti Font Set.
- Në RichEdit është realizuar saktë ndërfaqja TextHost.
- Bërthama (ndërfaqet e bërthamës Windows)
- Kur ekzekutohet njĂ« skedar ekzekutiv tĂ« panjohur nĂ« Wine (p.sh., âwine foo.msiâ) tani thirret start.exe, i cili thĂ«rret menaxherĂ«t e lidhur me llojin e skedarit.
- Shtuar mbështetje për mekanizmat e sinkronizimit NtAlertThreadByThreadId dhe NtWaitForAlertByThreadId, të ngjashme me fajtë në Linux.
- Shtuar mbështetje për objektet e debuggimit NT, të përdorura për debuggimin e funksioneve të bërthamës.
- Shtuar mbështetje për çelësat dinamikë të regjistrit për ruajtjen e të dhënave mbi performancën.
- C Runtime
- Në C runtime është realizuar një grup i plotë i funksioneve matematikore, i cili kryesisht është transferuar nga biblioteka Musl.
- Për të gjitha platformat CPU është siguruar mbështetje e duhur për funksionet për llogaritje me pikën e lëvizshme.
- Mundësitë rrjetë
- ĂshtĂ« pĂ«rmirĂ«suar mĂ«nyra e kompatibilitetit me Internet Explorer 11 (IE11), e cila tani pĂ«rdoret si parazgjedhje pĂ«r pĂ«rpunimin e dokumenteve HTML.
- Në bibliotekën mshtml është realizuar modaliteti JavaScript ES6 (ECMAScript 2015), në të cilin është siguruar mbështetje për mundësi të tilla si shprehja let dhe objekti Map.
- Instalimi i paketave MSI në katalogun e punës të Wine me shtesa për motorin Gecko tani bëhet kur është e nevojshme, në vend që gjatë përditësimit të Wine.
- Shtuar mbështetje për protokollin DTLS.
- Realizuar shërbimi NSI (Interfacë e Dyqanit të Rrjetit), i cili ruan dhe transmeton shërbimeve të tjera informacionin mbi rutat dhe ndërfaqet e rrjetit në kompjuter.
- Përpunuesit e API-së WinSock, si setsockopt dhe getsockopt, janë transferuar në bibliotekën NTDLL dhe në driver-in afd.sys, për t'u përputhur me arkitekturën Windows.
- Tani në katalogun e punës të Wine instalohet skedarë të vetë-rrjetit, si /etc/protocols dhe /etc/networks, në vend që të referohen në databazat e ngjashme të Unix.
- Platforma alternative
- Shtuar mbështetje për pajisjet Apple me çipa ARM M1 (Apple Silicon).
- Për mbështetje të funksioneve BCrypt dhe Secur32 në platformën macOS tani është e nevojshme instalimi i bibliotekës GnuTLS.
- Skedarët ekzekutivë 32-bit për platforma ARM tani ndërtohen në modin Thumb-2, si në Windows. Preloader është angazhuar për të ngarkuar skedarë të tillë.
- Për platforma 32-bit ARM është implementuar mbështetje për nxjerrjen (unwinding) e përjashtimeve.
- Për FreeBSD është zgjeruar numri i kërkesave të mbështetur për informacion të ulët të sistemit, si të dhënat mbi gjendjen e memories dhe nivelin e karikimit të baterisë.
- Aplikacione dhe mjete të ndërtuar brenda
- NĂ« utilitarin reg.exe Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r paraqitjet 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 eksportimin e dump-it të metadata-ve të Windows dhe për të shfaqur informacion të detajuar mbi regjistrat CodeView.
- Në debugger-in Wine Debugger (winedbg) është implementuar mundësia për të debuguar procese 32-bit nga debuguar 64-bit.
- Në kompajlerin IDL (widl) është shtuar mundësia për të ngarkuar biblioteka të integruara në skedarët PE, është siguruar mbështetje për atributet dhe konstrukcionalet specifike të WinRT, si dhe është realizuar kërkimi i bibliotekave të lidhura me platformën.
- Sistemi i ndërtimit
- Në kataloget specifike për arkitekturën e harduerit, bibliotekat tani ruhen me emra që pasqyrojnë 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, që lejon mbështetje për arkitektura të ndryshme në një instalim të vetëm të Wine dhe mbështetje për ndërrimin e Winelib.
- PĂ«r vendosjen e opsioneve nĂ« skedarĂ«t PE qĂ« regjulojnĂ« kalimin nĂ« pĂ«rdorimin e bibliotekave DLL-native, nĂ« winebuild Ă«shtĂ« shtuar flagu ââprefer-native optionâ (pĂ«rpunimi i DLL_WINE_PREATTACH nĂ« DllMain Ă«shtĂ« ndalur).
- Shtuar mbështetje për versionin 4 të formatit të të dhënave të debugimit Dwarf, i cili tani përdoret si parazgjedhje gjatë ndërtimit të bibliotekave Wine.
- është shtuar opsioni "--enable-build-id" për ruajtjen e identifikuesve unike të ndërtimit në skedarët ekzekutiv.
- është shtuar mbështetje për përdorimin e kompajlerit Clang në modalitetin e pajtueshmërisë me MSVC.
- TĂ« tjera
- Emrat e katalogëve standardë në shell-in e përdoruesit (Windows Shell) janë bërë të njëjta me skemën e përdorur që nga Windows Vista, pra, në vend të "My Documents" tani krijohet katalogu "Documents", dhe shumica e të dhënave ruhet në katalogun "AppData".
- Në ndërfaqen për bibliotekën OpenCL, është shtuar mbështetje për specifikimin OpenCL 1.2.
- Në drejtuesin WinSpool është shtuar mbështetje për variacione të ndryshme të përmasave të faqeve gjatë printimit.
- është shtuar mbështetje fillestare për MSDASQL, ofruesin Microsoft OLE DB për drejtuesit ODBC.
- Motori 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 burimeve të teksteve janë integruar bibliotekat Faudio, GSM, LCMS2, LibJPEG, LibJXR, LibMPG123, LibPng, LibTiff, LibXml2, LibXslt dhe Zlib, të cilat janë mbledhur në formatin PE dhe nuk kërkojnë një variant në formatin Unix. Megjithatë, 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
