ArmorPaint targets six platforms through a thin hardware abstraction layer in the iron engine. Each platform maps to a specific graphics API backend and a corresponding set of system and compiler requirements. Platform-specific source files, libraries, and defines are selected at build time viaDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/armory3d/armorpaint/llms.txt
Use this file to discover all available pages before exploring further.
project.js conditionals, so only the code relevant to the target platform is compiled into the final binary.
Platform Summary
| Platform | Graphics API | Compiler / IDE | Architecture |
|---|---|---|---|
| Windows | Direct3D 12 | Visual Studio + Clang | x64 |
| Linux | Vulkan | Clang | x64 |
| macOS | Metal | Xcode | arm64 |
| iOS | Metal | Xcode | arm64 |
| Android | Vulkan | Android Studio | arm64 |
| WASM | WebGPU | Clang / Emscripten | wasm32 |
Per-Platform Details
- Windows
- Linux
- macOS
- iOS
- Android
- WASM
Graphics API: Direct3D 12Backend source files:
sources/backends/windows_system.*— Win32 window and input managementsources/backends/windows_net.*— Windows networking (Winhttp)sources/backends/windows_thread.*— Windows threading primitivessources/backends/direct3d12_gpu.*— Direct3D 12 GPU backend
IRON_DIRECT3D12_CRT_SECURE_NO_WARNINGS_WINSOCK_DEPRECATED_NO_WARNINGSIRON_BGRA(pixel format)
dxguid,dxgi,d3d12— Direct3D 12 runtimeDwmapi— Dark mode title bar (DWMWA_USE_IMMERSIVE_DARK_MODE)Winhttp— HTTP networking
dsound+windows_audio.*— audio (with_audio)dinput8— gamepad input (with_gamepad)d3d11+d3dcompiler— runtime shader compilation (with_d3dcompiler)
Graphics API Backend Files
The three GPU backends are selected at compile time based on the active graphics API define:| Define | Backend File | Language | Platforms |
|---|---|---|---|
IRON_DIRECT3D12 | direct3d12_gpu.c | C | Windows |
IRON_VULKAN | vulkan_gpu.c | C | Linux, Android |
IRON_METAL | metal_gpu.m | Objective-C | macOS, iOS |
IRON_WEBGPU | webgpu_gpu.c | C | WASM |
CI Workflows
ArmorPaint uses three GitHub Actions workflows to validate builds on push and pull request tomain:
linux_vulkan.yml
Runs on
ubuntu-latest. Installs make clang libvulkan-dev libgtk-3-dev via apt, then compiles with ../base/make --compile.macos_metal.yml
Runs on
macOS-latest. Uses the pre-installed Xcode toolchain. Compiles with ../base/make --compile.windows_direct3d12.yml
Runs on
windows-latest. Uses the pre-installed Visual Studio + Clang toolchain. Compiles with ../base/make --compile.macOS builds target arm64 (Apple Silicon) exclusively. The Metal GPU backend (
metal_gpu.m) is written in Objective-C and requires Xcode to compile. Intel-based Mac builds are not supported.