44 lines
1.2 KiB
Rust
44 lines
1.2 KiB
Rust
use crate::{
|
|
commands::{wrap_command, wrap_origin_accessors},
|
|
macros::{wrap_fields, wrap_functions},
|
|
};
|
|
use servicepoint::{Bitmap, BitmapCommand, CompressionCode, Origin};
|
|
use std::ptr::NonNull;
|
|
|
|
wrap_command!(Bitmap);
|
|
|
|
wrap_fields!(BitmapCommand;
|
|
prop bitmap: Bitmap { get mut; set move; };
|
|
prop compression: CompressionCode { get; set; };
|
|
);
|
|
|
|
wrap_origin_accessors!(BitmapCommand);
|
|
|
|
wrap_functions!(associate BitmapCommand;
|
|
/// Sets a window of pixels to the specified values.
|
|
///
|
|
/// The passed [Bitmap] gets consumed.
|
|
///
|
|
/// Returns: a new [BitmapCommand] instance.
|
|
fn new(
|
|
bitmap: move NonNull<Bitmap>,
|
|
origin_x: val usize,
|
|
origin_y: val usize,
|
|
compression: val CompressionCode,
|
|
) -> move NonNull<BitmapCommand> {
|
|
BitmapCommand {
|
|
bitmap,
|
|
origin: Origin::new(origin_x, origin_y),
|
|
compression,
|
|
}
|
|
};
|
|
|
|
/// Move the provided [Bitmap] into a new [BitmapCommand],
|
|
/// leaving other fields as their default values.
|
|
///
|
|
/// Rust equivalent: `BitmapCommand::from(bitmap)`
|
|
fn from_bitmap(bitmap: move NonNull<Bitmap>) -> move NonNull<BitmapCommand> {
|
|
bitmap.into()
|
|
};
|
|
);
|