Lage ki estab nan Wine 5.0

Apre yon ane nan devlopman ak 28 vèsyon eksperimantal prezante lage ki estab nan aplikasyon an louvri nan Win32 API a - Diven 5.0, ki te gen plis pase 7400 chanjman. Reyalizasyon kle nouvo vèsyon an gen ladan livrezon modil Wine entegre nan fòma PE, sipò pou konfigirasyon milti-monitè, yon nouvo aplikasyon API odyo XAudio2 ak sipò pou API grafik Vulkan 1.1.

Nan diven konfime operasyon konplè nan 4869 (yon ane de sa 4737) pwogram pou Windows, yon lòt 4136 (yon ane de sa 4045) pwogram travay parfe ak lòt anviwònman ak DLL ekstèn. 3635 pwogram yo gen pwoblèm pèfòmans minè ki pa entèfere ak itilizasyon fonksyon aplikasyon debaz yo.

Kle inovasyon Diven 5.0:

  • Modil nan fòma PE
    • Avèk konpilatè MinGW la, pifò modil Wine yo kounye a bati nan fòma dosye ègzekutabl PE (Portable Executable, ki itilize sou Windows) olye pou yo ELF. Itilizasyon PE rezoud pwoblèm ak sipòte divès kalite pwoteksyon kopi ki verifye idantite modil sistèm sou disk ak nan memwa;
    • Ègzèkutabl PE yo kounye a kopye nan anyè ~/.wine ($WINEPREFIX) olye pou yo sèvi ak fichye DLL enbesil, ki fè bagay yo pi sanble ak enstalasyon Windows reyèl, nan pri a nan konsome espas disk adisyonèl;
    • Modil konvèti nan fòma PE ka itilize estanda wchar C fonksyon ak konstan ak Unicode (pa egzanp, L "abc");
    • Wine C ègzekutabl te ajoute sipò pou lyen ak binè bati nan MinGW, ki itilize pa default olye pou yo ègzekutabl MinGW lè yo bati DLL;
  • Grafik subsystem
    • Te ajoute sipò pou travay ak plizyè monitè ak adaptè grafik, ki gen ladan kapasite pou chanje anviwònman yo;
    • Chofè pou Vulkan grafik API a te mete ajou pou konfòme yo ak spesifikasyon Vulkan 1.1.126;
    • Bibliyotèk WindowsCodecs bay kapasite pou konvèti fòma raster adisyonèl, ki gen ladan fòma ak yon palèt endèks;
  • Direct3D
    • Lè w ap kouri aplikasyon Direct3D a plen ekran, apèl ekran ekonomizeur a bloke;
    • DXGI (DirectX Graphics Infrastructure) te ajoute sipò pou enfòme yon aplikasyon lè fenèt li minimize, sa ki pèmèt aplikasyon an diminye pèfòmans operasyon ki gen anpil resous lè minimize fenèt la;
    • Pou aplikasyon ki itilize DXGI, kounye a li posib pou chanje ant mòd ekran konplè ak mòd fenèt lè l sèvi avèk konbinezon Alt + Antre;
    • Kapasite yo nan aplikasyon an Direct3D 12 yo te elaji, pou egzanp, gen kounye a sipò pou chanje ant mòd plen ekran ak fenèt, chanje mòd ekran, dekale pwodiksyon ak jere entèval ranplasman tanpon rann (entèval swap);
    • Amelyore manyen divès sitiyasyon limit, tankou itilizasyon valè opinyon ki pa nan ranje pou transparans ak tès pwofondè, rann ak tèkstur reflete ak tanpon, ak itilizasyon objè DirectDraw ki pa kòrèk. tondè, kreye aparèy Direct3 pou fenèt ki pa kòrèk, lè l sèvi avèk zòn vizib ki gen valè paramèt minimòm yo egal ak maksimòm, elatriye.
    • Direct3D 8 ak 9 bay swivi pi egzak "sal» zòn nan teksti chaje;
    • Gwosè espas adrès obligatwa a lè w ap chaje tèkstur 3D konprese lè l sèvi avèk metòd S3TC la redwi (olye pou yo chaje nèt, tèkstur yo chaje an ti moso).
    • Entèfas aplike ID3D11Multithread pou pwoteje seksyon kritik yo nan aplikasyon milti-threaded;
    • Yo te fè plizyè amelyorasyon ak koreksyon ki gen rapò ak kalkil ekleraj pou aplikasyon DirectDraw ki pi gran yo;
    • Aplike lòt apèl pou jwenn enfòmasyon sou shaders nan API a ShaderReflection;
    • wined3d kounye a sipòte anpoul CPU ki baze sou pou trete resous konprese;
    • Baz done kat grafik yo rekonèt nan Direct3D te elaji;
    • Te ajoute nouvo kle rejis HKEY_CURRENT_USER\Software\Wine\Direct3D: "shader_backend" (backend pou travay ak shaders: "glsl" pou GLSL, "arb" pou ARB somè/fragman ak "none" pou enfim sipò shader), "strict_shader_math" ( 0x1 - pèmèt, 0x0 - enfim konvèsyon Direct3D shader). Depreke kle "UseGLSL" la (ta dwe itilize "shader_backend");
  • D3DX
    • Sipò pou mekanis konpresyon teksti 3D S3TC (S3 Texture Compression) te aplike;
    • Te ajoute egzekisyon kòrèk operasyon yo tankou ranpli teksti ak sifas enkapab;
    • Plizyè amelyorasyon ak ranje yo te fè nan fondasyon an kreyasyon efè vizyèl;
  • Kernel (Entèfas Kernel Windows)
    • Pifò nan fonksyon yo itilize nan Kernel32 yo te deplase nan
      KernelBase, apre chanjman nan achitekti Windows la;

    • Kapasite pou melanje DLL 32 ak 64-bit nan anyè yo itilize pou chaje. Asire ke bibliyotèk ki pa matche ak pwofondè bit aktyèl la yo inyore (32/64), nan ka pi lwen sou chemen an li posib pou jwenn yon bibliyotèk ki kòrèk pou pwofondè bit aktyèl la;
    • Pou chofè aparèy, yo te amelyore emulasyon objè nwayo;
    • Enplemante objè senkronizasyon k ap travay nan nivo nwayo a, tankou kadna vire, mutex rapid ak varyab ki tache ak yon resous;
    • Asire ke aplikasyon yo kòrèkteman enfòme sou estati batri a;
  • Entèfas itilizatè ak Desktop Entegrasyon
    • Fenèt ki minimize yo parèt kounye a lè l sèvi avèk yon ba tit olye ke yon ikòn Windows 3.1-style;
    • Te ajoute nouvo estil bouton SplitButton (bouton ak yon lis dewoulman aksyon) ak Lyen kòmand (Lyen nan bwat dyalòg yo itilize pou ale nan pwochen etap la);
    • Yo te kreye lyen senbolik pou dosye 'Téléchargements' ak 'Modèl' yo, ki montre anyè ki koresponn yo sou sistèm Unix yo;
  • Antre aparèy
    • Nan demaraj, chofè aparèy Plug & Play ki nesesè yo enstale epi chaje;
    • Amelyore sipò pou contrôleur jwèt, ki gen ladan yon mini-joystick (chapo switch), volan, gaz ak pedal fren.
    • Sipò pou ansyen Linux joystick API yo te itilize nan nwayo Linux anvan vèsyon 2.2 yo sispann;
  • . NET
    • Motè Mono a te mete ajou pou lage 4.9.4 e kounye a, li gen ladan pati nan fondasyon Windows Presentation Foundation (WPF);
    • Te ajoute kapasite pou enstale adisyonèl ak Mono ak Gecko nan yon sèl anyè komen, mete dosye nan yerachi /usr/share/wine olye pou yo kopye yo nan nouvo prefiks;
  • Karakteristik rezo a
    • Motè navigatè Wine Gecko, ki itilize nan bibliyotèk MSHTML, te mete ajou pou lage 2.47.1. Sipò pou nouvo API HTML yo te aplike;
    • MSHTML kounye a sipòte eleman SVG;
    • Te ajoute anpil nouvo fonksyon VBScript (pa egzanp, erè ak moun kap okipe eksepsyon, Lè, Jou, Mwa, String, LBound, RegExp.Replace, РScriptTypeInfo_* ak ScriptTypeComp_Bind* fonksyon, elatriye);
    • Bay prezèvasyon eta kòd nan VBScript ak JScript (pèsistans script);
    • Te ajoute yon premye aplikasyon sèvis HTTP (WinHTTP) ak API ki asosye (HTTPAPI) pou aplikasyon pou kliyan ak sèvè ki voye ak resevwa demann lè l sèvi avèk pwotokòl HTTP;
    • Aplike kapasite pou jwenn anviwònman proxy HTTP atravè DHCP;
    • Te ajoute sipò pou redireksyon demann otantifikasyon atravè sèvis Microsoft Passport;
  • Kriptografi
    • Aplike sipò pou kle kriptografik koub eliptik (ECC) lè w ap itilize GnuTLS;
    • Te ajoute kapasite nan enpòte kle ak sètifika nan dosye nan fòma PFX;
    • Te ajoute sipò pou konplo jenerasyon kle ki baze sou modpas PBKDF2;
  • Tèks ak polis
    • Aplikasyon DirectWrite API a te ajoute sipò pou karakteristik OpenType ki gen rapò ak pozisyon glif, ki aktive pa default pou style Latin nan, ki gen ladan kerning;
    • Amelyore sekirite pou trete done font lè w tcheke kòrèkteman divès tab done anvan w sèvi ak yo;
    • Entèfas DirectWrite yo te pote nan liy ak dènye SDK la;
  • Son ak videyo
    • Yo pwopoze yon nouvo aplikasyon son API XAudio2, bati sou baz pwojè a Faudio. Sèvi ak FAudio nan diven pèmèt ou reyalize pi gwo kalite son nan jwèt epi sèvi ak karakteristik tankou volim melanje ak efè son avanse;
    • Yon gwo kantite nouvo apèl yo te ajoute nan aplikasyon an nan fondasyon an Media, ki gen ladan sipò pou entegre ak koutim asenkron ke moun kap kriye, Source Reader API, Media Session, elatriye.
    • Filtè kaptire videyo a te chanje lè l sèvi avèk v4l2 API olye pou yo v4l1 API, ki te elaji seri a nan kamera sipòte;
    • Yo te retire dekodeur yo bati-an AVI, MPEG-I ak WAVE, olye pou yo itilize sistèm GStreamer oswa QuickTime a;
    • Te ajoute yon pati nan API konfigirasyon VMR7;
    • Te ajoute sipò pou ajiste volim chanèl endividyèl yo nan chofè son;
  • Entènasyonalizasyon
    • Tablo Unicode mete ajou nan vèsyon 12.1.0;
    • Aplike sipò pou nòmalizasyon Unicode;
    • Bay enstalasyon otomatik rejyon jeyografik la (HKEY_CURRENT_USER\Control Panel\International\Geo) ki baze sou lokal aktyèl la;
  • RPC/COM
    • Te ajoute sipò pou estrikti konplèks ak etalaj nan typelib;
    • Te ajoute premye aplikasyon bibliyotèk Windows Script ègzekutabl;
    • Te ajoute premye aplikasyon bibliyotèk ADO (Microsoft ActiveX Data Objects);
  • Enstalatè yo
    • Sipò pou livrezon plak (Fichiye Patch) yo te aplike pou enstale MSI a;
    • Sèvis piblik WUSA (Windows Update Standalone Installer) kounye a gen kapasite pou enstale mizajou nan fòma .MSU;
  • ARM platfòm
    • Pou achitekti ARM64, sipò pou dewoulman pile te ajoute nan ntdll. Te ajoute sipò pou konekte bibliyotèk ekstèn libunwind;
    • Pou achitekti ARM64, sipò pou proxy san pwoblèm yo te aplike pou koòdone objè;
  • Zouti Devlopman / Winelib
    • Te ajoute kapasite nan sèvi ak debugger la soti nan Visual Studio nan adistans debug aplikasyon ki kouri nan Wine;
    • Bibliyotèk la DBGENG (Debug Engine) te pasyèlman aplike;
    • Binè konpile pou Windows pa depann sou libwine ankò, sa ki pèmèt yo kouri sou Windows san depandans adisyonèl;
    • Te ajoute opsyon '--sysroot' nan Konpilateur Resous ak Konpilateur IDL pou detèmine chemen an pou dosye header;
    • Te ajoute opsyon '-sib', '-wine-objdir', '-wine-objdir' nan winegcc
      '—winebuild' ak '-fuse-ld', ki senplifye anviwònman an pou kwa-konpilasyon;

  • Aplikasyon entegre
    • Aplike yon sèvis piblik CHCP pou konfigirasyon kodaj konsole;
    • Yo te aplike sèvis piblik MSIDB pou manipile baz done nan fòma MSI;
  • Optimize pèfòmans
    • Divès fonksyon distribisyon yo te imigre yo sèvi ak fonksyon segondè-pèfòmans sistèm revèy, diminye anlè nan bouk la rann nan anpil jwèt;
    • Te ajoute kapasite pou itilize Ext4 nan FS rejim travay san sansiblite ka;
    • Pèfòmans nan trete yon gwo kantite eleman nan dyalòg ekspozisyon lis opere nan mòd LBS_NODATA yo te optimize;
    • Te ajoute yon aplikasyon pi rapid nan kadna SRW (Slim Reader/Writer) pou Linux, tradui nan Futex;
  • Depandans ekstèn
    • Pou rasanble modil nan fòma PE, yo itilize MinGW-w64 kwa-konpilateur la;
    • Aplikasyon XAudio2 mande pou bibliyotèk FAudio;
    • Pou swiv chanjman dosye sou sistèm BSD
      yo itilize bibliyotèk Inotify la;

    • Pou jere eksepsyon sou platfòm ARM64, bibliyotèk Unwind obligatwa;
    • Olye de Video4Linux1, Video4Linux2 bibliyotèk la kounye a obligatwa.

Sous: opennet.ru

Add nouvo kòmantè