Документация | Демо Другие библиотеки
Cross Window - это библиотека абстракции системных систем для управления Windows и выполнения задач ОС. Он предназначен для того, чтобы быть простым в интеграции, интуитивно понятной и поддержке всего, что вам может понадобиться для ваших приложений.
? Простое окно, файл диалоговое окно и создание диалога сообщений.
⌨? ️? ? Базовый ввод (клавиатура, мышь, прикосновение и геймпад).
? Специфические функции платформы (прозрачность MAC, мобильный акселерометр и т. Д.).
? ЕДИНЦИОННЫЕ ТЕСТИ + ТЕСТОЧНАЯ ПОКРЫТИЯ (Appveyor для Windows , Circleci для Android / MacOS / iOS , [travis] [travis-url] для Linux / NOOP ).
? ️ Windows - Win32
? Мак - Cocoa
ios - UIKit
? Linux - XCB или XLib
? Android (в процессе)
Webassembly - Emscripten
NOOP (без головы)
Сначала добавьте репо в качестве подмодуля в папку зависимостей, такую как external/ :
# ⤵️ Add your dependency as a git submodule:
git submodule add https://github.com/alaingalvan/crosswindow.git external/crosswindow Затем в ваш файл CMakeLists.txt включите следующее:
# ⤵️ 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
) Заполните остальную часть вашего файла CMakeLists.txt любыми другими исходными файлами и зависимостями, которые у вас могут иметь, тогда в вашем проекте root:
# ?️ 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 --buildДля webassembly вам нужно будет установлен Emscripten. Предполагая, что у вас установлен SDK, сделайте следующее для создания проекта 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.jsДля получения дополнительной информации посетите документы Emscripten на Cmake.
Для Android Studio вам понадобится проект, а затем отредактируйте свой файл build.gradle .
// ? 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 { .. . }
}
}Для получения дополнительной информации посетите документы Android Studio на Cmake.
Затем создайте основную функцию делегата void xmain(int argc, const char** argv) в файле .cpp в вашем проекте (например, « XMain.cpp »), где вы поместите логику приложения:
# 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 ();
}
}
} Эта функция xmain будет вызвана из основной функции, специфичной для платформы , которая будет включена в ваш основной проект Cmake. Если вам когда -нибудь понадобится доступ к чему -то из основной функции платформы по какой -либо причине, вы найдете это в xwin::getXWinState() .
Обязательно установите Cmake.
| Параметры Cmake | Описание |
|---|---|
XWIN_TESTS | Включены ли модульные тесты. По умолчанию OFF , может быть ON или OFF . |
XWIN_API | API OS для использования для генерации окон, по умолчанию на AUTO , может быть NOOP , WIN32 , COCOA , UIKIT , XCB , ANDROID или WASM . |
XWIN_OS | Необязательно - для создания операционной системы функционирует как более быстрый способ установления целевых платформ. По умолчанию в AUTO , может быть NOOP , WINDOWS , MACOS , LINUX , ANDROID , IOS , WASM . Если ваша платформа поддерживает несколько API, окончательный API будет автоматически установлен на по умолчанию по умолчанию ( WIN32 в Windows, XCB на Linux). Если XWIN_API установлен, эта опция игнорируется. |
Сначала установите GIT, затем откройте любой терминал в любой папке и тип:
# ? 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
Оттуда нам нужно настроить наши файлы сборки. Обязательно установите следующее:
Cmake
IDE, такой как Visual Studio, Xcode или компилятор, такой как GCC.
Затем введите следующее в вашем терминале из папки 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 Всякий раз, когда вы добавляете новые файлы в проект, запустите cmake .. из вашего решения/папки/проекта /build/ , и если вы редактируете файл CMakeLists.txt , обязательно удалите сгенерированные файлы и снова запустите Cmake.
Crosshidow лицензируется как MIT или Apache-2.0 , в зависимости от того, что вы бы предпочли.