ドキュメント|デモ|他のライブラリ
クロスウィンドウは、Windowsを管理し、OSタスクを実行するためのクロスプラットフォームシステム抽象化ライブラリです。これは、アプリに必要なものすべてを簡単に統合し、直感的で、サポートできるように設計されています。
?シンプルなウィンドウ、ファイルダイアログ、およびメッセージダイアログの作成。
⌨️?€? ?基本入力(キーボード、マウス、タッチ、ゲームパッド)。
?プラットフォーム固有の機能(MAC透明性、モバイル加速度計など)。
?ユニットテスト +テストカバレッジ( WindowsのAppveyor、 Android / Macos / iOSのCircleci、[Travis] [Travis-url] for linux / noop )。
?§windows Win32
? Mac 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ファイルに、他のソースファイルと依存関係を記入してください。
# ?️ 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 --buildWebAssemblyには、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詳細については、cmakeのemscriptenドキュメントをご覧ください。
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 { .. . }
}
}詳細については、CmakeのAndroid Studioのドキュメントをご覧ください。
次に、プロジェクトの.cppファイル( " XMain.cpp "など)にメインデリゲート関数void xmain(int argc, const char** argv)を作成します。
# 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 | ウィンドウ生成に使用するOS APIは、 AUTOされ、 NOOP 、 WIN32 、 COCOA 、 UIKIT 、 XCB 、 ANDROID 、またはWASMにすることができます。 |
XWIN_OS | オプション- 構築するオペレーティングシステムは、ターゲットプラットフォームをより迅速な設定方法として機能させます。デフォルトはAUTOであり、 NOOP 、 WINDOWS 、 MACOS 、 LINUX 、 ANDROID 、 IOS 、 WASMです。プラットフォームが複数のAPIをサポートする場合、最終的なAPIは自動的にCrossWindowデフォルト( WIN32 、LinuxでXCB )に設定されます。 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
Visual Studio、Xcode、GCCなどのコンパイラなどのIDE。
次に、レポフォルダーから端末に次のように入力します。
# ?️ 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を再度実行してください。
CrossWindowは、 MITまたはApache-2.0としてライセンスされています。