mirror of
https://github.com/hanzoai/rustautogui.git
synced 2026-10-30 18:23:05 +00:00
* opencl first buggy implementation * more work on opencl. Buggy atm * WORKING ALGORITHM ATM but slow * working opencl code with implemented 2 step fully * first reworks. addition of new fields in struct and some cleanup * more changes. added a struct for memory buffers, creation of it, new functions for gui dedicated opencl template match * more changes, no errors * added to main functions in lib. Not tested yet * first tests done, code working. Needs more optimisation * some testing prints, code retested after fix in time measurement. Looks promising * revert back * tested optimisations reimplemented and working * a bit more optimisations * added opencl feature * fmt * added change ocl state, graceful exits * windows fix * small optimisation * macos fix * different variations of tests * currently a fine solution to auto determine treshold of fast segmentation * derivative activation only in opencl mode * readme update * add v2 algorithm * added table of contents to readme * update changelog (no date included yet) * moved all the additional v2 buffers under GpuMemoryPointers struct * additional work on v2 * unifying v1 and v2 kernels + other data * working on adding devices info * more work done on detecting devices, creating kernels and moving kernels to precalculated * working state of code. Implemented different OCL things, Kernel building outside of OCL Kernel storage, most of logic for V2. * added v2 into logic. remaining to create standalone lib.rs functions * various fixes * added precision to buffer passed to GPU and updated * adding more matchmodes and covering * cleaning up code * moving some enums to structs * changes on lots of stuff, including changing device for OCL * implemented lite feature * changes on lite code, removed problems * renamed template match * cleaned unnecesary conditions * fixed issue with memory not cleaned up on v2 * readme update and fix on matchmode * fix for region on ocl matching * fixes for ltie mode * added opencl example * fix for v2 opencl * fix on opencl device choice to not take cpu * lite fixes on macos * linux fixes * windows fix * moved files to CORE folder * full code restructure * full code restructure * started with testing * more tests * additional mac tests * linux additions * linux fixes + cargo.toml editing * more fixes * clippy fixes * github action update --------- Co-authored-by: DavorMar <[email protected]>
62 lines
1.9 KiB
Rust
62 lines
1.9 KiB
Rust
// run with cargo test --tests --release -- --nocapture
|
|
|
|
#[cfg(feature = "dev")]
|
|
mod multi_test {
|
|
use rustautogui::{self, imgtools, RustAutoGui};
|
|
|
|
#[test]
|
|
fn main_test() {
|
|
let mut gui = rustautogui::RustAutoGui::new(true).unwrap();
|
|
gui.list_devices();
|
|
load_imgs(&mut gui);
|
|
gui.loop_find_stored_image_on_screen_and_move_mouse(0.9, 1.0, 10, "step_0")
|
|
.unwrap();
|
|
gui.left_click().unwrap();
|
|
gui.loop_find_stored_image_on_screen_and_move_mouse(0.9, 0.5, 10, "step_1")
|
|
.unwrap();
|
|
gui.left_click().unwrap();
|
|
gui.loop_find_stored_image_on_screen_and_move_mouse(0.9, 1.5, 10, "step_2")
|
|
.unwrap();
|
|
gui.left_click().unwrap();
|
|
gui.keyboard_input("test!@#45<>/\\|{}[]&*()_+").unwrap();
|
|
}
|
|
|
|
fn load_imgs(gui: &mut RustAutoGui) {
|
|
#[cfg(target_os = "windows")]
|
|
let insert = 'w';
|
|
#[cfg(target_os = "macos")]
|
|
let insert = "m";
|
|
#[cfg(target_os = "linux")]
|
|
let insert = 'l';
|
|
let img: image::ImageBuffer<image::Luma<u8>, Vec<u8>> = imgtools::load_image_bw(
|
|
format!("tests/testing_images/gui_tests/step_1_{}.png", insert).as_str(),
|
|
)
|
|
.unwrap();
|
|
gui.store_template_from_imagebuffer_custom(
|
|
img,
|
|
None,
|
|
rustautogui::MatchMode::SegmentedOcl,
|
|
"step_0",
|
|
0.9,
|
|
)
|
|
.unwrap();
|
|
|
|
gui.store_template_from_file(
|
|
format!("tests/testing_images/gui_tests/step_2_{}.png", insert).as_str(),
|
|
None,
|
|
rustautogui::MatchMode::SegmentedOclV2,
|
|
"step_1",
|
|
)
|
|
.unwrap();
|
|
|
|
gui.store_template_from_file_custom(
|
|
format!("tests/testing_images/gui_tests/step_3_{}.png", insert).as_str(),
|
|
None,
|
|
rustautogui::MatchMode::Segmented,
|
|
"step_2",
|
|
0.8,
|
|
)
|
|
.unwrap();
|
|
}
|
|
}
|