cairo

Struct ImageSurface

Source
pub struct ImageSurface(/* private fields */);

Implementations§

Source§

impl ImageSurface

Source§

impl ImageSurface

Source

pub fn create( format: Format, width: i32, height: i32, ) -> Result<ImageSurface, Error>

Source

pub unsafe fn create_for_data_unsafe( data: *mut u8, format: Format, width: i32, height: i32, stride: i32, ) -> Result<ImageSurface, Error>

Creates an image surface for the provided pixel data.

  • The pointer data is the beginning of the underlying slice, and at least width * stride succeeding bytes should be allocated.
  • data must live longer than any reference to the returned surface.
  • You have to free data by yourself.
Source

pub fn create_for_data<D: AsMut<[u8]> + 'static>( data: D, format: Format, width: i32, height: i32, stride: i32, ) -> Result<ImageSurface, Error>

Source

pub fn data(&mut self) -> Result<ImageSurfaceData<'_>, BorrowError>

Source

pub fn take_data(self) -> Result<ImageSurfaceDataOwned, BorrowError>

Source

pub fn with_data<F: FnOnce(&[u8])>(&self, f: F) -> Result<(), BorrowError>

Source

pub fn format(&self) -> Format

Source

pub fn height(&self) -> i32

Source

pub fn stride(&self) -> i32

Source

pub fn width(&self) -> i32

Source§

impl ImageSurface

Methods from Deref<Target = Surface>§

Source

pub fn to_raw_none(&self) -> *mut cairo_surface_t

Source

pub fn create_similar( &self, content: Content, width: i32, height: i32, ) -> Result<Surface, Error>

Source

pub fn create_for_rectangle(&self, bounds: Rectangle) -> Result<Surface, Error>

Source

pub fn mime_data(&self, mime_type: &str) -> Option<Vec<u8>>

Source

pub unsafe fn mime_data_raw(&self, mime_type: &str) -> Option<&[u8]>

Source

pub fn set_mime_data<T: AsRef<[u8]> + 'static>( &self, mime_type: &str, slice: T, ) -> Result<(), Error>

Source

pub fn supports_mime_type(&self, mime_type: &str) -> bool

Source

pub fn device(&self) -> Option<Device>

Source

pub fn content(&self) -> Content

Source

pub fn set_device_offset(&self, x_offset: f64, y_offset: f64)

Source

pub fn device_offset(&self) -> (f64, f64)

Source

pub fn set_device_scale(&self, x_scale: f64, y_scale: f64)

Source

pub fn device_scale(&self) -> (f64, f64)

Source

pub fn set_fallback_resolution( &self, x_pixels_per_inch: f64, y_pixels_per_inch: f64, )

Source

pub fn fallback_resolution(&self) -> (f64, f64)

Source

pub fn create_similar_image( &self, format: Format, width: i32, height: i32, ) -> Result<ImageSurface, Error>

Source

pub fn map_to_image( &self, extents: Option<RectangleInt>, ) -> Result<MappedImageSurface, Error>

Source

pub fn mark_dirty(&self)

Source

pub fn mark_dirty_rectangle(&self, x: i32, y: i32, width: i32, height: i32)

Source

pub fn status(&self) -> Result<(), Error>

Source

pub fn set_user_data<T: 'static>( &self, key: &'static UserDataKey<T>, value: Rc<T>, ) -> Result<(), Error>

Attach user data to self for the given key.

Source

pub fn user_data<T: 'static>( &self, key: &'static UserDataKey<T>, ) -> Option<Rc<T>>

Return the user data previously attached to self with the given key, if any.

Source

pub fn user_data_ptr<T: 'static>( &self, key: &'static UserDataKey<T>, ) -> Option<NonNull<T>>

Return the user data previously attached to self with the given key, if any, without incrementing the reference count.

The pointer is valid when it is returned from this method, until the cairo object that self represents is destroyed or remove_user_data or set_user_data is called with the same key.

Source

pub fn remove_user_data<T: 'static>( &self, key: &'static UserDataKey<T>, ) -> Result<(), Error>

Unattached from self the user data associated with key, if any. If there is no other Rc strong reference, the data is destroyed.

Source

pub fn flush(&self)

Source

pub fn finish(&self)

Source

pub fn type_(&self) -> SurfaceType

Source

pub fn write_to_png<W: Write>(&self, stream: &mut W) -> Result<(), IoError>

This function writes the surface as a PNG image to the given stream.

If the underlying surface does not support being written as a PNG, this will return Error::SurfaceTypeMismatch

Source

pub fn finish_output_stream(&self) -> Result<Box<dyn Any>, StreamWithError>

Finish the surface, then remove and return the output stream if any.

This calls Surface::finish, to make sure pending writes are done.

This is relevant for surfaces created for example with crate::PdfSurface::for_stream.

Use Box::downcast to recover the concrete stream type.

§Panics

This method panics if:

  • This method was already called for this surface, or
  • This surface was not created with an output stream in the first place, or
  • A previous write to this surface panicked, or
  • A previous write happened while another write was ongoing, or
  • A write is ongoing now.

The latter two cases can only occur with a pathological output stream type that accesses the same surface again from Write::write_all.

Trait Implementations§

Source§

impl AsRef<ImageSurface> for MappedImageSurface

Source§

fn as_ref(&self) -> &ImageSurface

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl AsRef<Surface> for ImageSurface

Source§

fn as_ref(&self) -> &Surface

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl Clone for ImageSurface

Source§

fn clone(&self) -> ImageSurface

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ImageSurface

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Deref for ImageSurface

Source§

type Target = Surface

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Surface

Dereferences the value.
Source§

impl From<ImageSurface> for Value

Source§

fn from(v: ImageSurface) -> Self

Converts to this type from the input type.
Source§

impl FromGlibPtrBorrow<*mut cairo_surface_t> for ImageSurface

Source§

impl FromGlibPtrFull<*mut cairo_surface_t> for ImageSurface

Source§

impl FromGlibPtrNone<*mut cairo_surface_t> for ImageSurface

Source§

impl<'a> FromValue<'a> for &'a ImageSurface

Source§

type Checker = GenericValueTypeOrNoneChecker<&'a ImageSurface>

Value type checker.
Source§

unsafe fn from_value(value: &'a Value) -> Self

Get the contained value from a Value. Read more
Source§

impl<'a> FromValue<'a> for ImageSurface

Source§

type Checker = GenericValueTypeOrNoneChecker<ImageSurface>

Value type checker.
Source§

unsafe fn from_value(value: &'a Value) -> Self

Get the contained value from a Value. Read more
Source§

impl IntoGlibPtr<*mut cairo_surface_t> for ImageSurface

Source§

unsafe fn into_glib_ptr(self) -> *mut cairo_surface_t

Transfer: full.
Source§

impl StaticType for ImageSurface

Source§

fn static_type() -> Type

Returns the type identifier of Self.
Source§

impl<'a> ToGlibPtr<'a, *mut cairo_surface_t> for ImageSurface

Source§

type Storage = PhantomData<&'a Surface>

Source§

fn to_glib_none(&'a self) -> Stash<'a, *mut cairo_surface_t, Self>

Transfer: none. Read more
Source§

fn to_glib_full(&self) -> *mut cairo_surface_t

Transfer: full. Read more
Source§

fn to_glib_container(&'a self) -> Stash<'a, P, Self>

Transfer: container. Read more
Source§

impl ToValue for ImageSurface

Source§

fn to_value(&self) -> Value

Convert a value to a Value.
Source§

fn value_type(&self) -> Type

Returns the type identifier of self. Read more
Source§

impl ToValueOptional for ImageSurface

Source§

fn to_value_optional(s: Option<&Self>) -> Value

Convert an Option to a Value.
Source§

impl TryFrom<Surface> for ImageSurface

Source§

type Error = Surface

The type returned in the event of a conversion error.
Source§

fn try_from(surface: Surface) -> Result<ImageSurface, Surface>

Performs the conversion.
Source§

impl ValueType for ImageSurface

Source§

type Type = ImageSurface

Type to get the Type from. Read more
Source§

impl ValueTypeOptional for ImageSurface

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoClosureReturnValue for T
where T: Into<Value>,

Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<T> StaticTypeExt for T
where T: StaticType,

Source§

fn ensure_type()

Ensures that the type has been registered with the type system.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T> TryFromClosureReturnValue for T
where T: for<'a> FromValue<'a> + StaticType + 'static,

Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<'a, T, C, E> FromValueOptional<'a> for T
where T: FromValue<'a, Checker = C>, C: ValueTypeChecker<Error = ValueTypeMismatchOrNoneError<E>>, E: Error + Send + 'static,