-
-
Notifications
You must be signed in to change notification settings - Fork 9
Platforms
yurii.levchenko edited this page Mar 17, 2026
·
1 revision
Mengine поддерживает широкий набор целевых платформ, рендер-бекендов и тулчейнов.
| Платформа | CMake-определение | Платформ-слой | Приложение |
|---|---|---|---|
| Windows 32-bit | MENGINE_TARGET_WINDOWS |
Win32Platform | Win32Application |
| Windows 64-bit | MENGINE_TARGET_WINDOWS |
Win32Platform | Win32Application |
| macOS | MENGINE_TARGET_MACOS |
— | — |
| iOS | MENGINE_TARGET_IOS |
iOSPlatform | iOSApplication |
| iOS Simulator | MENGINE_TARGET_IOS_SIMULATOR |
iOSPlatform | iOSApplication |
| Android | MENGINE_TARGET_ANDROID |
AndroidPlatform | AndroidApplication |
| Xbox GDK | — | GDKPlatform | GDKApplication |
| UWP | MENGINE_TARGET_UWP |
— | — |
| Linux / Unix | MENGINE_TARGET_UNIX |
— | — |
| Web (Emscripten) | MENGINE_TARGET_EMSCRIPTEN |
— | — |
| SDL2 (кроссплатформ.) | MENGINE_PLATFORM_SDL2 |
SDL2Platform | SDL2Application |
| SDL3 (кроссплатформ.) | MENGINE_PLATFORM_SDL3 |
SDL3Platform | SDL3Application |
| Бекенд | CMake-определение | Описание |
|---|---|---|
| DirectX 9 | MENGINE_RENDER_DIRECTX9 |
Рендер по умолчанию для Windows |
| DirectX 11 | MENGINE_RENDER_DIRECTX11 |
Современный рендер для Windows |
| OpenGL | MENGINE_RENDER_OPENGL |
Кроссплатформенный рендер |
| Mockup | — | Тестовый рендер без вывода |
| Бекенд | Описание |
|---|---|
| OpenAL-Soft | Кроссплатформенный звуковой движок |
| Silent | Беззвучный бекенд для тестирования |
| Тулчейн | CMake-определение | Платформы |
|---|---|---|
| MSVC | MENGINE_TOOLCHAIN_MSVC |
Windows (VS 15, 16, 17, 18) |
| MinGW | MENGINE_TOOLCHAIN_MINGW |
Windows (GCC) |
| Xcode | MENGINE_TOOLCHAIN_XCODE |
macOS, iOS |
| GCC | MENGINE_TOOLCHAIN_GCC |
Linux, Unix |
| Gradle | MENGINE_TOOLCHAIN_GRADLE |
Android |
| Emscripten | MENGINE_TOOLCHAIN_EMSCRIPTEN |
Web / WebAssembly |
| Архитектура | CMake-определение |
|---|---|
| x86 (32-bit) | MENGINE_ARCHITECTURE_X86 |
| x64 (64-bit) | MENGINE_ARCHITECTURE_X64 |
| ARM 32-bit | MENGINE_ARCHITECTURE_ARM |
| ARM 64-bit (AArch64) | MENGINE_ARCHITECTURE_AARCH64 |
Для Android поддерживаются ABI: x86, x86_64, armeabi-v7a, arm64-v8a.
Для каждой платформы реализованы абстракции:
-
Win32FileSystem— Windows API -
AndroidFileSystem— Android Asset Manager -
AppleFileSystem— Apple Foundation -
SDL2FileSystem/SDL3FileSystem— SDL I/O
-
Win32ThreadSystem— Windows threads -
POSIXThreadSystem— POSIX pthreads -
SDL2ThreadSystem/SDL3ThreadSystem— SDL threads
-
Win32HttpSystem— WinHTTP -
AndroidHttpSystem— Android HttpURLConnection -
AppleHttpSystem— NSURLSession
-
Win32CryptographySystem— Windows CryptoAPI -
AndroidCryptographySystem— Android KeyStore -
AppleCryptographySystem— Apple Security Framework -
UWPCryptographySystem— UWP Crypto API
-
Win32DateTimeSystem/Win32TimeSystem— Windows API -
POSIXDateTimeSystem/POSIXTimeSystem— POSIX time
-
Win32AllocatorSystem— Windows heap -
POSIXAllocatorSystem— POSIX malloc -
DebugAllocatorSystem— отладочный аллокатор
Дополнительный платформозависимый код в src/Environment/:
| Директория | Назначение |
|---|---|
| Android | Вспомогательный код для Android JNI |
| Apple | Общий код для Apple-платформ |
| iOS | Специфика iOS |
| MacOS | Специфика macOS |
| Windows | Общий код для Windows |
| DirectX9 | Хелперы DirectX 9 |
| DirectX11 | Хелперы DirectX 11 |
| OpenGL | Хелперы OpenGL |
| GDK | Хелперы Xbox GDK |
| Python | Интеграция с Python |
| SDL2 / SDL3 | Хелперы SDL |
| UWP | Хелперы UWP |
- Getting Started — инструкции по сборке
- Systems — подробное описание системных реализаций
- Build System — конфигурация сборки