Enum rsvg_convert::Surface
source · pub(crate) enum Surface {
Png(ImageSurface, OutputStream),
Pdf(PdfSurface, Size),
Ps(PsSurface, Size),
Svg(SvgSurface),
}
Variants§
Implementations§
source§impl Surface
impl Surface
pub fn new( format: Format, size: Size, stream: OutputStream, unit: LengthUnit ) -> Result<Self, Error>
pub(crate) fn new_for_png( size: Size, stream: OutputStream ) -> Result<Self, Error>
pub(crate) fn new_for_pdf( size: Size, stream: OutputStream, version: Option<PdfVersion> ) -> Result<Self, Error>
pub(crate) fn new_for_ps( size: Size, stream: OutputStream, eps: bool ) -> Result<Self, Error>
pub(crate) fn new_for_svg( size: Size, stream: OutputStream, unit: LengthUnit ) -> Result<Self, Error>
pub fn render( &self, renderer: &CairoRenderer<'_>, left: f64, top: f64, final_size: Size, geometry: Rectangle, background_color: Option<Color>, id: Option<&str> ) -> Result<(), Error>
pub fn finish(self) -> Result<(), Error>
Methods from Deref<Target = Surface>§
pub fn to_raw_none(&self) -> *mut cairo_surface_t
pub fn create_similar( &self, content: Content, width: i32, height: i32 ) -> Result<Surface, Error>
pub fn create_for_rectangle(&self, bounds: Rectangle) -> Result<Surface, Error>
pub fn mime_data(&self, mime_type: &str) -> Option<Vec<u8>>
pub unsafe fn mime_data_raw(&self, mime_type: &str) -> Option<&[u8]>
pub fn set_mime_data<T>(&self, mime_type: &str, slice: T) -> Result<(), Error>
pub fn supports_mime_type(&self, mime_type: &str) -> bool
pub fn device(&self) -> Option<Device>
pub fn content(&self) -> Content
pub fn set_device_offset(&self, x_offset: f64, y_offset: f64)
pub fn device_offset(&self) -> (f64, f64)
pub fn set_device_scale(&self, x_scale: f64, y_scale: f64)
pub fn device_scale(&self) -> (f64, f64)
pub fn set_fallback_resolution( &self, x_pixels_per_inch: f64, y_pixels_per_inch: f64 )
pub fn fallback_resolution(&self) -> (f64, f64)
pub fn create_similar_image( &self, format: Format, width: i32, height: i32 ) -> Result<ImageSurface, Error>
pub fn map_to_image( &self, extents: Option<RectangleInt> ) -> Result<MappedImageSurface, Error>
pub fn mark_dirty(&self)
pub fn mark_dirty_rectangle(&self, x: i32, y: i32, width: i32, height: i32)
pub fn status(&self) -> Result<(), Error>
pub fn set_user_data<T>(
&self,
key: &'static UserDataKey<T>,
value: Rc<T>
) -> Result<(), Error>where
T: 'static,
pub fn set_user_data<T>(
&self,
key: &'static UserDataKey<T>,
value: Rc<T>
) -> Result<(), Error>where
T: 'static,
Attach user data to self
for the given key
.
pub fn user_data<T>(&self, key: &'static UserDataKey<T>) -> Option<Rc<T>>where
T: 'static,
pub fn user_data<T>(&self, key: &'static UserDataKey<T>) -> Option<Rc<T>>where
T: 'static,
Return the user data previously attached to self
with the given key
, if any.
pub fn user_data_ptr<T>(
&self,
key: &'static UserDataKey<T>
) -> Option<NonNull<T>>where
T: 'static,
pub fn user_data_ptr<T>(
&self,
key: &'static UserDataKey<T>
) -> Option<NonNull<T>>where
T: 'static,
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.
pub fn remove_user_data<T>(
&self,
key: &'static UserDataKey<T>
) -> Result<(), Error>where
T: 'static,
pub fn remove_user_data<T>(
&self,
key: &'static UserDataKey<T>
) -> Result<(), Error>where
T: 'static,
Unattached from self
the user data associated with key
, if any.
If there is no other Rc
strong reference, the data is destroyed.
pub fn flush(&self)
pub fn finish(&self)
pub fn type_(&self) -> SurfaceType
pub fn write_to_png<W>(&self, stream: &mut W) -> Result<(), IoError>where
W: Write,
pub fn write_to_png<W>(&self, stream: &mut W) -> Result<(), IoError>where
W: Write,
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
]
pub fn finish_output_stream(&self) -> Result<Box<dyn Any>, StreamWithError>
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§
Auto Trait Implementations§
impl RefUnwindSafe for Surface
impl !Send for Surface
impl !Sync for Surface
impl Unpin for Surface
impl UnwindSafe for Surface
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more§impl<T> Pointable for T
impl<T> Pointable for T
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self
from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self
is actually part of its subset T
(and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset
but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self
to the equivalent element of its superset.