Projekt WinCore razvija sloj kompatibilnosti s Win32/WGL, koji omogućava kompilaciju Windows programa napisanih u C/C++ koristeći klasični Win32 API, kako bi se pokrenuli na Linux i macOS. WinCore presreće klasične Win32 obradnike i koristi cross-platformske backend-ove za renderovanje preko SDL3 ili SDL2. Kod je napisan u C++ i distribuira se pod LGPLv3 licencom.
Projekt je rezultat preispitivanja biblioteke LDL, istog autora, koji je došao do zaključka da umesto dizajniranja novog API-ja, ima više smisla uzeti provereni proceduralni interfejs Win32 API i učiniti ga prenosivim na različite OS i uređaje. Ideja je da se kod piše prema pravilima Win32, ali se nativno kompajlira i radi na Windows, Linux i macOS.
Biblioteka je napisana u strogom C++98 za maksimalnu prenosivost, ali izvozi čiste zaglavlja C89, što garantuje unazadnu kompatibilnost i omogućava lako pravljenje binding-a za Rust, Zig, Python i druge jezike putem C FFI. Do sada su dodana 2 backend-a — SDL2 i SDL3. U budućnosti je planirano dodavanje backend-a za XLib i Wayland.
Autor ne postavlja cilj da emulira sve mogućnosti Windows-a i fokusira se samo na podprograme za multimediju i engine. Trenutno su implementirane 5 funkcija Kernel32.dll (upravljanje modulima, sistemsko vreme i kašnjenja), 25 funkcija User32.dll (kreiranje prozora, ciklusi poruka, pozicija kursora i obrada unosa), 5 funkcija Gdi32.dll (odabir formata piksela, ispis bitmapa i prebacivanje bafera) i 4 funkcije Opengl32.dll (kreiranje, brisanje i aktivacija WGL konteksta).


Izvor: opennet.ru
