34 lines
1.1 KiB
Rust
34 lines
1.1 KiB
Rust
use hcie_engine_api::Engine;
|
|
|
|
#[test]
|
|
fn test_layer_mask_api_and_editing() {
|
|
let mut engine = Engine::new(100, 100);
|
|
let layer_id = engine.active_layer_id();
|
|
|
|
// Initially layer has no mask
|
|
assert!(!engine.has_layer_mask(layer_id));
|
|
assert!(engine.get_layer_mask_pixels(layer_id).is_none());
|
|
|
|
// Add layer mask
|
|
engine.add_layer_mask(layer_id);
|
|
assert!(engine.has_layer_mask(layer_id));
|
|
let mask = engine.get_layer_mask_pixels(layer_id).expect("Mask pixels must exist");
|
|
assert_eq!(mask.len(), 100 * 100);
|
|
assert_eq!(mask[0], 255);
|
|
|
|
// Toggle mask editing mode
|
|
assert!(!engine.is_editing_mask());
|
|
engine.set_editing_mask(true);
|
|
assert!(engine.is_editing_mask());
|
|
|
|
// Set custom mask pixels
|
|
let custom_mask = vec![128u8; 100 * 100];
|
|
engine.set_layer_mask_pixels(layer_id, custom_mask.clone(), Some([0, 0, 100, 100]));
|
|
assert_eq!(engine.get_layer_mask_pixels(layer_id), Some(custom_mask.as_slice()));
|
|
|
|
// Remove layer mask
|
|
engine.remove_layer_mask(layer_id);
|
|
assert!(!engine.has_layer_mask(layer_id));
|
|
assert!(engine.get_layer_mask_pixels(layer_id).is_none());
|
|
}
|