WinCore-projekti kehittää yhteensopivuuskerroksen Win32/WGL:n kanssa, mikä mahdollistaa koodin kääntämisen Windows-ohjelmat, jotka on kirjoitettu C/C++:lla käyttäen klassista Win32-rajapintaa, ajettavaksi Linux и macOSWinCore sieppaa klassisia Win32-käsittelijöitä ja käyttää alustojen välisiä taustapalvelimia renderöintiin SDL3:n tai SDL2:n kautta. Koodi on kirjoitettu C++:lla ja jaettu LGPLv3-lisenssillä.
Projekti oli saman kirjoittajan LDL-kirjaston uudelleenarvioinnin tulos. Hän päätyi siihen, että uuden API:n suunnittelun sijaan oli loogisempaa ottaa aikaa kestävä Win32-proseduraalinen API ja tehdä siitä siirrettävä eri käyttöjärjestelmissä ja laitteissa. Ajatuksena on, että koodi kirjoitetaan Win32-sääntöjen mukaisesti, mutta käännetään natiivisti ja toimii... Windows, Linux и macOS.
Kirjasto on kirjoitettu tiukalla C++98-kielellä maksimaalisen siirrettävyyden takaamiseksi, mutta se vie puhtaasti C89-otsikkotiedostoja, mikä varmistaa yhteensopivuuden taaksepäin ja mahdollistaa helpon sitomisen Rustiin, Zigiin, Pythoniin ja muihin kieliin C FFI:n kautta. Tällä hetkellä saatavilla on kaksi taustajärjestelmää: SDL2 ja SDL3. XLib- ja Wayland-taustajärjestelmät on suunniteltu tulevaisuudessa.
Kirjoittaja ei aseta tavoitettaan jäljitellä kaikkia mahdollisuuksia Windows ja keskittyy vain multimedia- ja moottorialijärjestelmiin. Tällä hetkellä on toteutettu 5 Kernel32.dll-funktiota (moduulien hallinta, järjestelmän aika ja latenssi), 25 User32.dll-funktiota (ikkunoiden luonti, viestisilmukat, kohdistimen sijainti ja syötteen käsittely), 5 Gdi32.dll-funktiota (pikselimuodon valinta, bittikarttatulostus ja puskurin vaihto) ja 4 Opengl32.dll-funktiota (WGL-kontekstien luominen, poistaminen ja aktivointi).


Lähde: opennet.ru
