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
)