13 个版本 (2 个稳定版)
1.1.0 | 2024 年 8 月 4 日 |
---|---|
1.0.0 | 2024 年 7 月 19 日 |
0.4.4 | 2024 年 7 月 13 日 |
0.4.2 | 2024 年 4 月 29 日 |
0.3.1 | 2023 年 7 月 22 日 |
#118 在 图形 API 中
每月 217 次下载
26KB
577 行
App 中的 wgpu
将 wgpu 集成到现有的 iOS 或 Android 应用程序中。
wgpu 不依赖于任何窗口程序,因此它不提供窗口创建和管理功能。只有在创建基于窗口的 Surface
时,可能需要实现 raw-window-handle 抽象接口的参数 (可能需要 因为在 iOS/macOS 上,Surface
的实例可以直接通过 CAMetalLayer
创建)。wgpu 示例中使用的 winit
是一个跨平台的窗口创建和管理软件包,它实现了 raw-window-handle 抽象接口。它将接管整个应用程序的窗口管理和事件循环,对于游戏应用程序,wgpu + winit 的组合非常合适。
然而,大量非游戏应用程序也需要使用图形 API(如图表、图像过滤器等)。这些应用程序可能需要大量系统组件,以及能够自由控制各种输入设备(如笔、运动传感器)的能力。因此,在不使用第三方窗口管理库的情况下将这些应用程序中的 wgpu 集成进去将非常有用。
中文版文档
屏幕截图
https://github.com/jinleili/wgpu-in-app/assets/1001342/9209b81b-f336-4322-986e-70dd9bb155c3
iOS | iPadOS | visionOS
添加目标
# Add Apple device (iOS | iPadOS | visionOS) target
# Since iPhone 5 and later are all 64-bit devices, `armv7s-apple-ios` and `armv7-apple-ios` are not required.
rustup target add aarch64-apple-ios
# Add Apple Simulator target
# M1+ Mac
rustup target add aarch64-apple-ios-sim
为 Apple 真实设备编译
# Build for iOS | iPadOS
sh ./apple_lib_build.sh --release
然后,使用 Xcode 打开 Apple/wgpu_in_App.xcodeproj
并在 iPhone、iPad 上运行。
为 visionOS 模拟器编译
sh ./apple_lib_build.sh aarch64-apple-ios-sim --release
然后,使用 Xcode 15 Beta 2+ 打开 Apple/wgpu_in_App.xcodeproj
并在 visionOS 模拟器上运行。
关于 Rust 和 Swift 的交互
Android
设置 Android 环境
假设您的计算机已经安装了Android Studio,请转到 Android Studio
> 工具
> SDK 管理器
> Android SDK
> SDK 工具
。检查以下选项进行安装,然后点击确定。
- Android SDK 构建工具
- Android SDK 命令行工具
- NDK(并行安装)
然后,设置以下两个环境变量
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
安装 cargo 子命令
# from crates.io
cargo install cargo-so
# frome source code
cargo install --path cargo-so
构建
# Add build targets
# 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
# Build
sh ./android_lib_build.sh --release
桌面
# Use primary backend (metal vulkan or dx12, depend on your computer OS).
cargo run
# Use OpenGL backend (platforms other than Linux, need to add the `angle` feature).
# https://github.com/gfx-rs/wgpu/pull/2461
WGPU_BACKEND=gl cargo run --features=angle
# Use Vulkan backend (on macOS, need to add the `vulkan-portability` feature)
# https://github.com/gfx-rs/wgpu/pull/2488
WGPU_BACKEND=vk cargo run --features=vulkan-portability
# Then, press 0, 1, 2, 3, 4 keys change running example.
依赖项
~6–43MB
~740K SLoC