initial commit

This commit is contained in:
2025-11-15 18:21:10 +03:00
commit 6219647c0e
7 changed files with 4090 additions and 0 deletions
+1
View File
@@ -0,0 +1 @@
/target
Generated
+3967
View File
File diff suppressed because it is too large Load Diff
+36
View File
@@ -0,0 +1,36 @@
[package]
name = "egui_android_template"
version = "0.1.0"
edition = "2024"
[dependencies]
egui = { version = "0.33.2", default-features = false, features = [
"default_fonts",
"rayon",
] }
log = "0.4"
[target.'cfg(not(target_os="android"))'.dependencies]
eframe = { version = "0.33.2", default-features = false, features = [
"default_fonts",
"glow",
"wayland",
"x11",
"accesskit",
] }
[target.'cfg(target_os="android")'.dependencies]
winit = { version = "0.30.12", features = ["android-native-activity"] }
eframe = { version = "0.33.2", default-features = false, features = [
"default_fonts",
"glow",
"android-native-activity",
] }
android_logger = "0.13"
android-activity = { version = "0.6.0", features = ["native-activity"] }
[lib]
crate-type = ["cdylib"]
+9
View File
@@ -0,0 +1,9 @@
Build on PC
```bash
cargo build
```
Build on android (using xbuild)
```bash
x build --platform android --arch arm64 --format apk --release
```
+29
View File
@@ -0,0 +1,29 @@
use eframe::{App, Frame, NativeOptions};
use egui::{CentralPanel, Context};
use std::error::Error;
pub struct Application {}
impl Application {
pub fn new() -> Self {
Application {}
}
}
impl App for Application {
fn update(&mut self, ctx: &Context, _frame: &mut Frame) {
CentralPanel::default().show(ctx, |_ui| {});
ctx.request_repaint();
}
}
pub fn run(options: NativeOptions) -> Result<(), Box<dyn Error>> {
match eframe::run_native(
"EGUI Android Example",
options,
Box::new(|_cc| Ok(Box::new(Application::new()))),
) {
Ok(_) => Ok(()),
Err(err) => Err(err.into()),
}
}
+28
View File
@@ -0,0 +1,28 @@
#![cfg(target_os = "android")]
mod gui;
use eframe::{HardwareAcceleration, NativeOptions};
use egui::ViewportBuilder;
use winit::platform::android::activity::AndroidApp;
use std::error::Error;
#[unsafe(no_mangle)]
fn android_main(app: AndroidApp) -> Result<(), Box<dyn Error>> {
android_logger::init_once(
android_logger::Config::default().with_max_level(log::LevelFilter::Warn),
);
let opts = NativeOptions {
android_app: Some(app),
vsync: true,
centered: true,
hardware_acceleration: HardwareAcceleration::Preferred,
viewport: ViewportBuilder::default().with_app_id("com.example.egui"),
..Default::default()
};
gui::run(opts)
}
+20
View File
@@ -0,0 +1,20 @@
#[cfg(not(target_os = "android"))]
pub mod gui;
use eframe::{HardwareAcceleration, NativeOptions};
use egui::ViewportBuilder;
use std::error::Error;
fn main() -> Result<(), Box<dyn Error>> {
let opts = NativeOptions {
vsync: true,
centered: true,
hardware_acceleration: HardwareAcceleration::Preferred,
viewport: ViewportBuilder::default().with_app_id("com.example.egui"),
..Default::default()
};
gui::run(opts)
}