Lage ki estab nan Wine 7.0

Apre yon ane nan devlopman ak 30 vèsyon eksperimantal, yo te prezante yon lage ki estab nan aplikasyon an louvri nan Win32 API a - Wine 7.0, ki enkòpore plis pase 9100 chanjman. Reyalizasyon kle nouvo vèsyon an gen ladan tradiksyon pifò modil Wine nan fòma PE, sipò pou tèm, ekspansyon pil pou joysticks ak aparèy antre ak yon koòdone HID, ak aplikasyon achitekti WoW64 pou kouri pwogram 32-bit nan yon koòdone HID. 64-bit anviwònman.

Wine te konfime operasyon an plen nan 5156 (yon ane de sa 5049) pwogram pou Windows, yon lòt 4312 (yon ane de sa 4227) pwogram travay parfe ak anviwònman adisyonèl ak DLL ekstèn. 3813 pwogram (3703 ane de sa) gen ti pwoblèm operasyonèl ki pa entèfere ak itilizasyon fonksyon prensipal aplikasyon yo.

Inovasyon kle nan Wine 7.0:

  • Modil nan fòma PE
    • Prèske tout DLL yo te konvèti yo sèvi ak fòma dosye ègzekutabl PE (Portable Executable, 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.
    • Kapasite pou kominike modil PE ak bibliyotèk Unix lè l sèvi avèk apèl sistèm estanda NT nwayo a te aplike, ki pèmèt ou kache aksè nan kòd Unix soti nan debogaj Windows epi kontwole enskripsyon fil.
    • DLL entegre yo kounye a chaje sèlman si gen yon dosye PE korespondan sou disk, kèlkeswa si li se yon bibliyotèk reyèl oswa yon souch. Chanjman sa a pèmèt aplikasyon an toujou wè obligatwa ki kòrèk la nan dosye PE. Pou enfim konpòtman sa a, ou ka itilize varyab anviwònman WINEBOOTSTRAPMODE.
  • WoW64
    • Achitekti WoW64 (64-bit Windows-on-Windows) te aplike, sa ki pèmèt ou kouri aplikasyon pou Windows 32-bit nan pwosesis Unix 64-bit. Sipò aplike atravè koneksyon an nan yon kouch ki tradui apèl sistèm NT 32-bit nan apèl 64-bit nan NTDLL.
    • Kouch WoW64 yo prepare pou pifò bibliyotèk Unix epi pèmèt modil PE 32-bit jwenn aksè nan bibliyotèk Unix 64-bit. Yon fwa tout modil yo te konvèti nan fòma PE, li pral posib pou kouri aplikasyon pou Windows 32-bit san yo pa enstale bibliyotèk 32-bit Unix.
  • Tèm
    • Sipò tèm yo te aplike. Tèm konsepsyon "Limyè", "Blue" ak "Ble Klasik" yo enkli, ki ka chwazi atravè konfigirateur WineCfg la.
    • Te ajoute kapasite nan Customize aparans nan tout kontwòl koòdone atravè tèm. Aparans eleman yo otomatikman mete ajou apre yo fin chanje tèm nan konsepsyon.
    • Sipò tèm yo te ajoute nan tout aplikasyon Wine entegre. Aplikasyon yo te adapte nan ekran ak dansite pixel segondè (segondè DPI).
  • Grafik subsystem
    • Yon nouvo bibliyotèk Win32u te ajoute, ki gen ladann pati nan bibliyotèk GDI32 ak USER32 ki gen rapò ak pwosesis grafik ak jesyon fenèt nan nivo nwayo a. Nan tan kap vini an, travay yo pral kòmanse sou pòtaj eleman chofè tankou winex32.drv ak winemac.drv nan Win11u.
    • Chofè Vulkan a sipòte spesifikasyon API grafik Vulkan 1.2.201.
    • Bay sipò pou pwodiksyon objè jeyometrik kale atravè Direct2D API, ak kapasite pou tcheke si yon klik frape (tès frape).
    • Direct2D API bay sipò inisyal pou efè vizyèl aplike lè l sèvi avèk koòdone ID2D1Effect la.
    • Direct2D API a te ajoute sipò pou koòdone ID2D1MultiThread, ki itilize pou òganize aksè eksklizif nan resous nan aplikasyon milti-thread.
    • Seri bibliyotèk WindowsCodecs yo bay sipò pou dekode imaj nan fòma WMP (Windows Media Photo) ak imaj kode nan fòma DDS (DirectDraw Surface). Nou pa sipòte ankò kode imaj nan fòma ICNS (pou macOS), ki pa sipòte sou Windows.
  • Direct3D
    • Nouvo motè rannman an te amelyore anpil, li tradwi apèl Direct3D nan API grafik Vulkan. Nan pifò sitiyasyon, nivo sipò pou Direct3D 10 ak 11 nan motè Vulkan ki baze sou yo te pote nan egalite ak ansyen motè ki baze sou OpenGL la. Pou pèmèt motè a rann Vulkan, mete varyab rejis Direct3D "renderer" nan "vulkan".
    • Anpil karakteristik nan Direct3D 10 ak 11 yo aplike, ki gen ladan Kontèks Defere, objè eta opere nan kontèks aparèy la, konpanse ki pèsistan nan tanpon, netwaye opinyon teksti ki pa nan lòd, kopye done ant resous nan fòma ki san kalite (DXGI_FORMAT_BC3_TYPELESS, DXGI_FORMAT_R32G32B32LES32), elatriye. .
    • Te ajoute sipò pou konfigirasyon milti-monitè, ki pèmèt ou chwazi yon monitè pou montre yon aplikasyon Direct3D nan mòd ekran plen.
    • DXGI API bay koreksyon gama ekran, ki ka itilize pa aplikasyon ki baze sou Direct3D 10 ak 11 pou chanje klète ekran an. Pèmèt rekipere kontè framebuffers vityèl (SwapChain).
    • Direct3D 12 ajoute sipò pou siyati rasin vèsyon 1.1.
    • Nan kòd rannman an atravè API Vulkan, efikasite nan pwosesis demann yo te amelyore lè sistèm nan sipòte ekstansyon VK_EXT_host_query_reset la.
    • Te ajoute kapasite nan pwodiksyon framebuffers vityèl (SwapChain) atravè GDI si OpenGL oswa Vulkan pa ka itilize pou ekspozisyon, pou egzanp, lè pwodiksyon nan yon fenèt soti nan diferan pwosesis, pou egzanp, nan pwogram ki baze sou fondasyon CEF (Chromium Embedded Framework).
    • Lè w ap itilize backend shader GLSL la, modifye "precis" la asire pou enstriksyon shader.
    • DirectDraw API a ajoute sipò pou rann 3D nan memwa sistèm lè l sèvi avèk aparèy lojisyèl tankou "RGB", "MMX" ak "Ramp".
    • AMD Radeon RX 3M, AMD Radeon RX 5500/6800 XT/6800 XT, AMD Van Gogh, Intel UHD Graphics 6900 ak NVIDIA GT 630 kat yo te ajoute nan baz done a kat grafik Direct1030D.
    • Kle "UseGLSL" la te retire nan rejis HKEY_CURRENT_USER\Software\Wine\Direct3D, olye de sa, kòmanse ak Wine 5.0, ou bezwen sèvi ak "shader_backend".
    • Pou sipòte Direct3D 12, kounye a ou bezwen omwen vèsyon 3 nan bibliyotèk vkd1.2d la.
  • D3DX
    • Aplikasyon D3DX 10 la amelyore sipò pou kad efè vizyèl la e li ajoute sipò pou fòma imaj Windows Media Photo (JPEG XR)
    • Te ajoute fonksyon kreyasyon teksti yo bay nan D3DX10, tankou D3DX10CreateTextureFromMemory().
    • Yo te pasyèlman aplike entèfas lojisyèl ID3DX10Sprite ak ID3DX10Font.
  • Son ak videyo
    • Add-ons GStreamer pou DirectShow ak fondasyon Media Foundation yo konbine nan yon sèl WineGStreamer backend komen, ki ta dwe senplifye devlopman nan nouvo kontni API dekodaj.
    • Ki baze sou backend WineGStreamer, objè Windows Media yo aplike pou lekti synchrone ak asynchrone.
    • Yo amelyore aplikasyon fondasyon Media Foundation, sipò pou fonksyonalite IMFPMediaPlayer ak alokasyon echantiyon yo te ajoute, epi sipò pou tanpon rann EVR ak SAR yo te amelyore.
    • Bibliyotèk wineqtdecoder la, ki bay yon dekodeur pou fòma QuickTime a, yo retire (tout kodèk kounye a itilize GStreamer).
  • Antre aparèy
    • Pile pou aparèy antre ki sipòte pwotokòl HID (Human Interface Devices) yo te amelyore anpil, bay kapasite tankou analize deskriptè HID, trete mesaj HID, epi bay chofè mini-HID.
    • Nan backends chofè winebus.sys, tradiksyon deskripsyon aparèy yo nan mesaj HID yo te amelyore.
    • Te ajoute yon nouvo backend DirectInput pou joysticks ki sipòte pwotokòl HID la. Kapasite pou itilize efè fidbak nan joysticks te aplike. Amelyore panèl kontwòl joystick. Optimize entèraksyon ak aparèy konpatib XInput. Nan WinMM, sipò joystick yo te deplase nan DInput, olye pou yo itilize backend evdev sou Linux ak IOHID sou macOS IOHID. Ansyen chofè joystick winejoystick.drv te retire.
    • Nouvo tès yo te ajoute nan modil DInput la, ki baze sou itilizasyon aparèy HID vityèl epi ki pa egzije yon aparèy fizik.
  • Tèks ak polis
    • Te ajoute Font Set objè nan DirectWrite.
    • RichEdit kòrèkteman aplike koòdone TextHost la.
  • Kernel (Entèfas Kernel Windows)
    • Lè w ap kouri yon fichye ègzekutabl ki pa idantifye (tankou 'wine foo.msi') nan Wine, yo rele start.exe kounye a, ki envoke moun kap okipe yo ki asosye ak kalite fichye a.
    • Te ajoute sipò pou mekanis senkronizasyon NtAlertThreadByThreadId ak NtWaitForAlertByThreadId, menm jan ak futexes nan Linux.
    • Te ajoute sipò pou objè debogaj NT yo itilize pou debogaj fonksyon nwayo.
    • Te ajoute sipò pou kle rejis dinamik pou konsève pou done pèfòmans yo.
  • C Runtime
    • Ègzekutabl C a aplike yon seri konplè fonksyon matematik, ki sitou pote soti nan bibliyotèk Musl la.
    • Tout platfòm CPU bay sipò kòrèk pou fonksyon pwen k ap flote.
  • Karakteristik rezo a
    • Amelyore mòd konpatibilite pou Internet Explorer 11 (IE11), ki kounye a itilize pa default pou trete dokiman HTML.
    • Bibliyotèk mshtml aplike mòd ES6 JavaScript (ECMAScript 2015), ki bay sipò pou karakteristik tankou ekspresyon let la ak objè Map.
    • Enstalasyon pakè MSI ak adisyon nan motè Gecko nan anyè k ap travay Wine se kounye a fè lè sa nesesè, epi yo pa pandan yon aktyalizasyon Wine.
    • Te ajoute sipò pou pwotokòl DTLS.
    • Sèvis NSI (Network Store Interface) yo te aplike, estoke ak transmèt enfòmasyon sou routage ak rezo interfaces sou òdinatè a nan lòt sèvis.
    • Moun ki okipe WinSock API tankou setsockopt ak getsockopt yo te deplase nan NTDLL ak chofè afd.sys pou konfòme yo ak achitekti Windows la.
    • Fichye baz done rezo pwòp Wine, tankou /etc/protocols ak /etc/networks, yo enstale kounye a nan anyè travay Wine, olye pou yo jwenn aksè nan baz done menm jan Unix.
  • Platfòm altènatif
    • Te ajoute sipò pou ekipman Apple ki baze sou chips M1 ARM (Apple Silisyòm).
    • Sipò pou karakteristik BCrypt ak Secur32 sou macOS kounye a mande pou enstalasyon bibliyotèk GnuTLS la.
    • Egzekitab 32-bit pou tribin ARM yo kounye a bati nan mòd Thumb-2, menm jan ak Windows. Yo itilize yon preloader pou chaje dosye sa yo.
    • Pou platfòm ARM 32-bit, sipò pou eksepsyon dewoulman yo te aplike.
    • Pou FreeBSD, kantite demann sipòte pou enfòmasyon sistèm ba nivo, tankou estati memwa ak nivo chaj batri, yo te elaji.
  • Aplikasyon entegre ak zouti devlopman
    • Sèvis piblik reg.exe la te ajoute sipò pou vizyon rejis 32- ak 64-bit. Te ajoute sipò pou kopye kle rejis yo.
    • WineDump sèvis piblik la te ajoute sipò pou jete metadata Windows ak montre enfòmasyon detaye sou antre CodeView.
    • Wine Debugger la (winedbg) bay kapasite pou deboge pwosesis 32-bit soti nan yon deboge 64-bit.
    • Yo te ajoute kapasite pou chaje bibliyotèk ki te bati nan fichye PE yo nan konpilatè IDL (widl), yo te bay sipò pou atribi ak konstriksyon espesifik WinRT, epi yo te aplike yon rechèch bibliyotèk espesifik pou platfòm.
  • Sistèm asanble
    • Nan repèrtwar espesifik achitekti, bibliyotèk yo sove kounye a ak non ki reflete achitekti ak kalite ègzèkutabl, tankou 'i386-windows' pou fòma PE ak 'x86_64-unix' pou bibliyotèk Unix, ki pèmèt sipò pou diferan achitekti nan yon sèl Wine. enstalasyon ak bay kwa-konpilasyon nan Winelib.
    • Pou mete yon opsyon nan tèt yo nan dosye PE ki kontwole tranzisyon an nan sèvi ak DLL natif natal, yo te ajoute drapo '--prefer-native option' nan winebuild (pwosesis DLL_WINE_PREATACH nan DllMain te sispann).
    • Te ajoute sipò pou vèsyon 4 nan fòma done debug tinen, ki kounye a itilize pa default lè bati bibliyotèk Wine.
    • Te ajoute opsyon bati '—enable-build-id' pou sove idantifyan inik bati nan dosye ègzèkutabl.
    • Te ajoute sipò pou itilize du Clang nan mòd konpatibilite MSVC.
  • Miscellanea
    • Non yo nan repèrtwar tipik nan koki itilizatè a (Windows Shell) yo bay konplo a itilize kòmanse ak Windows Vista, i.e. Olye pou yo 'Dokiman mwen yo', yo kreye yon anyè 'Dokiman' kounye a, epi pi fò nan done yo sove nan anyè 'AppData' la.
    • Sipò pou spesifikasyon OpenCL 1.2 yo te ajoute nan kouch bibliyotèk OpenCL la.
    • Chofè WinSpool la te ajoute sipò pou diferan gwosè paj lè enprime.
    • Te ajoute sipò inisyal pou MSDASQL, founisè Microsoft OLE DB pou chofè ODBC.
    • Motè Wine Mono a ak aplikasyon platfòm .NET yo te mete ajou pou lage 7.0.0.
    • Done Unicode yo te mete ajou ak spesifikasyon Unicode 14 la.
    • Pyebwa sous la gen ladan bibliyotèk Faudio, GSM, LCMS2, LibJPEG, LibJXR, LibMPG123, LibPng, LibTiff, LibXml2, LibXslt ak Zlib, ki konpile nan fòma PE epi ki pa mande pou yon vèsyon nan fòma Unix. An menm tan an, bibliyotèk sa yo kapab tou enpòte soti nan sistèm nan sèvi ak asanble ekstèn olye pou yo bati-an opsyon PE.

Sous: opennet.ru

Add nouvo kòmantè