Files
9e2d31ad6d V2.5.0 - Opencl + more github actions + code refactor + tests + custom threshold + lite + dev
* 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]>
2025-04-27 14:00:11 +02:00

58 lines
1.5 KiB
TOML

[package]
name = "rustautogui"
authors = ["Davor Marusic"]
version = "2.5.0"
edition = "2021"
description = "Highly optimized GUI automation library for controlling the mouse and keyboard, with template matching support."
license = "MIT"
readme = "README.md"
homepage = "https://github.com/DavorMar/rustautogui"
keywords = ["automation", "autogui", "gui", "mouse", "keyboard"]
categories = ["gui", "development-tools"]
exclude = ["testspeed.gif", "tests/testing_images/"]
repository = "https://github.com/DavorMar/rustautogui"
[dependencies]
rustfft = { version = "6.2.0", optional = true }
rayon = { version = "1.10.0", optional = true }
num-complex = { version = "0.4.6", optional = true }
ocl = { version = "0.19.7", optional = true }
image = { version = "0.25", optional = true}
rand = "0.9"
[target.'cfg(target_os = "linux")'.dependencies]
x11 = "2.21.0"
[target.'cfg(target_os = "macos")'.dependencies]
core-graphics = {version = "0.23.2", features = ["highsierra"]}
[target.'cfg(windows)'.dependencies]
winapi = { version = "0.3", features = ["winuser", "windef"] }
[features]
default = ["full"]
full = ["rustfft", "num-complex", "rayon", "image"]
lite = []
opencl = ["ocl", "full"]
dev = ["opencl"]
[[example]]
name = "opencl_example"
path = "examples/opencl_example.rs"
required-features = ["opencl"]
[[example]]
name = "find_image_move_mouse_and_input"
path = "examples/find_image_move_mouse_and_input.rs"
required-features = ["full"]
[[example]]
name = "open_github_page"
path = "examples/open_github_page.rs"
required-features = ["full"]