Dopu un annu di sviluppu è 30 versioni sperimentali, una liberazione stabile di l'implementazione aperta di l'API Win32 hè stata presentata - Wine 7.0, chì incorpore più di 9100 cambiamenti. I rializazioni chjave di a nova versione includenu a traduzzione di a maiò parte di i moduli Wine in formatu PE, supportu per i temi, espansione di a pila per joysticks è dispositivi di input cù una interfaccia HID, è implementazione di l'architettura WoW64 per eseguisce prugrammi 32-bit in un Ambiente 64-bit.
Wine hà cunfirmatu u funziunamentu cumpletu di 5156 (un annu fà 5049) prugrammi per Windows, un altru 4312 (un annu fà 4227) i prugrammi funzionanu perfettamente cù paràmetri supplementari è DLL esterni. I prugrammi 3813 (3703 anni fà) anu prublemi operativi minori chì ùn interferiscenu micca cù l'usu di e funzioni principali di l'applicazioni.
Innuvazioni chjave in Wine 7.0:
- Moduli in formatu PE
- Quasi tutti i DLL sò stati cunvertiti per utilizà u formatu di file eseguibile PE (Portable Executable, utilizatu in Windows) invece di ELF. L'usu di PE risolve i prublemi cù u sustegnu di diversi schemi di prutezzione di copia chì verificanu l'identità di i moduli di u sistema in u discu è in memoria.
- A capacità di interagisce cù i moduli PE cù biblioteche Unix utilizendu a chjama di u sistema di kernel standard NT hè stata implementata, chì vi permette di ammuccià l'accessu à u codice Unix da i debuggers di Windows è di monitorà a registrazione di filu.
- I DLL integrati sò avà caricati solu s'ellu ci hè un schedariu PE currispundente nantu à u discu, indipendentemente da s'ellu hè una vera biblioteca o un stub. Questa mudificazione permette à l'applicazione di vede sempre u ligame currettu à i schedari PE. Per disattivà stu cumpurtamentu, pudete aduprà a variabile d'ambiente WINEBOOTSTRAPMODE.
- WoW64
- L'architettura WoW64 (64-bit Windows-on-Windows) hè stata implementata, chì vi permette di eseguisce applicazioni Windows 32-bit in prucessi Unix 64-bit. U supportu hè implementatu per via di a cunnessione di una capa chì traduce e chjama di u sistema NT 32-bit in chjamate 64-bit à NTDLL.
- I strati WoW64 sò preparati per a maiò parte di e librerie Unix è permettenu à i moduli PE di 32-bit accede à e librerie Unix di 64 bit. Una volta chì tutti i moduli sò stati cunvertiti in u formatu PE, serà pussibule eseguisce applicazioni Windows 32-bit senza installà librerie Unix 32-bit.
- Temi
- U supportu tematicu hè statu implementatu. I temi di cuncepimentu "Light", "Blue" è "Classic Blue" sò inclusi, chì ponu esse selezziunati attraversu u configuratore WineCfg.
- Aggiunta a capacità di persunalizà l'apparenza di tutti i cuntrolli di l'interfaccia attraversu temi. L'aspettu di l'elementi hè aghjurnatu automaticamente dopu avè cambiatu u tema di u disignu.
- U supportu di u tema hè statu aghjuntu à tutte l'applicazioni Wine integrate. L'applicazioni sò state adattate à schermi cù alta densità di pixel (High DPI).
- Sottusistema graficu
- Una nova biblioteca Win32u hè stata aghjunta, chì include parte di e librerie GDI32 è USER32 relative à u processu graficu è a gestione di a finestra à u livellu di u kernel. In u futuru, u travagliu cumincià à portà i cumpunenti di u driver cum'è winex32.drv è winemac.drv à Win11u.
- U driver Vulkan supporta a specificazione di l'API grafica Vulkan 1.2.201.
- Fornitu supportu per l'output di l'uggetti geometrichi scavati via l'API Direct2D, cù a capacità di verificà se un clic hits (hit-test).
- L'API Direct2D furnisce un supportu iniziale per l'effetti visuali applicati cù l'interfaccia ID2D1Effect.
- L'API Direct2D hà aghjustatu supportu per l'interfaccia ID2D1MultiThread, chì hè utilizata per urganizà l'accessu esclusivu à e risorse in applicazioni multi-thread.
- U settore di biblioteche WindowsCodecs furnisce supportu per decodificà l'imaghjini in u formatu WMP (Windows Media Photo) è l'imaghjini di codificazione in u formatu DDS (DirectDraw Surface). Ùn supportemu più l'imàgine di codificazione in u formatu ICNS (per macOS), chì ùn hè micca supportatu in Windows.
- Direct3D
- U novu mutore di rendering hè statu migliuratu significativamente, traducendu e chjama Direct3D à l'API grafica Vulkan. In a maiò parte di situazione, u livellu di supportu per Direct3D 10 è 11 in u mutore basatu in Vulkan hè statu purtatu à parità cù u vechju mutore basatu in OpenGL. Per attivà u mutore di rendering Vulkan, stabilisce a variabile di registru Direct3D "renderer" à "vulkan".
- Parechje caratteristiche di Direct3D 10 è 11 sò implementate, cumpresi Cuntestazioni Deferred, oggetti statali chì operanu in u cuntestu di u dispositivu, offsets persistenti in buffers, sguassate viste di texture fora di ordine, cupiendu dati trà risorse in formati senza tipu (DXGI_FORMAT_BC3_TYPELESS, DXGI_FORMAT_R32G32B32B32SXNUMX), etc. .
- Aghjunghje un supportu per cunfigurazioni multi-monitor, chì vi permette di selezziunà un monitor per vede una applicazione Direct3D in modu di schermu pienu.
- L'API DXGI furnisce a correzione gamma di u screnu, chì pò esse aduprata da l'applicazioni basate in Direct3D 10 è 11 per cambià a luminosità di u screnu. A ripresa attivata di i contatori di framebuffer virtuali (SwapChain).
- Direct3D 12 aghjunghjenu supportu per a versione 1.1 di e firme di root.
- In u codice di rendering via l'API Vulkan, l'efficienza di u processu di e dumande hè stata migliurata quandu u sistema sustene l'estensione VK_EXT_host_query_reset.
- Aggiunta l'abilità di pruduce framebuffers virtuali (SwapChain) via GDI se OpenGL o Vulkan ùn pò micca esse usatu per a visualizazione, per esempiu, quandu si prucede à una finestra da diversi prucessi, per esempiu, in prugrammi basati nantu à u framework CEF (Chromium Embedded Framework).
- Quandu si usa u backend di shader GLSL, u modificatore "precisu" hè assicuratu per l'istruzzioni di shader.
- L'API DirectDraw aghjunghjenu supportu per a rendering 3D in a memoria di u sistema utilizendu i dispositi software cum'è "RGB", "MMX" è "Ramp".
- AMD Radeon RX 3M, AMD Radeon RX 5500/6800 XT/6800 XT, AMD Van Gogh, Intel UHD Graphics 6900 è NVIDIA GT 630 carte sò state aghjunte à a basa di dati di carte grafiche Direct1030D.
- A chjave "UseGLSL" hè stata sguassata da u registru HKEY_CURRENT_USER\Software\Wine\Direct3D, invece di quale, principiendu cù Wine 5.0, avete bisognu di utilizà "shader_backend".
- Per supportà Direct3D 12, avete avà bisognu di almenu a versione 3 di a biblioteca vkd1.2d.
- D3DX
- L'implementazione di D3DX 10 hà migliuratu u supportu per u quadru di effetti visuali è hà aghjuntu un supportu per u formatu d'imaghjini Windows Media Photo (JPEG XR)
- Funzioni di creazione di texture aghjunte furnite in D3DX10, cum'è D3DX10CreateTextureFromMemory().
- L'interfaccia di u software ID3DX10Sprite è ID3DX10Font sò state implementate parzialmente.
- Sonu è video
- Add-ons GStreamer per DirectShow è u framework Media Foundation sò cumminati in un backend cumuni WineGStreamer, chì deve simplificà u sviluppu di novi API di decodificazione di cuntenutu.
- Basatu nantu à u backend WineGStreamer, l'oggetti di Windows Media sò implementati per a lettura sincrona è asincrona.
- L'implementazione di u quadru di Media Foundation hè stata ulteriormente raffinata, u supportu per a funziunalità IMFPMediaPlayer è l'allocatore di mostra hè statu aghjustatu, è u supportu per i buffer di rendering EVR è SAR hè statu migliuratu.
- A biblioteca wineqtdecoder, chì furnisce un decodificatore per u formatu QuickTime, hè stata sguassata (tutti i codecs usanu avà GStreamer).
- Input Devices
- A pila per i dispositi di input chì supportanu u protocolu HID (Human Interface Devices) hè statu migliuratu significativamente, furnisce capacità cum'è l'analisi di descrittori HID, processà i missaghji HID è furnisce i driver mini-HID.
- In i backends di u driver winebus.sys, a traduzzione di e descrizioni di u dispositivu in i missaghji HID hè stata migliurata.
- Aggiuntu un novu backend DirectInput per i joysticks chì supportanu u protocolu HID. A capacità di utilizà l'effetti di feedback in i joysticks hè stata implementata. Pannellu di cuntrollu di joystick mejoratu. Interazione ottimizzata cù i dispositi compatibili XInput. In WinMM, u supportu di joystick hè statu spustatu in DInput, invece di utilizà u backend evdev in Linux è IOHID in macOS IOHID. U vechju driver di joystick winejoystick.drv hè statu eliminatu.
- Nuvelle teste sò state aghjunte à u modulu DInput, basatu annantu à l'usu di i dispositi HID virtuali è micca bisognu di un dispositivu fisicu.
- Testu è fonti
- Aggiuntu l'oggettu di Font Set à DirectWrite.
- RichEdit implementa currettamente l'interfaccia TextHost.
- Kernel (Interfacce Kernel Windows)
- Quandu eseguisce un schedariu eseguibile micca identificatu (cum'è 'wine foo.msi') in Wine, start.exe hè issa chjamatu, chì invoca i gestori assuciati cù u tipu di schedariu.
- Aghjunghje supportu per i meccanismi di sincronizazione NtAlertThreadByThreadId è NtWaitForAlertByThreadId, simili à futexes in Linux.
- Aggiuntu supportu per l'oggetti di debugging NT utilizati per debug e funzioni di u kernel.
- Aghjunghje supportu per e chjave di registru dinamicu per salvà dati di rendiment.
- C Runtime
- U runtime C implementa un inseme cumpletu di funzioni matematiche, chì sò principalmente traspurtati da a biblioteca Musl.
- Tutte e piattaforme di CPU furnisce un supportu currettu per e funzioni in virgule flottante.
- Funzioni di rete
- Modu di cumpatibilità mejoratu per Internet Explorer 11 (IE11), chì hè oghji utilizatu per automaticamente per processà documenti HTML.
- A biblioteca mshtml implementa u modu JavaScript ES6 (ECMAScript 2015), chì furnisce supportu per funzioni cum'è l'espressione let è l'ughjettu Map.
- A stallazione di pacchetti MSI cù aghjunte à u mutore Gecko in u cartulare di travagliu di u Vinu hè avà fatta quandu hè necessariu, è micca durante una aghjurnazione di u Vinu.
- Supportu aghjuntu per u protocolu DTLS.
- U serviziu NSI (Network Store Interface) hè statu implementatu, almacenendu è trasmettenu infurmazioni nantu à u routing è l'interfaccia di rete in l'urdinatore à altri servizii.
- I gestori di l'API WinSock, cum'è setsockopt è getsockopt, sò stati spustati in NTDLL è u driver afd.sys per cunfurmà cù l'architettura Windows.
- I schedarii di basa di dati di a rete di u vinu, cum'è /etc/protocols è /etc/networks, sò avà stallati in u cartulare di travagliu Wine, invece di accede à basa di dati Unix simili.
- Piattaforme alternative
- Aghjunghje supportu per l'equipaggiu Apple basatu nantu à chips M1 ARM (Apple Silicon).
- U supportu per e funzioni BCrypt è Secur32 in macOS necessita avà l'installazione di a libreria GnuTLS.
- Eseguibili 32-bit per e plataforme ARM sò avà custruitu in u modalità Thumb-2, simili à Windows. Un preloader hè adupratu per carricà tali schedari.
- Per e piattaforme ARM 32-bit, u supportu per l'eccezzioni di sbulicà hè statu implementatu.
- Per FreeBSD, u numeru di dumande supportate per l'infurmazioni di u sistema di livellu bassu, cum'è u statutu di memoria è u livellu di carica di a bateria, hè statu allargatu.
- Applicazioni integrate è strumenti di sviluppu
- L'utilità reg.exe hà aghjustatu supportu per viste di registru 32 è 64-bit. Aghjunghje supportu per a copia di e chjave di u registru.
- L'utilità WineDump hà aghjustatu supportu per u dumping di metadati di Windows è a visualizazione di informazioni dettagliate nantu à e entrate CodeView.
- U Wine Debugger (winedbg) furnisce a capacità di debug processi 32-bit da un debugger 64-bit.
- A capacità di carricà e biblioteche integrate in i fugliali PE hè stata aghjunta à u compilatore IDL (widl), u supportu per l'attributi è e custruzzioni specifichi di WinRT hè statu furnitu, è una ricerca di biblioteca specifica per a piattaforma hè stata implementata.
- Sistema di assemblea
- In cartulari specifichi di l'architettura, e biblioteche sò avà salvate cù nomi chì riflettenu l'architettura è u tipu eseguibile, cum'è "i386-windows" per u formatu PE è "x86_64-unix" per e librerie Unix, chì permettenu supportu per diverse architetture in un vinu unicu. installazione è furnisce una compilazione incruciata di Winelib.
- Per stabilisce una opzione in l'intestazione di i fugliali PE chì cuntrolla a transizione à l'usu di DLL nativi, a bandiera "--prefer-native option" hè stata aghjunta à winebuild (a trasfurmazioni DLL_WINE_PREATACH in DllMain hè stata fermata).
- Added supportu per a versione 4 di u furmatu di dati di debug Nanu, chì hè oghji utilizatu per automaticamente quandu custruisce e librerie Wine.
- Aggiunta l'opzione di creazione '—enable-build-id' per salvà identificatori unichi di custruzzione in i fugliali eseguibili.
- Aghjunghje supportu per aduprà u compilatore Clang in u modu di cumpatibilità MSVC.
- Разное
- I nomi di cartulari tipici in a cunchiglia d'utilizatore (Windows Shell) sò dati à u schema utilizatu cuminciendu cù Windows Vista, i.e. Invece di "I mo documenti", un annuariu "Documenti" hè avà creatu, è a maiò parte di e dati sò salvate in u cartulare "AppData".
- U supportu per a specificazione OpenCL 1.2 hè statu aghjuntu à a capa di biblioteca OpenCL.
- U driver WinSpool hà aghjustatu supportu per diverse dimensioni di pagina durante a stampa.
- Aggiuntu supportu iniziale per MSDASQL, u fornitore Microsoft OLE DB per i driver ODBC.
- U mutore Wine Mono cù l'implementazione di a piattaforma .NET hè stata aghjurnata per liberà 7.0.0.
- I dati Unicode sò stati aghjurnati à a specificazione Unicode 14.
- L'arbulu di l'urighjini includenu e librerie Faudio, GSM, LCMS2, LibJPEG, LibJXR, LibMPG123, LibPng, LibTiff, LibXml2, LibXslt è Zlib, chì sò compilati in formatu PE è ùn necessitanu micca una versione in formatu Unix. À u listessu tempu, queste librerie ponu ancu esse impurtate da u sistema per utilizà l'assemblee esterne invece di l'opzioni PE integrate.
Source: opennet.ru