Proyek WinCore mengembangkan lapisan kompatibilitas dengan Win32/WGL, yang memungkinkan kode untuk dikompilasi. Windows-program yang ditulis dalam C/C++ menggunakan API Win32 klasik, untuk dijalankan di Linux и macOSWinCore mencegat handler Win32 klasik dan menggunakan backend lintas platform untuk rendering melalui SDL3 atau SDL2. Kode ini ditulis dalam C++ dan didistribusikan di bawah lisensi LGPLv3.
Proyek ini merupakan hasil pemikiran ulang terhadap pustaka LDL oleh penulis yang sama, yang menyimpulkan bahwa alih-alih merancang API lain, lebih logis untuk mengambil API prosedural Win32 yang telah teruji waktu dan membuatnya portabel di berbagai sistem operasi dan perangkat. Idenya adalah kode ditulis sesuai dengan aturan Win32, tetapi dikompilasi secara native dan dijalankan di Windows, Linux и macOS.
Pustaka ini ditulis dalam C++98 yang ketat untuk portabilitas maksimum, tetapi mengekspor file header C89 murni, memastikan kompatibilitas mundur dan memungkinkan pengikatan yang mudah ke Rust, Zig, Python, dan bahasa lain melalui C FFI. Dua backend saat ini tersedia: SDL2 dan SDL3. Backend untuk XLib dan Wayland direncanakan untuk masa mendatang.
Penulis tidak menetapkan tujuan untuk meniru semua kemungkinan. Windows dan hanya berfokus pada subsistem multimedia dan mesin. Saat ini, 5 fungsi Kernel32.dll (manajemen modul, waktu sistem, dan latensi), 25 fungsi User32.dll (pembuatan jendela, perulangan pesan, posisi kursor, dan penanganan input), 5 fungsi Gdi32.dll (pemilihan format piksel, keluaran bitmap, dan pengalihan buffer), dan 4 fungsi Opengl32.dll (pembuatan, penghapusan, dan aktivasi konteks WGL) telah diimplementasikan.


Sumber: opennet.ru
