Праект WinCore развівае пласт сумяшчальнасці з Win32/WGL, які дазваляе кампіляваць код Windows-праграм, напісаны на C/C++ з выкарыстаннем класічнага API Win32, для запуску ў Linux и macOS. WinCore перахапляе класічныя апрацоўшчыкі Win32 і выкарыстоўвае крос-платформавыя бэкэнды для адмалёўкі праз SDL3 або SDL2. Код напісаны на C++ і распаўсюджваецца пад ліцэнзіяй LGPLv3.
Праект стаў вынікам пераасэнсавання бібліятэкі LDL, таго ж аўтара, які прыйшоў да высновы, што замест праектавання чарговага API, больш лагічна ўзяць правераны часам працэдурны інтэрфейс Win32 API і зрабіць яго пераносным на розныя АС і прылады. Ідэя ў тым, што код пішацца па правілах Win32, але натыўна кампілюецца і працуе ў Windows, Linux и macOS.
Бібліятэка напісана на строгім C++98 для максімальнай пераноснасці, але экспартуе чыстыя загалоўкавыя файлы C89, што гарантуе зваротную сумяшчальнасць і дазваляе лёгка рабіць біндынгі да Rust, Zig, Python і іншым мовам праз C FFI. На дадзены момант дабаўлена 2 бэкэнда – SDL2 і SDL3. У будучыні плануецца дадаць бэкэнды для XLib і Wayland.
Аўтар не ставіць мэты, эмуляваць усе магчымасці Windows і факусуюць толькі на падсістэмах для мультымедыя і рухавікоў. У цяперашні час рэалізавана 5 функцый Kernel32.dll (кіраванне модулямі, сістэмны час і затрымкі), 25 функцый User32.dll (стварэнне вокнаў, цыклы паведамленняў, пазіцыя курсора і апрацоўка ўводу), 5 функцый Gdi32.dll (выбар піксельнага фармату, выснова бітмапаў і пераключэнне буфераў і пераключэнне буфераў. актывацыя кантэкстаў WGL).


Крыніца: opennet.ru
