Egy év fejlesztés és 28 kísérleti verzió után megjelenik a Win32 API nyílt implementációjának stabil kiadása — , amely több mint 7400 változást tartalmaz. A legfontosabb újítások között szerepel a Wine beépített moduljainak PE formátumban történő szállítása, a többmonitoros konfigurációk támogatása, az új XAudio2 hang API implementáció, valamint a Vulkan 1.1 grafikai API támogatása.
A Wine teljes körűen támogatja 4869 (tavaly 4737) Windowsra készült alkalmazást, további 4136 (tavaly 4045) alkalmazás remekül működik kiegészítő beállítások és külső DLL-ek mellett. 3635 alkalmazás esetén kis problémák jelentkeznek, amelyek nem zavarják az alapvető funkciók használatát.
Kulcsok Wine 5.0:
- PE formátumú modulok
- A MinGW fordító használatával a Wine többsége most már PE (Portable Executable, Windowsban használatos) formátumban készül, az ELF helyett. A PE alkalmazása segít megoldani a különböző másolatvédelem támogatásának problémáit, amelyek azonosítják a rendszer modulok integritását a lemezen és a memóriában;
- A PE formátumú végrehajtható fájlok most a ~/.wine ($WINEPREFIX) könyvtárba másolódnak, a hamis DLL fájlok alkalmazása helyett, így a felépítés inkább hasonlít a valódi Windows telepítésekhez, cserébe több lemezterület használatával;
- A PE formátumra konvertált modulok lehetővé teszik a szokásos C-függvények és Unicode konstansok (például, L"abc");
- A Wine C futási környezete támogatja a MinGW-ben összegyűjtött bináris fájlokkal való összekapcsolást, ami alapértelmezés szerint a DLL építésénél használatos a MinGW futási környezete helyett;
- Grafikai alrendszer
- Több monitor és grafikus adapter kezelésének támogatása került hozzáadásra, beleértve a beállítások dinamikus módosításának lehetőségét;
- Frissült a Vulkan grafikai API-hoz készült meghajtó, amely megfelel a Vulkan 1.1.126 specifikációnak;
- A WindowsCodecs könyvtár lehetőséget nyújt további raszteres formátumok, köztük indexelt palettás formátumok átalakítására;
- Direct3D
- Teljes képernyős Direct3D alkalmazások esetén letiltásra kerül a képernyővédő hívása;
- A DXGI (DirectX Graphics Infrastructure) támogatja az alkalmazás értesítését az ablak minimalizálásáról, ami lehetővé teszi az alkalmazás számára, hogy csökkentse a számításigényes műveletek végrehajtását az ablak elrejtésekor;
- A DXGI-t használó alkalmazások számára megvalósították a lehetőséget, hogy az Alt+Enter kombinációval válthatnak a teljes képernyős és ablakos mód között;
- Kibővítették a Direct3D 12 megvalósításának lehetőségeit, például megjelent a lehetőség a teljes képernyős és ablakos mód közötti váltásra, a képernyő módosítására, a skálázással történő megjelenítésre és a képkocka cserélési intervallum kezelése;
- Javították a különböző határhelyzetek kezelését, mint például az elfogadható tartományokon túllépő forrásértékek alkalmazását az átlátszósági és mélységi tesztekhez, az tükrözött textúrák és bufferek rajzolását, a hibás DirectDraw objektumok használatát. , a helytelen ablakokhoz Direct3 eszközök létrehozása, látható területek használata, a paraméterek minimális értékeinek a maximálisaknak megfelelően és így tovább.
- A Direct3D 8 és 9 biztosítja a "" textúrák betöltött területeinek pontosabb nyomon követését;
- Csökkent a szükséges címzési tér nagysága 3D-textúrák betöltésekor, S3TC tömörítési módszerrel (a teljes betöltés helyett a textúrák darabokban töltődnek be).
- Megvalósult az felület a kritikus szakaszok védelmére több szálas alkalmazásokban;
- A régi DirectDraw alkalmazások számára különböző fejlesztések és javítások kerültek bevezetésre a világítás számításával kapcsolatban;
- További hívások valósultak meg az API-n belül a shader információk megszerzésére; ;
- A wined3d-hez CPU-alapú blitter támogatás került hozzáadásra tömörített erőforrások feldolgozására; Új registry kulcsokat adtak hozzá HKEY_CURRENT_USER\Software\Wine\Direct3D: "shader_backend" (a shaderek működtetésére szolgáló háttér: "glsl" GLSL-hez, "arb" ARB vertex/fragmenthez és "none" a shaderek támogatásának letiltására), "strict_shader_math" (0x1 – bekapcsol, 0x0 – kikapcsolja a Direct3D shaderek átalakítását). A "UseGLSL" kulcs elavultként van nyilvántartva (a "shader_backend" használata javasolt);
- Megvalósították a S3TC (S3 Texture Compression) 3D-textúrák tömörítési mechanizmusának támogatását;
- Hozzáadták a textúrával való kitöltés és a nem térképezhető (unmappable) felületek ilyen műveleteinek helyes megvalósítását;
- D3DX
- Különböző fejlesztésekre és javításokra került sor a
- vizuális effektusok
- készítésére szolgáló keretrendszerben. ;
- Kernel (Windows kernel interfészek)
- KernelBase-be, követve a Windows architektúrájában történt változásokat;
KernelBase, követve a Windows architektúrája változásait; - A 32- és 64-bites DLL-ek keverésének lehetősége a betöltéshez használt könyvtárakban. Biztosítva van a nem megfelelő (32/64) könyvtárak figyelmen kívül hagyása, ha a későbbiekben a helyes könyvtár elérhető az aktuális bitmérethez;
- A készülékmeghajtók számára javult a magobjektumok emulációja;
- Megvalósultak a magszintű szinkronizációs objektumok, mint például spin-lockok, gyors mutexek és erőforráshoz csatlakozó változók;
- Biztosítva van, hogy az alkalmazások helyesen informálva legyenek az akkumulátor állapotáról;
- KernelBase-be, követve a Windows architektúrájában történt változásokat;
- Felhasználói felület és integráció a munkaasztallal
- A minimalizált ablakokat most már címsorral jelenítik meg, nem pedig a Windows 3.1 stílusú ikonokkal;
- Új gombstílusok kerültek hozzáadásra (legördülő műveletgomb) és (a párbeszédpanelekben használt hivatkozások, amelyek a következő fázisra való átmenetet szolgálják);
- A ‘Downloads’ és ‘Templates’ mappákhoz szimbolikus hivatkozások készültek, amelyek a megfelelő könyvtárakra mutatnak Unix rendszerekben;
- Bemeneti eszközök
- Indításkor biztosítva van a szükséges Plug & Play eszközmeghajtók telepítése és betöltése;
- Javították a játékkontrollerek támogatását, beleértve a mini joystickot (hat kapcsoló), kormányt, valamint gáz- és fékpedálokat.
- Megszűnt a régi Linux API támogatása a joystickokkal való interakcióhoz, amely a Linux 2.2-es verziójáig használt magokban volt elérhető;
- .NET
- A Mono motor frissítve lett a 4.9.4 kiadásra, és most már tartalmazza a Windows Presentation Foundation (WPF) keretrendszer elemeit;
- Hozzáadva a Mono és Gecko kiegészítők telepítésének lehetősége egy közös könyvtárba, a fájlok elhelyezése a /usr/share/wine hierarchiában, nem új prefiksekbe másolva;
- Hálózati lehetőségek.
- A Wine Gecko böngészőmotor, amelyet az MSHTML könyvtárban használnak, frissítve lett a 2.47.1-es verzióra. Támogatja az új HTML API-kat;
- Az MSHTML-ben támogatást kaptak az SVG elemek;
- Sok új VBScript funkció került hozzáadásra (például hiba- és kivételkezelők, Hour, Day, Month, String, LBound, RegExp.Replace, RScriptTypeInfo_* és ScriptTypeComp_Bind* stb.);
- Biztosítva van a kód állapotának megőrzése VBScript és JScript nyelven (script persistence);
- Hozzáadva az HTTP szolgáltatás (WinHTTP) és az ahhoz kapcsolódó API (HTTPAPI) kezdeti megvalósítása a kliens- és szerveralkalmazások számára, amelyek HTTP protokoll segítségével küldenek és fogadnak kéréseket;
- Lehetőség nyílt a HTTP-proxy beállításainak megszerzésére DHCP-n keresztül;
- Hozzáadva a Microsoft Passport szolgáltatáson keresztüli hitelesítési kérések átirányításának támogatása;
- Kriptográfia
- Megvalósult a kriptográfiai kulcsok támogatása ellipszis görbék (ECC) alapú használatával a GnuTLS-en;
- Hozzáadva a kulcsok és tanúsítványok importálásának lehetősége PFX formátumú fájlokból;
- Hozzáadva a jelszó alapú kulcsformáló séma támogatása a PBKDF2 alapján;
- Szöveg és betűk
- A DirectWrite API megvalósításában hozzáadva az OpenType kapcsolódó képességeinek támogatása, , amelyek alapértelmezés szerint engedélyezve vannak a latin karakterek számára, beleértve a kerninget;
- Növeltük a betűtípus adatok feldolgozásának biztonságát a különböző adat táblák helyességének ellenőrzésével a használatuk előtt;
- A DirectWrite interfészeket frissen frissített SDK-hoz igazították;
- Hang és video
- Új hang API megvalósítást javasoltak , amely a projekten alapul. Az FAudio használata a Wine-ben lehetővé teszi a magasabb hangminőség elérését játékokban és olyan funkciók kihasználását, mint a hangerő keverése és a fejlettebb hanghatások;
- Számos új hívást adtak hozzá a Media Foundation keretrendszer megvalósításához, beleértve a beépített és egyéni aszinkron sorok támogatását, a Source Reader API-t, a Media Session-t stb.
- A videofogó szűrő átállt a v4l2 API használatára a v4l1 API helyett, ami kibővítette a támogatott kamerák körét;
- Eltávolítottuk a beépített AVI, MPEG-I és WAVE dekódereket, amelyek helyett most a rendszerszintű GStreamer vagy QuickTime használatos;
- Hozzáadva egy almennyisége a VMR7 konfigurációs API-knak;
- A hangmeghajtókhoz hozzáadva a különböző csatornák hangerő beállításának támogatása;
- Nemzetköziesítés.
- Az Unicode táblázatok frissítve lettek a 12.1.0 verzióra;
- Megvalósult az Unicode normalizálásának támogatása;
- Automatikus földrajzi régió beállítás (HKEY_CURRENT_USER\Control Panel\International\Geo) a jelenlegi lokalizáció alapján;
- RPC/COM
- A typelibhez hozzáadva a bonyolult struktúrák és tömbök támogatását;
- Hozzáadva a Windows Script runtime könyvtárának kezdeti megvalósítása;
- Hozzáadva az ADO (Microsoft ActiveX Data Objects) könyvtárának kezdeti megvalósítása;
- Telepítők
- Az MSI telepítőhöz hozzáadva a javító fájlok (Patch Files) kiszállításának támogatása;
- A WUSA (Windows Update Standalone Installer) segédprogramban lehetőség nyílt az .MSU formátumú frissítések telepítésére;
- ARM platform
- Az ARM64 architektúrában az ntdll-ben hozzáadva a verem kibővítésének (stack unwinding) támogatása. Hozzáadva a külső könyvtárak (libunwind) csatlakozásának támogatása;
- Az ARM64 architektúrában megvalósítva a stubless proxyk támogatását az objektum interfészek számára;
- Fejlesztői eszközök / Winelib
- Lehetőség nyílt a Visual Studio debugger használatára távoli alkalmazások Wine alatt való hibakereséséhez;
- Részben megvalósult a DBGENG (Debug Engine) könyvtár;
- A Windows számára készült végrehajtható fájlok már nem függnek a libwine-tól, így Windows alatt további függőségek nélkül futtathatók;
- A Resource Compiler és az IDL Compiler új ‘—sysroot’ opciót kapott a fejlécek elérési útjának meghatározásához;
- A winegcc új opciókat kapott: ‘—target’, ‘—wine-objdir’,
‘—winebuild’ és ‘-fuse-ld’, amelyek megkönnyítik a környezet beállítását keresztfordításhoz;
- Beépített alkalmazások
- Megvalósult a CHCP eszköz a konzol kódolásának beállításához;
- Megvalósult az MSIDB eszköz az MSI formátumú adatbázisok manipulálásához;
- Teljesítményoptimalizálás
- Diverse time-related functions have been translated to use high-performance system timer functions, reducing overhead in the rendering loops of many games;
- Lehetőség nyílt az Ext4 fájlrendszer használatára kis- és nagybetűk figyelembevételének nélkül;
- A nagyobb számú elem feldolgozásának teljesítményoptimalizálása a LBS_NODATA módban működő lista megjelenítő dialógokban;
- Gyorsabb SRW-zárolások (Slim Reader/Writer) implementáció került hozzáadásra Linuxhoz, amely Futex-re lett átportálva;
- Külső függőségek
- A PE formátumú modulok összeállításához a MinGW-w64 keresztfordítót alkalmazták;
- Az XAudio2 megvalósításához szükség van az FAudio könyvtárra;
- A fájlok változásainak nyomon követéséhez BSD rendszereken
az Inotify könyvtárat használták; - ARM64 platformon történő kivételek kezeléséhez az Unwind könyvtár szükséges;
- A Video4Linux1 helyett most a Video4Linux2 könyvtár szükséges.
Forrás: opennet.ru
