Dokumentasi | Demo | Perpustakaan lainnya
Cross Window adalah perpustakaan abstraksi sistem lintas platform untuk mengelola jendela dan melakukan tugas OS. Ini dirancang agar mudah diintegrasikan, intuitif, dan mendukung semua yang Anda butuhkan untuk aplikasi Anda.
? Jendela Sederhana, Dialog File, dan Pembuatan Dialog Pesan.
⌨️? ️? ? Input dasar (keyboard, mouse, sentuhan, dan gamepad).
? Fitur spesifik platform (transparansi Mac, accelerometer seluler, dll.).
? Uji unit + cakupan uji (Appveyor untuk Windows , Circleci untuk Android / MacOS / iOS , [Travis] [Travis-URL] untuk Linux / NOOP ).
? ️ Windows - Win32
? Mac - Cocoa
iOS - UIKit
? Linux - XCB atau XLib
? Android (sedang berlangsung)
WebAssembly - Emscripten
NOOP (tanpa kepala)
Pertama tambahkan repo sebagai submodule di folder dependensi Anda seperti external/ :
# ⤵️ Add your dependency as a git submodule:
git submodule add https://github.com/alaingalvan/crosswindow.git external/crosswindow Kemudian di file CMakeLists.txt Anda, sertakan yang berikut:
# ⤵️ Add to your CMake Project:
add_subdirectory (external/crosswindow)
# ❎ When creating your executable use CrossWindow's abstraction function:
xwin_add_executable(
# Target
${PROJECT_NAME}
# Source Files (make sure to surround in quotations so CMake treats it as a list)
" ${SOURCE_FILES} "
)
# ? Link CrossWindow to your project:
target_link_libraries (
${PROJECT_NAME}
CrossWindow
) Isi file CMakeLists.txt Anda lainnya dengan file sumber lain dan dependensi yang mungkin Anda miliki, lalu di root proyek Anda:
# ?️ To build your Visual Studio solution on Windows x64
cmake -B build -A x64
# ? To build your XCode project On Mac OS for Mac OS
cmake -B build -G Xcode
# To build your XCode project on Mac OS for iOS / iPad OS / tvOS / watchOS
cmake -B build -G Xcode -DCMAKE_SYSTEM_NAME=iOS
# ? To build your .make file on Linux
cmake -B build
# ? Build on any platform:
cmake -B build --buildUntuk WebAssembly Anda harus menginstal Emscripten. Dengan asumsi Anda menginstal SDK, lakukan hal berikut untuk membangun proyek WebAssembly:
# For WebAssembly Projects
mkdir webassembly
cd webassembly
cmake .. -DXWIN_OS=WASM -DCMAKE_TOOLCHAIN_FILE= " $EMSDK /emscripten/1.38.1/cmake/Modules/Platform/Emscripten.cmake " -DCMAKE_BUILD_TYPE=Release
# Run emconfigure with the normal configure command as an argument.
$EMSDK /emscripten/emconfigure ./configure
# Run emmake with the normal make to generate linked LLVM bitcode.
$EMSDK /emscripten/emmake make
# Compile the linked bitcode generated by make (project.bc) to JavaScript.
# 'project.bc' should be replaced with the make output for your project (e.g. 'yourproject.so')
$EMSDK /emscripten/emcc project.bc -o project.jsUntuk informasi lebih lanjut, kunjungi dokumen Emscripten di CMake.
Untuk Android Studio Anda harus membuat proyek, lalu edit file build.gradle Anda.
// ? To build your Android Studio project
android {
.. .
externalNativeBuild {
cmake {
.. .
// Use the following syntax when passing arguments to variables:
// arguments "-DVAR_NAME=ARGUMENT".
arguments " -DXWIN_OS=ANDROID " ,
// The following line passes 'rtti' and 'exceptions' to 'ANDROID_CPP_FEATURES'.
" -DANDROID_CPP_FEATURES=rtti exceptions "
}
}
buildTypes { .. . }
// Use this block to link Gradle to your CMake build script.
externalNativeBuild {
cmake { .. . }
}
}Untuk informasi lebih lanjut, kunjungi dokumen Android Studio di CMake.
Kemudian buat fungsi delegasi utama void xmain(int argc, const char** argv) dalam file .cpp dalam proyek Anda (misalnya " XMain.cpp ") di mana Anda akan meletakkan logika aplikasi Anda:
# include " CrossWindow/CrossWindow.h "
void xmain ( int argc, const char ** argv)
{
// ?️ Create Window Description
xwin::WindowDesc windowDesc;
windowDesc. name = " Test " ;
windowDesc. title = " My Title " ;
windowDesc. visible = true ;
windowDesc. width = 1280 ;
windowDesc. height = 720 ;
bool closed = false ;
// ? Initialize
xwin::Window window;
xwin::EventQueue eventQueue;
if (!window. create (windowDesc, eventQueue))
{ return ; }
// ? Engine loop
bool isRunning = true ;
while (isRunning)
{
// ♻️ Update the event queue
eventQueue. update ();
// ? Iterate through that queue:
while (!eventQueue. empty ())
{
const xwin::Event& event = eventQueue. front ();
if (event. type == xwin::EventType::MouseInput)
{
const xwin::MouseInputData mouse = event. data . mouseInput ;
}
if (event. type == xwin::EventType::Close)
{
window. close ();
isRunning = false ;
}
eventQueue. pop ();
}
}
} Fungsi xmain ini akan dipanggil dari fungsi utama platform spesifik yang akan dimasukkan dalam proyek utama Anda oleh CMake. Jika Anda perlu mengakses sesuatu dari fungsi utama spesifik platform untuk alasan apa pun, Anda akan menemukannya di xwin::getXWinState() .
Pastikan CMake terpasang.
| Opsi CMake | Keterangan |
|---|---|
XWIN_TESTS | Apakah tes unit diaktifkan atau tidak. Default untuk OFF , bisa ON atau OFF . |
XWIN_API | API OS yang akan digunakan untuk pembuatan jendela, default ke AUTO , bisa menjadi NOOP , WIN32 , COCOA , UIKIT , XCB , ANDROID , atau WASM . |
XWIN_OS | Opsional - Sistem operasi apa yang harus dibangun, berfungsi sebagai cara yang lebih cepat untuk menetapkan platform target. Default ke AUTO , dapat berupa NOOP , WINDOWS , MACOS , LINUX , ANDROID , IOS , WASM . Jika platform Anda mendukung beberapa API, API akhir akan secara otomatis diatur ke Default Crosswindow ( WIN32 di Windows, XCB di Linux). Jika XWIN_API diatur opsi ini diabaikan. |
Pertama instal git, lalu buka terminal apa pun di folder dan ketik apa pun:
# ? Clone the repo
git clone https://github.com/alaingalvan/crosswindow.git --recurse-submodules
# ? go inside the folder
cd crosswindow
# ? If you forget to `recurse-submodules` you can always run:
git submodule update --init
Dari sana kita perlu mengatur file build kita. Pastikan untuk menginstal berikut:
Cmake
IDE seperti Visual Studio, Xcode, atau kompiler seperti GCC.
Kemudian ketik berikut ini di terminal Anda dari folder repo:
# ?️ To build your Visual Studio solution on Windows x64
cmake -B build -A x64 -DXWIN_TESTS=ON
# ? To build your XCode project on Mac OS
cmake -B build -G Xcode -DXWIN_TESTS=ON
# ? To build your .make file on Linux
cmake -B build -DXWIN_TESTS=ON
# ? Build on any platform:
cmake -B build --build Setiap kali Anda menambahkan file baru ke proyek, jalankan cmake .. dari folder solusi/proyek Anda /build/ , dan jika Anda mengedit file CMakeLists.txt pastikan untuk menghapus file yang dihasilkan dan jalankan CMake lagi.
Crosswindow dilisensikan sebagai MIT atau Apache-2.0 , mana yang Anda inginkan.