Stabilná verzia Wine 5.0

Po roku vývoja a 28 experimentálnych verzií predstavené stabilné vydanie otvorenej implementácie Win32 API — Wine 5.0, ktorá zahŕňa viac ako 7400 zmien. Medzi kľúčovými úspechmi novej verzie sa nachádza dodanie vstavaných modulov Wine vo formáte PE, podpora viacmonitorových konfigurácií, nová implementácia zvukového API XAudio2 a podpora grafického API Vulkan 1.1.

Vo Wine bol potvrdený plnohodnotná prevádzka 4869 (pred rokom 4737) programov pre Windows, ešte 4136 (pred rokom 4045) programov funguje skvele pri ďalších nastaveniach a externých DLL. Pri 3635 programoch sú pozorované drobné problémy v prevádzke, ktoré nebránia používaniu základných funkcií aplikácií.

Kľúčové novinky Wine 5.0:

  • Moduly vo formáte PE
    • Pri prítomnosti kompilátora MinGW väčšina modulov Wine teraz zostavuje vo formáte spustiteľných súborov PE (Portable Executable, aplikovanom vo Windows) namiesto ELF. Použitie PE rieši problémy s podporou rôznych schém ochrany proti kopírovaniu, ktoré overujú identitu systémových modulov na disku a v pamäti;
    • Spustiteľné súbory PE sa teraz kopírujú do adresára ~/.wine ($WINEPREFIX) namiesto používania fiktívnych DLL-súborov, čo robí obsah viac podobný skutočným inštaláciám Windows, na úkor väčšieho spotrebovaného diskového priestoru;
    • Moduly, prevedené do formátu PE, môžu využívať štandardné wchar C-funkcie a konštanty s unicode (napríklad L"abc");
    • Vo Wine C runtime bola pridaná podpora pre prepojenie s binárnymi súbormi zostavenými v MinGW, ktorá sa pri zostavovaní DLL používa predvolene namiesto MinGW runtime;
  • Grafický subsystém
    • Pridaná podpora pre prácu s viacerými monitormi a grafickými adaptérmi, vrátane možnosti dynamicky meniť nastavenia;
    • Aktualizovaný ovládač pre grafické API Vulkan, ktorý bol prispôsobený špecifikácii Vulkan 1.1.126;
    • V knižnici WindowsCodecs bola implementovaná možnosť konverzie dodatočných rastrových formátov, vrátane formátov s indexovanou paletou;
  • Direct3D
    • Pri spúšťaní aplikácií na celú obrazovku Direct3D bola zabezpečená blokácia výzvy na ochranu obrazovky;
    • V DXGI (DirectX Graphics Infrastructure) bola pridaná podpora informovania aplikácie o minimalizácii jej okna, čo umožňuje aplikácii znížiť vykonávanie náročných operácií pri znižovaní okna.
    • Pre aplikácie využívajúce DXGI bola implementovaná možnosť prepínať medzi celoobrazovkovým a oknomovým režimom pomocou kombinácie Alt+Enter;
    • Možnosti implementácie Direct3D 12 boli rozšírené, napríklad sa pridala podpora prepínania medzi celoobrazovkovým a oknomovým režimom, zmeny režimov obrazovky, výstup s prispôsobením a riadenie intervalu výmeny vykresľovacích bufrov (swap interval);
    • Zlepšené spracovanie rôznych okrajových situácií, ako je použitie zdrojových hodnôt, ktoré presahujú povolené rozsahy pre testy priehľadnosti a hĺbky, vykresľovanie s odrazenými textúrami a buffermi, použitie nesprávnych objektov DirectDraw. clipper, vytváranie zariadení Direct3 pre nesprávne okná, používanie viditeľných oblastí, minimálne hodnoty parametrov, ktorých maximálne hodnoty sú rovné a podobne.
    • V Direct3D 8 a 9 je zabezpečené presnejšie sledovanie "znečistených" oblastí načítavaných textúr;
    • Znížená veľkosť potrebného adresného priestoru pri načítavaní 3D textúr komprimovaných metódou S3TC (namiesto úplného načítania sa textúry načítavajú po kúskoch).
    • Implementované rozhranie ID3D11Multithread na ochranu kritických sekcií v viacvláknových aplikáciách;
    • Pre staršie aplikácie DirectDraw boli vykonané rôzne vylepšenia a opravy súvisiace s výpočtom osvetlenia;
    • Implementované ďalšie volania na získanie informácií o shadrových programoch v API ShaderReflection;
    • V wined3d bola pridaná podpora CPU založeného blittera na spracovanie komprimovaných zdrojov;
    • Rozšírená databáza grafických kariet rozpoznávaných v Direct3D;
    • Pridané nové kľúče registru HKEY_CURRENT_USER\Software\Wine\Direct3D: "shader_backend" (backend pre prácu so shadrami: "glsl" pre GLSL, "arb" pre ARB vertex/fragment a "none" pre vypnutie podpory shadrov), "strict_shader_math" (0x1 — zapnúť, 0x0 — vypnúť transformáciu shadrov Direct3D). Starý kľúč "UseGLSL" bol vyhlásený za zastaraný (je potrebné používať "shader_backend");
  • D3DX
    • Implementovaná podpora mechanizmu kompresie 3D textúr S3TC (S3 Texture Compression);
    • Pridané správne implementácie takých operácií, ako je vyplnenie textúrou a neodraziteľné (unmappable) povrchy;
    • Vykonané rôzne vylepšenia a opravy vo frameworku na vytváranie vizuálnych efektov;;
  • Jadro (rozhrania jadra Windows)
    • Väčšina funkcií používaných v Kernel32 bola presunutá do
      KernelBase, v súlade so zmenami v architektúre Windows;
    • Možnosť miešania 32- a 64-bitových DLL v adresároch používaných na načítanie. Zabezpečené ignorovanie knižníc, ktoré nezodpovedajú aktuálnej bitovej šírke (32/64), pre prípad, že neskôr v ceste sa nájde správna knižnica pre aktuálnu bitovú šírku;
    • Pre ovládače zariadení bola vylepšená emulácia objektov jadra;
    • Realizované objekty synchronizácie, ktoré pracujú na úrovni jadra, ako sú spin-zámky, rýchle mutexy a premenné viazané na zdroje;
    • Zabezpečené správne informovanie aplikácií o stave batérie;
  • Používateľské rozhranie a integrácia s pracovnou plochou
    • Minimalizované okná sa teraz zobrazujú s použitím názvu, nie ikony v štýle Windows 3.1;
    • Pridané nové štýly tlačidiel SplitButton (tlačidlo s rozbaľovacím zoznamom akcií) a Command Links (linky v dialógových oknách, používané na prechod na ďalšiu fázu);
    • Pre zložky 'Downloads' a 'Templates' boli vytvorené symbolické odkazy, ktoré ukazujú na zodpovedajúce adresáre v Unixových systémoch;
  • Vstupné zariadenia
    • Pri spustení bola zabezpečená inštalácia a načítanie potrebných ovládačov zariadení Plug & Play;
    • Vylepšená podpora herných ovládačov, vrátane mini-joysticku (hat switch), volantu, pedálov na plyn a brzdy.
    • Podpora starého Linux API interakcie s joystickmi, používaného v jadrach Linux do verzie 2.2, bola ukončená;
  • .NET
    • Engin Mono bol aktualizovaný na verziu 4.9.4 a teraz zahŕňa časti rámca Windows Presentation Foundation (WPF);
    • Pridaná možnosť inštalácie doplnkov s Mono a Gecko do jedného spoločného adresára s umiestnením súborov v hierarchii /usr/share/wine namiesto kopírovania do nových prefixov;
  • Network capabilities
    • Prehliadačový engin Wine Gecko, ktorý sa používa v knižnici MSHTML, bol aktualizovaný na verziu 2.47.1. Implementovaná podpora nových HTML API;
    • V MSHTML bola implementovaná podpora prvkov SVG;
    • Pridané mnohé nové funkcie VBScript (napríklad obslužné rutiny chýb a výnimiek, funkcie Hour, Day, Month, String, LBound, RegExp.Replace, RScriptTypeInfo_* a ScriptTypeComp_Bind* atď.);
    • Zabezpečené uchovávanie stavu kódu vo VBScript a JScript (persistence script);
    • Pridaná počiatočná implementácia služby HTTP (WinHTTP) a súvisiaceho API (HTTPAPI) pre klientské a serverové aplikácie, ktoré odosielajú a prijímajú požiadavky pomocou protokolu HTTP;
    • Zrealizovaná možnosť získania parametrov nastavenia HTTP-proxy cez DHCP;
    • Pridaná podpora presmerovania autentifikačných požiadaviek cez službu Microsoft Passport;
  • Kryptografia
    • Zrealizovaná podpora kryptografických kľúčov na báze eliptických kriviek (ECC) pri použití GnuTLS;
    • Pridaná možnosť importu kľúčov a certifikátov z súborov vo formáte PFX;
    • Pridaná podpora schémy generovania kľúčov na základe hesla PBKDF2;
  • Text a písma
    • V implementácii API DirectWrite bola pridaná podpora funkcií OpenType, týkajúcich sa pozicionovania glifov, ktoré sú predvolene zapnuté pre písmo Latin, vrátane kerningu;
    • Zvýšená bezpečnosť spracovania fontových údajov prostredníctvom kontroly platnosti rôznych tabuliek údajov pred ich použitím;
    • Rozhrania DirectWrite boli prispôsobené aktuálnemu SDK;
  • Zvuk a video
    • Navrhnutá nová implementácia zvukového API XAudio2, postavená na základe projektu FAudio. Použitie FAudio v Wine umožňuje dosiahnuť vyššiu kvalitu zvuku v hrách a využiť takéto funkcie ako mixovanie hlasitosti a rozšírené zvukové efekty;
    • Pridané veľké množstvo nových volaní do implementácie rámca Media Foundation, vrátane podpory vstavaných a používateľských asynchrónnych frontov, Source Reader API, Media Session a pod.
    • Filtr na zachytávanie videa bol prevedený na používanie API v4l2 namiesto v4l1 API, čo umožnilo rozšíriť rozsah podporovaných kamier;
    • Odstránené vstavané dekodéry AVI, MPEG-I a WAVE, namiesto ktorých sa teraz používajú systémové GStreamer alebo QuickTime;
    • Pridaná podmnožina konfiguračných API VMR7;
    • Do zvukových ovládačov bola pridaná podpora nastavenia hlasitosti jednotlivých kanálov;
  • Internacionalizácia
    • Unicode tabuľky boli aktualizované na verziu 12.1.0;
    • Implementovaná podpora normalizácie Unicode;
    • Zaistená automatická inštalácia geografického regiónu (HKEY_CURRENT_USER\Control Panel\International\Geo) na základe aktuálnej lokality;
  • RPC/COM
    • Do typelib bola pridaná podpora zložených štruktúr a polí;
    • Pridaná počiatočná implementácia runtime knižnice Windows Script;
    • Pridaná počiatočná implementácia knižnice ADO (Microsoft ActiveX Data Objects);
  • Inštalátory
    • Pre inštalátor MSI bola implementovaná podpora dodávania patchov (Patch Files);
    • V utilite WUSA (Windows Update Standalone Installer) sa objavila možnosť inštalácie aktualizácií vo formáte .MSU;
  • Platforma ARM
    • Pre architektúru ARM64 bola v ntdll pridaná podpora pre rozbalenie zásobníka (stack unwinding). Pridaná podpora pre pripojenie externých knižníc libunwind;
    • Pre architektúru ARM64 bola implementovaná podpora bezšvových proxy (stubless proxies) pre rozhrania objektov;
  • Nástroje pre vývoj / Winelib
    • Pridaná možnosť aplikovania ladenia z Visual Studio pre vzdialené ladenie aplikácií, ktoré bežia v Wine;
    • Čiastočne implementovaná knižnica DBGENG (Debug Engine);
    • Zostavené spustiteľné súbory pre Windows už viac nezávisia od libwine, čo umožňuje ich spúšťanie vo Windows bez dodatočných závislostí;
    • Do Resource Compiler a IDL Compiler bola pridaná možnosť ‘—sysroot’ na definovanie cesty k hlavičkovým súborom;
    • Do winegcc boli pridané možnosti ‘—target’, ‘—wine-objdir’,
      ‘—winebuild’ a ‘-fuse-ld’, čo zjednodušuje nastavenie prostredia pre krížovú kompiláciu;
  • Built-in applications
    • Bola implementovaná utilita CHCP na nastavenie kódovania konzoly;
    • Bola implementovaná utilita MSIDB na manipuláciu s databázami vo formáte MSI;
  • Optimalizácia výkonu
    • Rôzne funkcie práce s časom boli prevedené na použitie vysoko výkonných systémových funkcií práce s časovačom, čo umožnilo znížiť náklady v cykle vykresľovania mnohých hier;
    • Pridaná možnosť používania v FS Ext4 režimu práce bez ohľadu na veľkosť písmen;
    • Bola vykonaná optimalizácia výkonu spracovania veľkého množstva prvkov v dialógoch výstupu zo zoznamu, pracujúcich v režime LBS_NODATA;
    • Pridaná rýchlejšia implementácia SRW-zámkov (Slim Reader/Writer) pre Linux, prevedená na Futex;
  • Externé závislosti
    • Na zostavovanie modulov vo formáte PE bol zapojený krížový kompilátor MinGW-w64;
    • Implementácia XAudio2 vyžaduje existenciu knižnice FAudio;
    • Na sledovanie zmien súborov na systémoch BSD
      bola použitá knižnica Inotify;
    • Na spracovanie výnimiek na platforme ARM64 je potrebná knižnica Unwind;
    • Namiesto Video4Linux1 teraz vyžaduje knižnica Video4Linux2.

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster