AndroidSurfaceImgui
AndroidSurfaceImgui copied to clipboard
Example for Android Dear ImGui, support the remote draw.
AndroidSurfaceImgui
介绍
- 支持RPC进行多进程/远程绘制。
- 支持鼠标滚轮
- 支持物理键盘输入
- 支持横/竖屏自动切换
在Android使用上API创建Surface并进行Dear ImGui的绘制。
注意:如果拥有Surface的进程的用户权限在shell之下,则你的Surface不会被系统添加到根视图,也就是不会显示出来,详情请看:SurfaceFlinger.cpp
支持系统版本
- [x] Android9
- [x] Android10
- [x] Android11
- [x] Android12
- [x] Android13
- [x] Android14
编译
- 确保在项目根目录打开命令行终端 。
- 执行
git submodule init。 - 执行
git submodule update。 - 执行
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=${NDK_PATH}build/cmake/android.toolchain.cmake -DANDROID_PLATFORM=android-23 -DANDROID_ABI=${PLATFORM} -S . -B build -G Ninja,其中${NDK_PATH}需要替换为你的NDK路径,${PLATFORM}替换成你想要编译出的目标平台。 - 执行
cmake --build build --config Release。 - 编译完成。
你也可以直接使用build.bat来进行批量编译,默认编译armeabi-v7a arm64-v8a x86 x86_64四个版本,可修改脚本中的ANDROID_ABIS变量来进行更改。
脚本有三个可选参数分别为:NDK路径、最低支持SDK版本、CMake程序路径,不设置则脚本自动检测NDK_PATH与CMake工具链,如果都没有则使用脚本默认内置路径。
使用
例子请看:src/test-ui/main.cc

RPC使用
- Server:src/test-ui/canvas.cc
- Client:src/test-ui/render.cc