| 624 | #[no_mangle] |
| 625 | #[inline(never)] |
| 626 | pub unsafe extern "C" fn liq_image_create_rgba<'pixels>(attr: &liq_attr, pixels: *const liq_color, width: c_uint, height: c_uint, gamma: f64) -> Option<Box<liq_image<'pixels>>> { |
| 627 | if liq_received_invalid_pointer(pixels.cast()) { return None; } |
| 628 | if !check_image_size(attr, width, height) { return None; } |
| 629 | let rows = (0..height as usize).map(move |i| pixels.add(width as usize * i)).collect(); |
| 630 | liq_image_create_rgba_bitmap_impl(&attr.inner, rows, width as _, height as _, gamma) |
| 631 | .map(move |inner| Box::new(liq_image { |
| 632 | magic_header: LIQ_IMAGE_MAGIC, |
| 633 | inner: ManuallyDrop::new(inner), |
| 634 | c_api_free: attr.c_api_free, |
| 635 | })) |
| 636 | } |
| 637 | |
| 638 | #[no_mangle] |
| 639 | #[inline(never)] |