Integrate wgpu on your existing iOS | Android apps.
winit
-free mode can useful for integrating wgpu into existing apps to implement some graphics features.
Since iPhone 5 and later are 64-bit devices, add aarch64-apple-ios
and aarch64-apple-ios-sim
is enough.
# Add for iPhone
rustup target add aarch64-apple-ios
# Add for iOS simulator
rustup target add aarch64-apple-ios-sim
Build for iOS device and simulator
cargo build --target aarch64-apple-ios && cargo build --target aarch64-apple-ios-sim
Then, Open iOS/wgpu_on_iOS.xcodeproj
with Xcode, select wgpu_phone
scheme run on iOS device, wgpu_simulator
scheme run on simulator.
Passing Primitive Data Between Rust and iOS
Passing Owned Objects between Rust and iOS
Sending a boxed trait over FFI
Assuming your computer already has Android Studio installed, go to Android Studio
> Tools
> SDK Manager
> Android SDK
> SDK Tools
. Check the following options for installation and click OK.
- Android SDK Build-Tools
- Android SDK Command-line Tools
- NDK(Side by side)
Then, set two following environment variables:
export ANDROID_SDK_ROOT=$HOME/Library/Android/sdk
# Replace the NDK version number with the version you installed
export NDK_HOME=$ANDROID_SDK_ROOT/ndk/23.1.7779620
Since simulator and virtual devices only support GLES, x86_64-linux-android
and i686-linux-android
targets are not necessary
rustup target add aarch64-linux-android armv7-linux-androideabi
# from crates.io
cargo install cargo-so
# frome source code
cargo install --path cargo-so
# currently, multi-target build only useable on the nightly channel
cargo so b --target aarch64-linux-android --release
cargo so b --target armv7-linux-androideabi --release
# copy .so files to android project jniLibs folder
cp target/aarch64-linux-android/release/libwgpu_on_app.so android/app/libs/arm64-v8a/libwgpu_on_app.so
cp target/armv7-linux-androideabi/release/libwgpu_on_app.so android/app/libs/armeabi-v7a/libwgpu_on_app.so