//! Image and texture abstractions corresponding to `LibreMetaverse.Imaging`.
//!
//! The default surface provides managed images, native `TGA`/`DDS` handling,
//! and the pure-Rust `rust-j2k` JPEG 2000 backend. Enable `jpeg2000` for the
//! optional audited system `OpenJPEG` adapter. Consumers that only need the
//! format-neutral image types can disable default features.

extern crate self as libremetaverse_imaging;

pub mod codec;

#[cfg(any(feature = "jpeg2000", feature = "rust-j2k"))]
mod jpeg2000;

mod generated;
mod managed_image;

pub use generated::*;
#[cfg(feature = "jpeg2000")]
pub use jpeg2000::J2kCodec;
#[cfg(feature = "rust-j2k")]
pub use jpeg2000::RustJ2kCodec;
#[cfg(any(feature = "jpeg2000", feature = "rust-j2k"))]
pub use jpeg2000::{J2kCompression, J2kDecodeOptions, J2kEncodeOptions, J2kFormat};
pub use libremetaverse_types::Error;
pub use managed_image::{DEFAULT_MAX_ENCODED_BYTES, DEFAULT_MAX_PIXELS};
