pub enum ClippingStrategy {
Device,
DeviceAndEngine,
Engine,
}
Expand description
The underlying C structure DevDesc
has two fields related to clipping:
canClip
deviceClip
(available on R >= 4.1)
canClip
indicates whether the device has clipping functionality at all. If
not, the graphic engine kindly clips before sending the drawing operations
to the device. But, this isn’t very ideal in some points. Especially, it’s
bad that the engine will omit “any text that does not appear to be wholly
inside the clipping region,” according to the R Internals. So, the device
should implement clip()
and set canClip
to true
if possible.
Even when canClip
is true
, the engine does clip to protect the device
from large values by default. But, for efficiency, the device can take all
the responsibility of clipping. That is deviceClip
, which was introduced
in R 4.1. If this is set to true
, the engine will perform no clipping at
all. For more details, please refer to [the offical announcement blog post].
So, in short, a graphic device can choose either of the following:
- clipping without the help of the graphic engine (
Device
) - clipping with the help of the graphic engine (
DeviceAndEngine
) - no clipping at all (
Engine
)
Variants§
Auto Trait Implementations§
impl Freeze for ClippingStrategy
impl RefUnwindSafe for ClippingStrategy
impl Send for ClippingStrategy
impl Sync for ClippingStrategy
impl Unpin for ClippingStrategy
impl UnwindSafe for ClippingStrategy
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