Predstavljena je WinCore biblioteka za rad s Win32 programima na Linuxu i macOS-u

Projekt WinCore razvija sloj kompatibilnosti s Win32/WGL, koji omogućuje kompilaciju koda Windows programa napisanog u C/C++ koristeći klasični Win32 API, za pokretanje na Linuxu i macOS-u. WinCore presreće klasične Win32 konektore i koristi cross-platformske backendove za iscrtavanje putem SDL3 ili SDL2. Kod je napisan u C++ i distribuira se pod LGPLv3 licencom.

Projekt je rezultat preispitivanja biblioteke LDL, istog autora, koji je zaključio da je umjesto dizajniranja još jednog API-ja logičnije uzeti provjereni proceduralni interfejs Win32 API i učiniti ga prenosivim na različite operativne sisteme i uređaje. Ideja je da se kod piše prema pravilima Win32, ali se nativno kompilira i radi u Windows, Linux i macOS.

Biblioteka je napisana u strogoj C++98 verziji radi maksimalne prenosivosti, ali izvozi čiste zaglavlja C89, što garantuje unazad kompatibilnost i omogućuje lako pravljenje bindinga za Rust, Zig, Python i druge jezike putem C FFI. Trenutno su dodana 2 backend-a — SDL2 i SDL3. U budućnosti se planira dodati backend za XLib i Wayland.

Autor ne postavlja cilj emulirati sve mogućnosti Windows-a i fokusira se samo na podsisteme za multimediju i motore. Trenutno je implementirano 5 funkcija iz Kernel32.dll (upravljanje modulima, sistemsko vreme i kašnjenje), 25 funkcija iz User32.dll (kreiranje prozora, ciklusi poruka, pozicija kursora i obrada unosa), 5 funkcija iz Gdi32.dll (izbor formata piksela, iscrtavanje bitmapa i prebacivanje bafera) i 4 funkcije iz Opengl32.dll (kreiranje, brisanje i aktivacija WGL konteksta).



Izvor: opennet.ru
Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster