android_native_window 0.5.4

Android Native Window ffi ,supported to Android15.
Documentation
use std::ffi::{c_char, c_uchar, c_void};

#[repr(C)]
#[derive(Debug)]
pub struct DisPlayInfo {
    pub orientation: i32,
    pub width: i32,
    pub height: i32,
}
#[link(name = "native-window-control", kind = "static")]
#[allow(dead_code)]
extern "C" {

    fn greeting() -> DisPlayInfo;
    fn get_display_info() -> DisPlayInfo;
    fn create_native_window(
        window_name: *const c_char,
        width: i32,
        hight: i32,
        can_screenshot: c_uchar,
    ) -> *mut c_void;
    fn destroy_native_window(win: *mut c_void);
}
#[allow(dead_code)]
pub fn safe_greeting() -> DisPlayInfo {
    unsafe { greeting() }
}
pub fn safe_get_display_info() -> DisPlayInfo {
    unsafe {
        {
            get_display_info()
        }
    }
}
pub fn safe_create_native_window(
    window_name: &str,
    width: i32,
    hight: i32,
    can_screenshot: bool,
) -> *mut c_void {
    unsafe {
        let win_name = std::ffi::CString::new(window_name)
            .expect("window name format error,please try again.");

        create_native_window(win_name.as_ptr(), width, hight, {
            if can_screenshot {
                1
            } else {
                0
            }
        })
    }
}
#[allow(dead_code)]
pub fn safe_destroy_native_window(win: *mut c_void) {
    unsafe { destroy_native_window(win) }
}