Struct RefHandle
pub struct RefHandle<N>(/* private fields */)
where
N: NativeDrop;Expand description
A wrapper type that represents a native type with a pointer to the native object.
Implementations§
§impl RefHandle<SkImageGenerator>
impl RefHandle<SkImageGenerator>
pub fn unique_id(&self) -> u32
pub fn encoded_data(&mut self) -> Option<RCHandle<SkData>>
pub fn info(&self) -> &Handle<SkImageInfo>
pub fn is_valid(&self, recorder: Option<&mut dyn Recorder>) -> bool
pub fn is_protected(self) -> bool
pub fn get_pixels( &mut self, info: &Handle<SkImageInfo>, pixels: &mut [u8], row_bytes: usize, ) -> bool
pub fn query_yuva_info( &self, supported_data_types: &Handle<SkYUVAPixmapInfo_SupportedDataTypes>, ) -> Option<Handle<SkYUVAPixmapInfo>>
pub fn is_texture_generator(&self) -> bool
pub fn from_encoded( _encoded: impl Into<RCHandle<SkData>>, ) -> Option<RefHandle<SkImageGenerator>>
None. Use Image::deferred_from_encoded_data() or Codec::from_data()§impl RefHandle<SkPathBuilder>
impl RefHandle<SkPathBuilder>
pub fn new() -> RefHandle<SkPathBuilder>
pub fn new() -> RefHandle<SkPathBuilder>
Constructs an empty PathBuilder. By default, PathBuilder has no verbs, no Point, and
no weights. PathFillType is set to PathFillType::Winding.
§Returns
empty PathBuilder
pub fn new_with_fill_type(fill_type: SkPathFillType) -> RefHandle<SkPathBuilder>
pub fn new_with_fill_type(fill_type: SkPathFillType) -> RefHandle<SkPathBuilder>
Constructs an empty PathBuilder with the given PathFillType. By default, PathBuilder has no
verbs, no Point, and no weights.
fill_type:PathFillTypeto set on thePathBuilder.
§Returns
empty PathBuilder
pub fn new_path(path: &Handle<SkPath>) -> RefHandle<SkPathBuilder>
pub fn new_path(path: &Handle<SkPath>) -> RefHandle<SkPathBuilder>
Constructs a PathBuilder that is a copy of an existing Path.
Copies the PathFillType and replays all of the verbs from the Path into the PathBuilder.
path:Pathto copy
§Returns
pub fn fill_type(&self) -> SkPathFillType
pub fn fill_type(&self) -> SkPathFillType
pub fn compute_finite_bounds(&self) -> Option<Rect>
pub fn compute_finite_bounds(&self) -> Option<Rect>
Returns minimum and maximum axes values of Point array.
Returns None if PathBuilder contains no points.
Rect returned includes all Point added to PathBuilder, including Point associated
with PathVerb::Move that define empty contours.
If any of the points are non-finite, returns None.
§Returns
pub fn compute_tight_bounds(&self) -> Option<Rect>
pub fn compute_tight_bounds(&self) -> Option<Rect>
Like Self::compute_finite_bounds() but returns a ‘tight’ bounds, meaning when there are curve
segments, this computes the X/Y limits of the curve itself, not the curve’s control
point(s). For a polygon, this returns the same as Self::compute_finite_bounds().
pub fn compute_bounds(&self) -> Rect
👎Deprecated since 0.91.0: Use compute_finite_bounds() instead
pub fn compute_bounds(&self) -> Rect
pub fn snapshot(&self) -> Handle<SkPath>
pub fn snapshot(&self) -> Handle<SkPath>
Returns a Path representing the current state of the PathBuilder. The builder is
unchanged after returning the path.
§Returns
Path representing the current state of the builder.
pub fn snapshot_and_transform<'m>(
&self,
mx: impl Into<Option<&'m Matrix>>,
) -> Handle<SkPath>
pub fn snapshot_and_transform<'m>( &self, mx: impl Into<Option<&'m Matrix>>, ) -> Handle<SkPath>
Returns a Path representing the current state of the PathBuilder. The builder is
unchanged after returning the path.
mx: if present, applied to the points after they are copied into the resulting path.
§Returns
Path representing the current state of the builder.
pub fn detach(&mut self) -> Handle<SkPath>
pub fn detach(&mut self) -> Handle<SkPath>
Returns a Path representing the current state of the PathBuilder. The builder is
reset to empty after returning the path.
§Returns
Path representing the current state of the builder.
pub fn detach_and_transform<'m>(
&mut self,
mx: impl Into<Option<&'m Matrix>>,
) -> Handle<SkPath>
pub fn detach_and_transform<'m>( &mut self, mx: impl Into<Option<&'m Matrix>>, ) -> Handle<SkPath>
Returns a Path representing the current state of the PathBuilder. The builder is
reset to empty after returning the path.
mx: if present, applied to the points after they are copied into the resulting path.
§Returns
Path representing the current state of the builder.
pub fn set_fill_type(
&mut self,
ft: SkPathFillType,
) -> &mut RefHandle<SkPathBuilder>
pub fn set_fill_type( &mut self, ft: SkPathFillType, ) -> &mut RefHandle<SkPathBuilder>
Sets PathFillType, the rule used to fill Path. While there is no
check that ft is legal, values outside of PathFillType are not supported.
ft:PathFillTypeto be used byPaths generated from this builder.
§Returns
reference to PathBuilder
pub fn set_is_volatile(
&mut self,
is_volatile: bool,
) -> &mut RefHandle<SkPathBuilder>
pub fn set_is_volatile( &mut self, is_volatile: bool, ) -> &mut RefHandle<SkPathBuilder>
Specifies whether Path is volatile; whether it will be altered or discarded
by the caller after it is drawn. Path by default have volatile set false, allowing
Skia to attach a cache of data which speeds repeated drawing.
Mark temporary paths, discarded or modified after use, as volatile to inform Skia that the path need not be cached.
Mark animating Path volatile to improve performance.
Mark unchanging Path non-volatile to improve repeated rendering.
raster surface Path draws are affected by volatile for some shadows.
GPU surface Path draws are affected by volatile for some shadows and concave geometries.
is_volatile: true if caller will alterPathafter drawing
§Returns
reference to PathBuilder
pub fn reset(&mut self) -> &mut RefHandle<SkPathBuilder>
pub fn reset(&mut self) -> &mut RefHandle<SkPathBuilder>
Sets PathBuilder to its initial state.
Removes verb array, Point array, and weights, and sets PathFillType to PathFillType::Winding.
Internal storage associated with PathBuilder is preserved.
§Returns
reference to PathBuilder
pub fn move_to(&mut self, pt: impl Into<Point>) -> &mut RefHandle<SkPathBuilder>
pub fn move_to(&mut self, pt: impl Into<Point>) -> &mut RefHandle<SkPathBuilder>
Specifies the beginning of contour. If the previous verb was a “move” verb, then this just replaces the point value of that move, otherwise it appends a new “move” verb to the builder using the point.
Thus, each contour can only have 1 move verb in it (the last one specified).
pub fn line_to(&mut self, pt: impl Into<Point>) -> &mut RefHandle<SkPathBuilder>
pub fn line_to(&mut self, pt: impl Into<Point>) -> &mut RefHandle<SkPathBuilder>
Adds line from last point to Point p. If PathBuilder is empty, or last PathVerb is
PathVerb::Close, last point is set to (0, 0) before adding line.
line_to() first appends PathVerb::Move to verb array and (0, 0) to Point array, if needed.
line_to() then appends PathVerb::Line to verb array and Point p to Point array.
pt: endPointof added line
§Returns
reference to PathBuilder
pub fn quad_to(
&mut self,
p1: impl Into<Point>,
p2: impl Into<Point>,
) -> &mut RefHandle<SkPathBuilder>
pub fn quad_to( &mut self, p1: impl Into<Point>, p2: impl Into<Point>, ) -> &mut RefHandle<SkPathBuilder>
Adds quad from last point towards Point p1, to Point p2.
If PathBuilder is empty, or last PathVerb is PathVerb::Close, last point is set to (0, 0)
before adding quad.
Appends PathVerb::Move to verb array and (0, 0) to Point array, if needed;
then appends PathVerb::Quad to verb array; and Point p1, p2
to Point array.
§Returns
reference to PathBuilder
pub fn conic_to(
&mut self,
p1: impl Into<Point>,
p2: impl Into<Point>,
w: f32,
) -> &mut RefHandle<SkPathBuilder>
pub fn conic_to( &mut self, p1: impl Into<Point>, p2: impl Into<Point>, w: f32, ) -> &mut RefHandle<SkPathBuilder>
Adds conic from last point towards pt1, to pt2, weighted by w.
If PathBuilder is empty, or last PathVerb is PathVerb::Close, last point is set to (0, 0)
before adding conic.
Appends PathVerb::Move to verb array and (0, 0) to Point array, if needed.
If w is finite and not one, appends PathVerb::Conic to verb array;
and pt1, pt2 to Point array; and w to conic weights.
If w is one, appends PathVerb::Quad to verb array, and
pt1, pt2 to Point array.
If w is not finite, appends PathVerb::Line twice to verb array, and
pt1, pt2 to Point array.
§Returns
reference to PathBuilder
pub fn cubic_to(
&mut self,
p1: impl Into<Point>,
p2: impl Into<Point>,
p3: impl Into<Point>,
) -> &mut RefHandle<SkPathBuilder>
pub fn cubic_to( &mut self, p1: impl Into<Point>, p2: impl Into<Point>, p3: impl Into<Point>, ) -> &mut RefHandle<SkPathBuilder>
Adds cubic from last point towards Point p1, then towards Point p2, ending at
Point p3. If PathBuilder is empty, or last PathVerb is PathVerb::Close, last point is
set to (0, 0) before adding cubic.
Appends PathVerb::Move to verb array and (0, 0) to Point array, if needed;
then appends PathVerb::Cubic to verb array; and Point p1, p2, p3
to Point array.
§Returns
reference to PathBuilder
pub fn close(&mut self) -> &mut RefHandle<SkPathBuilder>
pub fn close(&mut self) -> &mut RefHandle<SkPathBuilder>
Appends PathVerb::Close to PathBuilder. A closed contour connects the first and last Point
with line, forming a continuous loop. Open and closed contour draw the same
with crate::PaintStyle::Fill. With crate::PaintStyle::Stroke, open contour draws
crate::PaintCap at contour start and end; closed contour draws
crate::PaintJoin at contour start and end.
close() has no effect if PathBuilder is empty or last PathVerb is PathVerb::Close.
§Returns
reference to PathBuilder
pub fn polyline_to(&mut self, points: &[Point]) -> &mut RefHandle<SkPathBuilder>
pub fn polyline_to(&mut self, points: &[Point]) -> &mut RefHandle<SkPathBuilder>
pub fn r_move_to(
&mut self,
pt: impl Into<Point>,
) -> &mut RefHandle<SkPathBuilder>
pub fn r_move_to( &mut self, pt: impl Into<Point>, ) -> &mut RefHandle<SkPathBuilder>
Adds beginning of contour relative to last point.
If PathBuilder is empty, starts contour at (dx, dy).
Otherwise, start contour at last point offset by (dx, dy).
Function name stands for “relative move to”.
pt: vector offset from last point to contour start
§Returns
reference to PathBuilder
pub fn r_line_to(
&mut self,
pt: impl Into<Point>,
) -> &mut RefHandle<SkPathBuilder>
pub fn r_line_to( &mut self, pt: impl Into<Point>, ) -> &mut RefHandle<SkPathBuilder>
Adds line from last point to vector given by pt. If PathBuilder is empty, or last
PathVerb is PathVerb::Close, last point is set to (0, 0) before adding line.
Appends PathVerb::Move to verb array and (0, 0) to Point array, if needed;
then appends PathVerb::Line to verb array and line end to Point array.
Line end is last point plus vector given by pt.
Function name stands for “relative line to”.
pt: vector offset from last point to line end
§Returns
reference to PathBuilder
pub fn r_quad_to(
&mut self,
pt1: impl Into<Point>,
pt2: impl Into<Point>,
) -> &mut RefHandle<SkPathBuilder>
pub fn r_quad_to( &mut self, pt1: impl Into<Point>, pt2: impl Into<Point>, ) -> &mut RefHandle<SkPathBuilder>
Adds quad from last point towards vector pt1, to vector pt2.
If PathBuilder is empty, or last PathVerb
is PathVerb::Close, last point is set to (0, 0) before adding quad.
Appends PathVerb::Move to verb array and (0, 0) to Point array,
if needed; then appends PathVerb::Quad to verb array; and appends quad
control and quad end to Point array.
Quad control is last point plus vector pt1.
Quad end is last point plus vector pt2.
Function name stands for “relative quad to”.
pt1: offset vector from last point to quad controlpt2: offset vector from last point to quad end
§Returns
reference to PathBuilder
pub fn r_conic_to(
&mut self,
pt1: impl Into<Point>,
pt2: impl Into<Point>,
w: f32,
) -> &mut RefHandle<SkPathBuilder>
pub fn r_conic_to( &mut self, pt1: impl Into<Point>, pt2: impl Into<Point>, w: f32, ) -> &mut RefHandle<SkPathBuilder>
Adds conic from last point towards vector p1, to vector p2,
weighted by w. If PathBuilder is empty, or last PathVerb
is PathVerb::Close, last point is set to (0, 0) before adding conic.
Appends PathVerb::Move to verb array and (0, 0) to Point array,
if needed.
If w is finite and not one, next appends PathVerb::Conic to verb array,
and w is recorded as conic weight; otherwise, if w is one, appends
PathVerb::Quad to verb array; or if w is not finite, appends PathVerb::Line
twice to verb array.
In all cases appends Point control and end to Point array.
control is last point plus vector p1.
end is last point plus vector p2.
Function name stands for “relative conic to”.
pt1: offset vector from last point to conic controlpt2: offset vector from last point to conic endw: weight of added conic
§Returns
reference to PathBuilder
pub fn r_cubic_to(
&mut self,
pt1: impl Into<Point>,
pt2: impl Into<Point>,
pt3: impl Into<Point>,
) -> &mut RefHandle<SkPathBuilder>
pub fn r_cubic_to( &mut self, pt1: impl Into<Point>, pt2: impl Into<Point>, pt3: impl Into<Point>, ) -> &mut RefHandle<SkPathBuilder>
Adds cubic from last point towards vector pt1, then towards
vector pt2, to vector pt3.
If PathBuilder is empty, or last PathVerb
is PathVerb::Close, last point is set to (0, 0) before adding cubic.
Appends PathVerb::Move to verb array and (0, 0) to Point array,
if needed; then appends PathVerb::Cubic to verb array; and appends cubic
control and cubic end to Point array.
Cubic control is last point plus vector (dx1, dy1).
Cubic end is last point plus vector (dx2, dy2).
Function name stands for “relative cubic to”.
pt1: offset vector from last point to first cubic controlpt2: offset vector from last point to second cubic controlpt3: offset vector from last point to cubic end
§Returns
reference to PathBuilder
pub fn r_arc_to(
&mut self,
r: impl Into<Point>,
x_axis_rotate: f32,
large_arc: SkPathBuilder_ArcSize,
sweep: SkPathDirection,
dxdy: impl Into<Point>,
) -> &mut RefHandle<SkPathBuilder>
pub fn r_arc_to( &mut self, r: impl Into<Point>, x_axis_rotate: f32, large_arc: SkPathBuilder_ArcSize, sweep: SkPathDirection, dxdy: impl Into<Point>, ) -> &mut RefHandle<SkPathBuilder>
Appends arc to PathBuilder, relative to last Path Point. Arc is implemented by one or
more conic, weighted to describe part of oval with radii (rx, ry) rotated by
x_axis_rotate degrees. Arc curves from last PathBuilder Point to relative end Point:
(dx, dy), choosing one of four possible routes: clockwise or
counterclockwise, and smaller or larger. If PathBuilder is empty, the start arc Point
is (0, 0).
Arc sweep is always less than 360 degrees. arc_to() appends line to end Point
if either radii are zero, or if last Path Point equals end Point.
arc_to() scales radii (rx, ry) to fit last Path Point and end Point if both are
greater than zero but too small to describe an arc.
arc_to() appends up to four conic curves.
arc_to() implements the functionality of svg arc, although SVG “sweep-flag” value is
opposite the integer value of sweep; SVG “sweep-flag” uses 1 for clockwise, while
PathDirection::CW cast to int is zero.
r: radii on axes before x-axis rotationx_axis_rotate: x-axis rotation in degrees; positive values are clockwiselarge_arc: chooses smaller or larger arcsweep: chooses clockwise or counterclockwise arcdxdy: offset end of arc from lastPathpoint
§Returns
reference to PathBuilder
pub fn arc_to(
&mut self,
oval: impl AsRef<Rect>,
start_angle_deg: f32,
sweep_angle_deg: f32,
force_move_to: bool,
) -> &mut RefHandle<SkPathBuilder>
pub fn arc_to( &mut self, oval: impl AsRef<Rect>, start_angle_deg: f32, sweep_angle_deg: f32, force_move_to: bool, ) -> &mut RefHandle<SkPathBuilder>
Appends arc to the builder. Arc added is part of ellipse
bounded by oval, from start_angle through sweep_angle. Both start_angle and
sweep_angle are measured in degrees, where zero degrees is aligned with the
positive x-axis, and positive sweeps extends arc clockwise.
arc_to() adds line connecting the builder’s last point to initial arc point if force_move_to
is false and the builder is not empty. Otherwise, added contour begins with first point
of arc. Angles greater than -360 and less than 360 are treated modulo 360.
oval: bounds of ellipse containing arcstart_angle_deg: starting angle of arc in degreessweep_angle_deg: sweep, in degrees. Positive is clockwise; treated modulo 360force_move_to: true to start a new contour with arc
§Returns
reference to the builder
pub fn arc_to_tangent(
&mut self,
p1: impl Into<Point>,
p2: impl Into<Point>,
radius: f32,
) -> &mut RefHandle<SkPathBuilder>
pub fn arc_to_tangent( &mut self, p1: impl Into<Point>, p2: impl Into<Point>, radius: f32, ) -> &mut RefHandle<SkPathBuilder>
Appends arc to Path, after appending line if needed. Arc is implemented by conic
weighted to describe part of circle. Arc is contained by tangent from
last Path point to p1, and tangent from p1 to p2. Arc
is part of circle sized to radius, positioned so it touches both tangent lines.
If last Path Point does not start arc, arc_to() appends connecting line to Path.
The length of vector from p1 to p2 does not affect arc.
Arc sweep is always less than 180 degrees. If radius is zero, or if
tangents are nearly parallel, arc_to() appends line from last Path Point to p1.
arc_to() appends at most one line and one conic.
arc_to() implements the functionality of PostScript arct and HTML Canvas arcTo.
p1:Pointcommon to pair of tangentsp2: end of second tangentradius: distance from arc to circle center
§Returns
reference to PathBuilder
pub fn arc_to_radius(
&mut self,
r: impl Into<Point>,
x_axis_rotate: f32,
large_arc: SkPathBuilder_ArcSize,
sweep: SkPathDirection,
xy: impl Into<Point>,
) -> &mut RefHandle<SkPathBuilder>
pub fn arc_to_radius( &mut self, r: impl Into<Point>, x_axis_rotate: f32, large_arc: SkPathBuilder_ArcSize, sweep: SkPathDirection, xy: impl Into<Point>, ) -> &mut RefHandle<SkPathBuilder>
Appends arc to Path. Arc is implemented by one or more conic weighted to describe
part of oval with radii (r.fX, r.fY) rotated by x_axis_rotate degrees. Arc curves
from last Path Point to (xy.fX, xy.fY), choosing one of four possible routes:
clockwise or counterclockwise,
and smaller or larger.
Arc sweep is always less than 360 degrees. arc_to_radius() appends line to xy if either
radii are zero, or if last Path Point equals (xy.fX, xy.fY). arc_to_radius() scales radii r to
fit last Path Point and xy if both are greater than zero but too small to describe
an arc.
arc_to_radius() appends up to four conic curves.
arc_to_radius() implements the functionality of SVG arc, although SVG sweep-flag value is
opposite the integer value of sweep; SVG sweep-flag uses 1 for clockwise, while
PathDirection::CW cast to int is zero.
r: radii on axes before x-axis rotationx_axis_rotate: x-axis rotation in degrees; positive values are clockwiselarge_arc: chooses smaller or larger arcsweep: chooses clockwise or counterclockwise arcxy: end of arc
§Returns
reference to PathBuilder
pub fn add_arc(
&mut self,
oval: impl AsRef<Rect>,
start_angle_deg: f32,
sweep_angle_deg: f32,
) -> &mut RefHandle<SkPathBuilder>
pub fn add_arc( &mut self, oval: impl AsRef<Rect>, start_angle_deg: f32, sweep_angle_deg: f32, ) -> &mut RefHandle<SkPathBuilder>
Appends arc to the builder, as the start of new contour. Arc added is part of ellipse
bounded by oval, from start_angle through sweep_angle. Both start_angle and
sweep_angle are measured in degrees, where zero degrees is aligned with the
positive x-axis, and positive sweeps extends arc clockwise.
If sweep_angle <= -360, or sweep_angle >= 360; and start_angle modulo 90 is nearly
zero, append oval instead of arc. Otherwise, sweep_angle values are treated
modulo 360, and arc may or may not draw depending on numeric rounding.
oval: bounds of ellipse containing arcstart_angle_deg: starting angle of arc in degreessweep_angle_deg: sweep, in degrees. Positive is clockwise; treated modulo 360
§Returns
reference to this builder
pub fn add_line( &mut self, a: impl Into<Point>, b: impl Into<Point>, ) -> &mut RefHandle<SkPathBuilder>
pub fn add_rect(
&mut self,
rect: impl AsRef<Rect>,
dir: impl Into<Option<SkPathDirection>>,
start_index: impl Into<Option<usize>>,
) -> &mut RefHandle<SkPathBuilder>
pub fn add_rect( &mut self, rect: impl AsRef<Rect>, dir: impl Into<Option<SkPathDirection>>, start_index: impl Into<Option<usize>>, ) -> &mut RefHandle<SkPathBuilder>
Adds a new contour to the PathBuilder, defined by the rect, and wound in the
specified direction. The verbs added to the path will be:
PathVerb::Move, PathVerb::Line, PathVerb::Line, PathVerb::Line, PathVerb::Close
start specifies which corner to begin the contour: 0: upper-left corner 1: upper-right corner 2: lower-right corner 3: lower-left corner
This start point also acts as the implied beginning of the subsequent,
contour, if it does not have an explicit move_to(). e.g.
path.add_rect(...)
// if we don't say move_to() here, we will use the rect's start point
path.line_to(...)rect:Rectto add as a closed contourdir:PathDirectionto orient the new contourstart_index: initial corner ofRectto add
§Returns
reference to PathBuilder
pub fn add_oval(
&mut self,
rect: impl AsRef<Rect>,
dir: impl Into<Option<SkPathDirection>>,
start_index: impl Into<Option<usize>>,
) -> &mut RefHandle<SkPathBuilder>
pub fn add_oval( &mut self, rect: impl AsRef<Rect>, dir: impl Into<Option<SkPathDirection>>, start_index: impl Into<Option<usize>>, ) -> &mut RefHandle<SkPathBuilder>
Adds oval to PathBuilder, appending PathVerb::Move, four PathVerb::Conic, and PathVerb::Close.
Oval is upright ellipse bounded by Rect oval with radii equal to half oval width
and half oval height. Oval begins at (oval.right, oval.center_y()) and continues
clockwise if dir is PathDirection::CW, counterclockwise if dir is PathDirection::CCW.
rect: bounds of ellipse addeddir:PathDirectionto wind ellipsestart_index: index of initial point of ellipse
§Returns
reference to PathBuilder
pub fn add_rrect(
&mut self,
rect: impl AsRef<RRect>,
dir: impl Into<Option<SkPathDirection>>,
start_index: impl Into<Option<usize>>,
) -> &mut RefHandle<SkPathBuilder>
pub fn add_rrect( &mut self, rect: impl AsRef<RRect>, dir: impl Into<Option<SkPathDirection>>, start_index: impl Into<Option<usize>>, ) -> &mut RefHandle<SkPathBuilder>
Appends RRect to PathBuilder, creating a new closed contour. If dir is PathDirection::CW,
RRect winds clockwise. If dir is PathDirection::CCW, RRect winds counterclockwise.
After appending, PathBuilder may be empty, or may contain: Rect, oval, or RRect.
rect:RRectto adddir:PathDirectionto windRRectstart_index: index of initial point ofRRect
§Returns
reference to PathBuilder
pub fn add_circle(
&mut self,
center: impl Into<Point>,
radius: f32,
dir: impl Into<Option<SkPathDirection>>,
) -> &mut RefHandle<SkPathBuilder>
pub fn add_circle( &mut self, center: impl Into<Point>, radius: f32, dir: impl Into<Option<SkPathDirection>>, ) -> &mut RefHandle<SkPathBuilder>
Adds circle centered at (x, y) of size radius to PathBuilder, appending PathVerb::Move,
four PathVerb::Conic, and PathVerb::Close. Circle begins at: (x + radius, y), continuing
clockwise if dir is PathDirection::CW, and counterclockwise if dir is PathDirection::CCW.
Has no effect if radius is zero or negative.
center: center of circleradius: distance from center to edgedir:PathDirectionto wind circle
§Returns
reference to PathBuilder
pub fn add_polygon(
&mut self,
pts: &[Point],
close: bool,
) -> &mut RefHandle<SkPathBuilder>
pub fn add_polygon( &mut self, pts: &[Point], close: bool, ) -> &mut RefHandle<SkPathBuilder>
Adds contour created from line array, adding (pts.len() - 1) line segments.
Contour added starts at pts[0], then adds a line for every additional Point
in pts array. If close is true, appends PathVerb::Close to Path, connecting
pts[count - 1] and pts[0].
pts: array of line sharing end and startPointclose: true to add line connecting contour end and start
§Returns
reference to PathBuilder
pub fn add_path(
&mut self,
path: &Handle<SkPath>,
) -> &mut RefHandle<SkPathBuilder>
pub fn add_path( &mut self, path: &Handle<SkPath>, ) -> &mut RefHandle<SkPathBuilder>
Appends src to PathBuilder, offset by (dx, dy).
If mode is path::AddPathMode::Append, src verb array, Point array, and conic weights are
added unaltered. If mode is path::AddPathMode::Extend, add line before appending
verbs, Point, and conic weights.
§Returns
reference to PathBuilder
pub fn add_path_with_transform(
&mut self,
src: &Handle<SkPath>,
matrix: &Matrix,
mode: impl Into<Option<SkPath_AddPathMode>>,
)
pub fn add_path_with_transform( &mut self, src: &Handle<SkPath>, matrix: &Matrix, mode: impl Into<Option<SkPath_AddPathMode>>, )
Appends src to PathBuilder, transformed by matrix. Transformed curves may have different
verbs, Point, and conic weights.
If mode is path::AddPathMode::Append, src verb array, Point array, and conic weights are
added unaltered. If mode is path::AddPathMode::Extend, add line before appending
verbs, Point, and conic weights.
src:Pathverbs,Point, and conic weights to addmatrix: transform applied to srcmode:path::AddPathMode::Appendorpath::AddPathMode::Extend
pub fn inc_reserve(
&mut self,
extra_pt_count: usize,
extra_verb_count: usize,
extra_conic_count: usize,
)
pub fn inc_reserve( &mut self, extra_pt_count: usize, extra_verb_count: usize, extra_conic_count: usize, )
Grows PathBuilder verb array and Point array to contain additional space.
May improve performance and use less memory by
reducing the number and size of allocations when creating PathBuilder.
extra_pt_count: number of additionalPointto allocateextra_verb_count: number of additional verbsextra_conic_count: number of additional conic weights
pub fn offset(&mut self, d: impl Into<Point>) -> &mut RefHandle<SkPathBuilder>
pub fn offset(&mut self, d: impl Into<Point>) -> &mut RefHandle<SkPathBuilder>
Offsets Point array by (dx, dy).
d: offset added toPointarray coordinates
§Returns
reference to PathBuilder
pub fn transform(&mut self, matrix: &Matrix) -> &mut RefHandle<SkPathBuilder>
pub fn transform(&mut self, matrix: &Matrix) -> &mut RefHandle<SkPathBuilder>
Transforms verb array, Point array, and weight by matrix.
transform may change verbs and increase their number.
§Returns
reference to PathBuilder
pub fn is_finite(&self) -> bool
pub fn is_finite(&self) -> bool
Returns true if the builder is empty, or all of its points are finite.
pub fn toggle_inverse_fill_type(&mut self) -> &mut RefHandle<SkPathBuilder>
pub fn toggle_inverse_fill_type(&mut self) -> &mut RefHandle<SkPathBuilder>
Replaces PathFillType with its inverse. The inverse of PathFillType describes the area
unmodified by the original PathFillType.
§Returns
reference to PathBuilder
pub fn is_empty(&self) -> bool
pub fn is_empty(&self) -> bool
Returns if Path is empty.
Empty PathBuilder may have PathFillType but has no Point, PathVerb, or conic weight.
PathBuilder::new() constructs empty PathBuilder; reset() and rewind() make Path empty.
§Returns
true if the path contains no PathVerb array
pub fn get_last_pt(&self) -> Option<Point>
pub fn get_last_pt(&self) -> Option<Point>
pub fn set_point(&mut self, index: usize, p: impl Into<Point>)
pub fn set_point(&mut self, index: usize, p: impl Into<Point>)
Change the point at the specified index (see count_points()).
If index is out of range, the call does nothing.
index: which point to replacep: the new point value
pub fn set_last_point(&mut self, p: impl Into<Point>)
pub fn set_last_point(&mut self, p: impl Into<Point>)
Change the last point in the builder. If the builder is empty, the call does nothing.
p: the new point value
pub fn set_last_pt(&mut self, p: impl Into<Point>)
👎Deprecated since 0.93.0: Use set_last_point() or set_point()
pub fn set_last_pt(&mut self, p: impl Into<Point>)
Sets the last point on the path. If Point array is empty, append PathVerb::Move to
verb array and append p to Point array.
p: last point
pub fn count_points(&self) -> usize
pub fn count_points(&self) -> usize
Returns the number of points in PathBuilder.
Point count is initially zero.
§Returns
PathBuilder Point array length
pub fn is_inverse_fill_type(&self) -> bool
pub fn is_inverse_fill_type(&self) -> bool
Returns if PathFillType describes area outside Path geometry. The inverse fill area
extends indefinitely.
§Returns
true if PathFillType is PathFillType::InverseWinding or PathFillType::InverseEvenOdd
pub fn points(&self) -> &[Point]
pub fn verbs(&self) -> &[SkPathVerb]
pub fn conic_weights(&self) -> &[f32]
§impl RefHandle<SkPathBuilder>
impl RefHandle<SkPathBuilder>
pub fn dump_to_string(&self, format: SkPathBuilder_DumpFormat) -> String
pub fn dump_to_string(&self, format: SkPathBuilder_DumpFormat) -> String
§impl RefHandle<GrBackendTexture>
impl RefHandle<GrBackendTexture>
pub unsafe fn new_gl( _: (i32, i32), mipmapped: skgpu_Mipmapped, gl_info: TextureInfo, ) -> RefHandle<GrBackendTexture>
pub unsafe fn new_gl_with_label( _: (i32, i32), mipmapped: skgpu_Mipmapped, gl_info: TextureInfo, label: impl AsRef<str>, ) -> RefHandle<GrBackendTexture>
pub fn dimensions(&self) -> ISize
pub fn width(&self) -> i32
pub fn height(&self) -> i32
pub fn label(&self) -> &str
pub fn mipmapped(&self) -> skgpu_Mipmapped
pub fn has_mip_maps(&self) -> bool
pub fn has_mipmaps(&self) -> bool
pub fn backend(&self) -> GrBackendApi
pub fn gl_texture_info(&self) -> Option<TextureInfo>
pub fn gl_texture_parameters_modified(&mut self)
pub fn backend_format(&self) -> Handle<GrBackendFormat>
pub fn set_mutable_state(&mut self, state: &RCHandle<skgpu_MutableTextureState>)
pub fn is_protected(&self) -> bool
pub fn is_valid(&self) -> bool
pub fn is_same_texture(&mut self, texture: &RefHandle<GrBackendTexture>) -> bool
§impl RefHandle<GrYUVABackendTextures>
impl RefHandle<GrYUVABackendTextures>
pub fn new( info: &Handle<SkYUVAInfo>, textures: &[RefHandle<GrBackendTexture>], texture_origin: GrSurfaceOrigin, ) -> Option<RefHandle<GrYUVABackendTextures>>
pub fn textures(&self) -> Vec<RefHandle<GrBackendTexture>>
pub fn texture(&self, i: usize) -> Option<RefHandle<GrBackendTexture>>
pub fn yuva_info(&self) -> &Handle<SkYUVAInfo>
pub fn num_planes(&self) -> usize
pub fn texture_origin(&self) -> GrSurfaceOrigin
§impl RefHandle<skia_textlayout_Paragraph>
impl RefHandle<skia_textlayout_Paragraph>
pub fn max_width(&self) -> f32
pub fn height(&self) -> f32
pub fn min_intrinsic_width(&self) -> f32
pub fn max_intrinsic_width(&self) -> f32
pub fn alphabetic_baseline(&self) -> f32
pub fn ideographic_baseline(&self) -> f32
pub fn longest_line(&self) -> f32
pub fn did_exceed_max_lines(&self) -> bool
pub fn layout(&mut self, width: f32)
pub fn paint(&self, canvas: &Canvas, p: impl Into<Point>)
pub fn get_rects_for_range(
&self,
range: Range<usize>,
rect_height_style: RectHeightStyle,
rect_width_style: RectWidthStyle,
) -> Vec<TextBox>
pub fn get_rects_for_range( &self, range: Range<usize>, rect_height_style: RectHeightStyle, rect_width_style: RectWidthStyle, ) -> Vec<TextBox>
Returns a vector of bounding boxes that enclose all text between start and end glyph indexes, including start and excluding end
pub fn get_rects_for_placeholders(&self) -> Vec<TextBox>
pub fn get_glyph_position_at_coordinate(
&self,
p: impl Into<Point>,
) -> skia_textlayout_PositionWithAffinity
pub fn get_glyph_position_at_coordinate( &self, p: impl Into<Point>, ) -> skia_textlayout_PositionWithAffinity
Returns the index of the glyph that corresponds to the provided coordinate, with the top left corner as the origin, and +y direction as down
pub fn get_word_boundary(&self, offset: u32) -> Range<usize> ⓘ
pub fn get_word_boundary(&self, offset: u32) -> Range<usize> ⓘ
Finds the first and last glyphs that define a word containing the glyph at index offset
pub fn get_line_metrics(&self) -> Vec<LineMetrics<'_>>
pub fn line_number(&self) -> usize
pub fn mark_dirty(&mut self)
pub fn unresolved_glyphs(&mut self) -> Option<usize>
pub fn unresolved_glyphs(&mut self) -> Option<usize>
This function will return the number of unresolved glyphs or
None if not applicable (has not been shaped yet - valid case)
pub fn unresolved_codepoints(&mut self) -> Vec<i32>
pub fn visit<'a, F>(&mut self, visitor: F)
pub fn extended_visit<'a, F>(&mut self, visitor: F)
pub fn get_path_at(&mut self, line_number: usize) -> (usize, Handle<SkPath>)
pub fn get_path_at(&mut self, line_number: usize) -> (usize, Handle<SkPath>)
Returns path for a given line
line_number- a line numberdest- a resulting path
Returns: a number glyphs that could not be converted to path
pub fn get_path(text_blob: &mut RCHandle<SkTextBlob>) -> Handle<SkPath>
pub fn get_path(text_blob: &mut RCHandle<SkTextBlob>) -> Handle<SkPath>
Returns path for a text blob
text_blob- a text blob
Returns: a path
pub fn contains_emoji(&mut self, text_blob: &mut RCHandle<SkTextBlob>) -> bool
pub fn contains_emoji(&mut self, text_blob: &mut RCHandle<SkTextBlob>) -> bool
Checks if a given text blob contains glyph with emoji
text_blob- a text blob
Returns: true if there is such a glyph
pub fn contains_color_font_or_bitmap(
&mut self,
text_blob: &mut RCHandle<SkTextBlob>,
) -> bool
pub fn contains_color_font_or_bitmap( &mut self, text_blob: &mut RCHandle<SkTextBlob>, ) -> bool
Checks if a given text blob contains colored font or bitmap
text_blob- a text blob
Returns: true if there is such a glyph
pub fn get_line_number_at(&self, code_unit_index: usize) -> Option<usize>
pub fn get_line_number_at(&self, code_unit_index: usize) -> Option<usize>
Finds the line number of the line that contains the given UTF-8 index.
index- a UTF-8 TextIndex into the paragraph
Returns: the line number the glyph that corresponds to the
given code_unit_index is in, or -1 if the code_unit_index
is out of bounds, or when the glyph is truncated or
ellipsized away.
pub fn get_line_number_at_utf16_offset(
&self,
code_unit_index: usize,
) -> Option<usize>
pub fn get_line_number_at_utf16_offset( &self, code_unit_index: usize, ) -> Option<usize>
Finds the line number of the line that contains the given UTF-16 index.
index- a UTF-16 offset into the paragraph
Returns: the line number the glyph that corresponds to the
given code_unit_index is in, or -1 if the code_unit_index
is out of bounds, or when the glyph is truncated or
ellipsized away.
pub fn get_line_metrics_at(&self, line_number: usize) -> Option<LineMetrics<'_>>
pub fn get_line_metrics_at(&self, line_number: usize) -> Option<LineMetrics<'_>>
Returns line metrics info for the line
line_number- a line numberline_metrics- an address to return the info (in case of null just skipped)
Returns: true if the line is found; false if not
pub fn get_actual_text_range(
&self,
line_number: usize,
include_spaces: bool,
) -> Range<usize> ⓘ
pub fn get_actual_text_range( &self, line_number: usize, include_spaces: bool, ) -> Range<usize> ⓘ
Returns the visible text on the line (excluding a possible ellipsis)
line_number- a line numberinclude_spaces- indicates if the whitespaces should be included
Returns: the range of the text that is shown in the line
pub fn get_glyph_cluster_at(
&self,
code_unit_index: usize,
) -> Option<GlyphClusterInfo>
pub fn get_glyph_cluster_at( &self, code_unit_index: usize, ) -> Option<GlyphClusterInfo>
Finds a glyph cluster for text index
code_unit_index- a text indexglyph_info- a glyph cluster info filled if not null
Returns: true if glyph cluster was found; false if not
pub fn get_closest_glyph_cluster_at(
&self,
d: impl Into<Point>,
) -> Option<GlyphClusterInfo>
pub fn get_closest_glyph_cluster_at( &self, d: impl Into<Point>, ) -> Option<GlyphClusterInfo>
Finds the closest glyph cluster for a visual text position
dx- x coordinatedy- y coordinateglyph_info- a glyph cluster info filled if not null
Returns: true if glyph cluster was found; false if not
(which usually means the paragraph is empty)
pub fn get_glyph_info_at_utf16_offset(
&mut self,
code_unit_index: usize,
) -> Option<GlyphInfo>
pub fn get_glyph_info_at_utf16_offset( &mut self, code_unit_index: usize, ) -> Option<GlyphInfo>
Retrieves the information associated with the glyph located at the given
code_unit_index.
code_unit_index- a UTF-16 offset into the paragraphglyph_info- an optional GlyphInfo struct to hold the information associated with the glyph found at the given index
Returns: false only if the offset is out of bounds
pub fn get_closest_utf16_glyph_info_at(
&mut self,
d: impl Into<Point>,
) -> Option<GlyphInfo>
pub fn get_closest_utf16_glyph_info_at( &mut self, d: impl Into<Point>, ) -> Option<GlyphInfo>
Finds the information associated with the closest glyph to the given paragraph coordinates.
d- x/y coordinateglyph_info- an optional GlyphInfo struct to hold the information associated with the glyph found. The text indices and text ranges are described using UTF-16 offsets
Returns: true if a grapheme cluster was found; false if not
(which usually means the paragraph is empty)
pub fn get_font_at(&self, code_unit_index: usize) -> Handle<SkFont>
pub fn get_font_at(&self, code_unit_index: usize) -> Handle<SkFont>
Returns the font that is used to shape the text at the position
code_unit_index- text index
Returns: font info or an empty font info if the text is not found
pub fn get_font_at_utf16_offset(
&mut self,
code_unit_index: usize,
) -> Handle<SkFont>
pub fn get_font_at_utf16_offset( &mut self, code_unit_index: usize, ) -> Handle<SkFont>
Returns the font used to shape the text at the given UTF-16 offset.
code_unit_index- a UTF-16 offset in the paragraph
Returns: font info or an empty font info if the text is not found
§impl RefHandle<skia_textlayout_ParagraphBuilder>
impl RefHandle<skia_textlayout_ParagraphBuilder>
pub fn push_style( &mut self, style: &Handle<skia_textlayout_TextStyle>, ) -> &mut RefHandle<skia_textlayout_ParagraphBuilder>
pub fn pop(&mut self) -> &mut RefHandle<skia_textlayout_ParagraphBuilder>
pub fn peek_style(&mut self) -> Handle<skia_textlayout_TextStyle>
pub fn add_text( &mut self, str: impl AsRef<str>, ) -> &mut RefHandle<skia_textlayout_ParagraphBuilder>
pub fn add_placeholder( &mut self, placeholder_style: &PlaceholderStyle, ) -> &mut RefHandle<skia_textlayout_ParagraphBuilder>
pub fn build(&mut self) -> RefHandle<skia_textlayout_Paragraph>
pub fn get_text(&mut self) -> &str
pub fn get_paragraph_style(&self) -> RefHandle<skia_textlayout_ParagraphStyle>
pub fn reset(&mut self)
pub fn new( style: &RefHandle<skia_textlayout_ParagraphStyle>, font_collection: impl Into<RCHandle<skia_textlayout_FontCollection>>, ) -> RefHandle<skia_textlayout_ParagraphBuilder>
§impl RefHandle<skia_textlayout_ParagraphStyle>
impl RefHandle<skia_textlayout_ParagraphStyle>
pub fn new() -> RefHandle<skia_textlayout_ParagraphStyle>
pub fn strut_style(&self) -> &Handle<skia_textlayout_StrutStyle>
pub fn set_strut_style( &mut self, strut_style: Handle<skia_textlayout_StrutStyle>, ) -> &mut RefHandle<skia_textlayout_ParagraphStyle>
pub fn text_style(&self) -> &Handle<skia_textlayout_TextStyle>
pub fn set_text_style( &mut self, text_style: &Handle<skia_textlayout_TextStyle>, ) -> &mut RefHandle<skia_textlayout_ParagraphStyle>
pub fn text_direction(&self) -> skia_textlayout_TextDirection
pub fn set_text_direction( &mut self, direction: skia_textlayout_TextDirection, ) -> &mut RefHandle<skia_textlayout_ParagraphStyle>
pub fn text_align(&self) -> skia_textlayout_TextAlign
pub fn set_text_align( &mut self, align: skia_textlayout_TextAlign, ) -> &mut RefHandle<skia_textlayout_ParagraphStyle>
pub fn max_lines(&self) -> Option<usize>
pub fn set_max_lines( &mut self, lines: impl Into<Option<usize>>, ) -> &mut RefHandle<skia_textlayout_ParagraphStyle>
pub fn ellipsis(&self) -> &str
pub fn set_ellipsis( &mut self, ellipsis: impl AsRef<str>, ) -> &mut RefHandle<skia_textlayout_ParagraphStyle>
pub fn height(&self) -> f32
pub fn set_height( &mut self, height: f32, ) -> &mut RefHandle<skia_textlayout_ParagraphStyle>
pub fn text_height_behavior(&self) -> skia_textlayout_TextHeightBehavior
pub fn set_text_height_behavior( &mut self, v: skia_textlayout_TextHeightBehavior, ) -> &mut RefHandle<skia_textlayout_ParagraphStyle>
pub fn unlimited_lines(&self) -> bool
pub fn ellipsized(&self) -> bool
pub fn effective_align(&self) -> skia_textlayout_TextAlign
pub fn hinting_is_on(&self) -> bool
pub fn turn_hinting_off( &mut self, ) -> &mut RefHandle<skia_textlayout_ParagraphStyle>
pub fn fake_missing_font_styles(&self) -> bool
pub fn set_fake_missing_font_styles( &mut self, value: bool, ) -> &mut RefHandle<skia_textlayout_ParagraphStyle>
pub fn replace_tab_characters(&self) -> bool
pub fn set_replace_tab_characters( &mut self, value: bool, ) -> &mut RefHandle<skia_textlayout_ParagraphStyle>
pub fn apply_rounding_hack(&self) -> bool
pub fn set_apply_rounding_hack( &mut self, value: bool, ) -> &mut RefHandle<skia_textlayout_ParagraphStyle>
§impl RefHandle<SkShaper>
impl RefHandle<SkShaper>
pub fn new_primitive() -> RefHandle<SkShaper>
pub fn new_shaper_driven_wrapper( fallback_font_mgr: impl Into<Option<RCHandle<SkFontMgr>>>, ) -> Option<RefHandle<SkShaper>>
pub fn new_shape_then_wrap( fallback_font_mgr: impl Into<Option<RCHandle<SkFontMgr>>>, ) -> Option<RefHandle<SkShaper>>
pub fn new_shape_dont_wrap_or_reorder( fallback_font_mgr: impl Into<Option<RCHandle<SkFontMgr>>>, ) -> Option<RefHandle<SkShaper>>
pub fn purge_harf_buzz_cache()
pub fn new_core_text() -> Option<RefHandle<SkShaper>>
pub fn new( font_mgr: impl Into<Option<RCHandle<SkFontMgr>>>, ) -> RefHandle<SkShaper>
pub fn purge_caches()
§impl RefHandle<SkShaper_FontRunIterator>
impl RefHandle<SkShaper_FontRunIterator>
pub fn current_font(&self) -> &Handle<SkFont>
§impl RefHandle<SkShaper_BiDiRunIterator>
impl RefHandle<SkShaper_BiDiRunIterator>
pub fn current_level(&self) -> u8
§impl RefHandle<SkShaper>
impl RefHandle<SkShaper>
pub fn new_bidi_run_iterator( utf8: &str, bidi_level: u8, ) -> Option<Borrows<'_, RefHandle<SkShaper_BiDiRunIterator>>>
pub fn new_icu_bidi_run_iterator( utf8: &str, level: u8, ) -> Option<Borrows<'_, RefHandle<SkShaper_BiDiRunIterator>>>
pub fn new_trivial_bidi_run_iterator( bidi_level: u8, utf8_bytes: usize, ) -> RefHandle<SkShaper_BiDiRunIterator>
§impl RefHandle<SkShaper_ScriptRunIterator>
impl RefHandle<SkShaper_ScriptRunIterator>
pub fn current_script(&self) -> FourByteTag
§impl RefHandle<SkShaper>
impl RefHandle<SkShaper>
pub fn new_script_run_iterator( utf8: &str, script: FourByteTag, ) -> Borrows<'_, RefHandle<SkShaper_ScriptRunIterator>>
pub fn new_hb_icu_script_run_iterator( utf8: &str, ) -> Borrows<'_, RefHandle<SkShaper_ScriptRunIterator>>
pub fn new_trivial_script_run_iterator( bidi_level: u8, utf8_bytes: usize, ) -> RefHandle<SkShaper_ScriptRunIterator>
§impl RefHandle<SkShaper_LanguageRunIterator>
impl RefHandle<SkShaper_LanguageRunIterator>
pub fn current_language(&self) -> &CStr
§impl RefHandle<SkShaper>
impl RefHandle<SkShaper>
pub fn new_std_language_run_iterator( utf8: &str, ) -> Option<RefHandle<SkShaper_LanguageRunIterator>>
pub fn new_trivial_language_run_iterator( language: impl AsRef<str>, utf8_bytes: usize, ) -> RefHandle<SkShaper_LanguageRunIterator>
§impl RefHandle<SkShaper>
impl RefHandle<SkShaper>
pub fn shape<'a, 'b>(
&self,
utf8: &str,
font: &Handle<SkFont>,
left_to_right: bool,
width: f32,
run_handler: &'b mut impl AsRunHandler<'a>,
)where
'b: 'a,
pub fn shape_with_iterators<'a, 'b>(
&self,
utf8: &str,
font_run_iterator: &mut RefHandle<SkShaper_FontRunIterator>,
bidi_run_iterator: &mut RefHandle<SkShaper_BiDiRunIterator>,
script_run_iterator: &mut RefHandle<SkShaper_ScriptRunIterator>,
language_run_iterator: &mut RefHandle<SkShaper_LanguageRunIterator>,
width: f32,
run_handler: &'b mut impl AsRunHandler<'a>,
)where
'b: 'a,
pub fn shape_with_iterators_and_features<'a, 'b>(
&self,
utf8: &str,
font_run_iterator: &mut RefHandle<SkShaper_FontRunIterator>,
bidi_run_iterator: &mut RefHandle<SkShaper_BiDiRunIterator>,
script_run_iterator: &mut RefHandle<SkShaper_ScriptRunIterator>,
language_run_iterator: &mut RefHandle<SkShaper_LanguageRunIterator>,
features: &[SkShaper_Feature],
width: f32,
run_handler: &'b mut impl AsRunHandler<'a>,
)where
'b: 'a,
§impl RefHandle<Sk3DView>
impl RefHandle<Sk3DView>
pub fn new() -> RefHandle<Sk3DView>
pub fn save(&mut self) -> &mut RefHandle<Sk3DView>
pub fn restore(&mut self) -> &mut RefHandle<Sk3DView>
pub fn translate(&mut self, d: impl Into<V3>) -> &mut RefHandle<Sk3DView>
pub fn rotate_x(&mut self, deg: f32) -> &mut RefHandle<Sk3DView>
pub fn rotate_y(&mut self, deg: f32) -> &mut RefHandle<Sk3DView>
pub fn rotate_z(&mut self, deg: f32) -> &mut RefHandle<Sk3DView>
pub fn matrix(&self) -> Matrix
pub fn apply_to_canvas(&self, canvas: &Canvas) -> &RefHandle<Sk3DView>
pub fn dot_with_normal(&self, d: impl Into<V3>) -> f32
Trait Implementations§
§impl Iterator for RefHandle<SkTypeface_LocalizedStrings>
impl Iterator for RefHandle<SkTypeface_LocalizedStrings>
§type Item = LocalizedString
type Item = LocalizedString
§fn next(
&mut self,
) -> Option<<RefHandle<SkTypeface_LocalizedStrings> as Iterator>::Item>
fn next( &mut self, ) -> Option<<RefHandle<SkTypeface_LocalizedStrings> as Iterator>::Item>
Source§fn next_chunk<const N: usize>(
&mut self,
) -> Result<[Self::Item; N], IntoIter<Self::Item, N>>where
Self: Sized,
fn next_chunk<const N: usize>(
&mut self,
) -> Result<[Self::Item; N], IntoIter<Self::Item, N>>where
Self: Sized,
iter_next_chunk)N values. Read more1.0.0 · Source§fn size_hint(&self) -> (usize, Option<usize>)
fn size_hint(&self) -> (usize, Option<usize>)
1.0.0 · Source§fn count(self) -> usizewhere
Self: Sized,
fn count(self) -> usizewhere
Self: Sized,
1.0.0 · Source§fn last(self) -> Option<Self::Item>where
Self: Sized,
fn last(self) -> Option<Self::Item>where
Self: Sized,
Source§fn advance_by(&mut self, n: usize) -> Result<(), NonZero<usize>>
fn advance_by(&mut self, n: usize) -> Result<(), NonZero<usize>>
iter_advance_by)n elements. Read more1.0.0 · Source§fn nth(&mut self, n: usize) -> Option<Self::Item>
fn nth(&mut self, n: usize) -> Option<Self::Item>
nth element of the iterator. Read more1.28.0 · Source§fn step_by(self, step: usize) -> StepBy<Self>where
Self: Sized,
fn step_by(self, step: usize) -> StepBy<Self>where
Self: Sized,
1.0.0 · Source§fn chain<U>(self, other: U) -> Chain<Self, <U as IntoIterator>::IntoIter>
fn chain<U>(self, other: U) -> Chain<Self, <U as IntoIterator>::IntoIter>
1.0.0 · Source§fn zip<U>(self, other: U) -> Zip<Self, <U as IntoIterator>::IntoIter>where
Self: Sized,
U: IntoIterator,
fn zip<U>(self, other: U) -> Zip<Self, <U as IntoIterator>::IntoIter>where
Self: Sized,
U: IntoIterator,
Source§fn intersperse(self, separator: Self::Item) -> Intersperse<Self>
fn intersperse(self, separator: Self::Item) -> Intersperse<Self>
iter_intersperse)separator between adjacent
items of the original iterator. Read moreSource§fn intersperse_with<G>(self, separator: G) -> IntersperseWith<Self, G>
fn intersperse_with<G>(self, separator: G) -> IntersperseWith<Self, G>
iter_intersperse)separator
between adjacent items of the original iterator. Read more1.0.0 · Source§fn map<B, F>(self, f: F) -> Map<Self, F>
fn map<B, F>(self, f: F) -> Map<Self, F>
1.0.0 · Source§fn filter<P>(self, predicate: P) -> Filter<Self, P>
fn filter<P>(self, predicate: P) -> Filter<Self, P>
1.0.0 · Source§fn filter_map<B, F>(self, f: F) -> FilterMap<Self, F>
fn filter_map<B, F>(self, f: F) -> FilterMap<Self, F>
1.0.0 · Source§fn enumerate(self) -> Enumerate<Self>where
Self: Sized,
fn enumerate(self) -> Enumerate<Self>where
Self: Sized,
1.0.0 · Source§fn skip_while<P>(self, predicate: P) -> SkipWhile<Self, P>
fn skip_while<P>(self, predicate: P) -> SkipWhile<Self, P>
1.0.0 · Source§fn take_while<P>(self, predicate: P) -> TakeWhile<Self, P>
fn take_while<P>(self, predicate: P) -> TakeWhile<Self, P>
1.57.0 · Source§fn map_while<B, P>(self, predicate: P) -> MapWhile<Self, P>
fn map_while<B, P>(self, predicate: P) -> MapWhile<Self, P>
1.0.0 · Source§fn skip(self, n: usize) -> Skip<Self>where
Self: Sized,
fn skip(self, n: usize) -> Skip<Self>where
Self: Sized,
n elements. Read more1.0.0 · Source§fn take(self, n: usize) -> Take<Self>where
Self: Sized,
fn take(self, n: usize) -> Take<Self>where
Self: Sized,
n elements, or fewer
if the underlying iterator ends sooner. Read more1.0.0 · Source§fn flat_map<U, F>(self, f: F) -> FlatMap<Self, U, F>
fn flat_map<U, F>(self, f: F) -> FlatMap<Self, U, F>
1.29.0 · Source§fn flatten(self) -> Flatten<Self>
fn flatten(self) -> Flatten<Self>
Source§fn map_windows<F, R, const N: usize>(self, f: F) -> MapWindows<Self, F, N>
fn map_windows<F, R, const N: usize>(self, f: F) -> MapWindows<Self, F, N>
iter_map_windows)f for each contiguous window of size N over
self and returns an iterator over the outputs of f. Like slice::windows(),
the windows during mapping overlap as well. Read more1.0.0 · Source§fn inspect<F>(self, f: F) -> Inspect<Self, F>
fn inspect<F>(self, f: F) -> Inspect<Self, F>
1.0.0 · Source§fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
Iterator. Read moreSource§fn try_collect<B>(
&mut self,
) -> <<Self::Item as Try>::Residual as Residual<B>>::TryType
fn try_collect<B>( &mut self, ) -> <<Self::Item as Try>::Residual as Residual<B>>::TryType
iterator_try_collect)Source§fn collect_into<E>(self, collection: &mut E) -> &mut E
fn collect_into<E>(self, collection: &mut E) -> &mut E
iter_collect_into)1.0.0 · Source§fn partition<B, F>(self, f: F) -> (B, B)
fn partition<B, F>(self, f: F) -> (B, B)
Source§fn partition_in_place<'a, T, P>(self, predicate: P) -> usize
fn partition_in_place<'a, T, P>(self, predicate: P) -> usize
iter_partition_in_place)true precede all those that return false.
Returns the number of true elements found. Read moreSource§fn is_partitioned<P>(self, predicate: P) -> bool
fn is_partitioned<P>(self, predicate: P) -> bool
iter_is_partitioned)true precede all those that return false. Read more1.27.0 · Source§fn try_fold<B, F, R>(&mut self, init: B, f: F) -> R
fn try_fold<B, F, R>(&mut self, init: B, f: F) -> R
1.27.0 · Source§fn try_for_each<F, R>(&mut self, f: F) -> R
fn try_for_each<F, R>(&mut self, f: F) -> R
1.0.0 · Source§fn fold<B, F>(self, init: B, f: F) -> B
fn fold<B, F>(self, init: B, f: F) -> B
1.51.0 · Source§fn reduce<F>(self, f: F) -> Option<Self::Item>
fn reduce<F>(self, f: F) -> Option<Self::Item>
Source§fn try_reduce<R>(
&mut self,
f: impl FnMut(Self::Item, Self::Item) -> R,
) -> <<R as Try>::Residual as Residual<Option<<R as Try>::Output>>>::TryType
fn try_reduce<R>( &mut self, f: impl FnMut(Self::Item, Self::Item) -> R, ) -> <<R as Try>::Residual as Residual<Option<<R as Try>::Output>>>::TryType
iterator_try_reduce)1.0.0 · Source§fn all<F>(&mut self, f: F) -> bool
fn all<F>(&mut self, f: F) -> bool
1.0.0 · Source§fn any<F>(&mut self, f: F) -> bool
fn any<F>(&mut self, f: F) -> bool
1.0.0 · Source§fn find<P>(&mut self, predicate: P) -> Option<Self::Item>
fn find<P>(&mut self, predicate: P) -> Option<Self::Item>
1.30.0 · Source§fn find_map<B, F>(&mut self, f: F) -> Option<B>
fn find_map<B, F>(&mut self, f: F) -> Option<B>
Source§fn try_find<R>(
&mut self,
f: impl FnMut(&Self::Item) -> R,
) -> <<R as Try>::Residual as Residual<Option<Self::Item>>>::TryType
fn try_find<R>( &mut self, f: impl FnMut(&Self::Item) -> R, ) -> <<R as Try>::Residual as Residual<Option<Self::Item>>>::TryType
try_find)1.0.0 · Source§fn position<P>(&mut self, predicate: P) -> Option<usize>
fn position<P>(&mut self, predicate: P) -> Option<usize>
1.0.0 · Source§fn rposition<P>(&mut self, predicate: P) -> Option<usize>
fn rposition<P>(&mut self, predicate: P) -> Option<usize>
1.0.0 · Source§fn max(self) -> Option<Self::Item>
fn max(self) -> Option<Self::Item>
1.0.0 · Source§fn min(self) -> Option<Self::Item>
fn min(self) -> Option<Self::Item>
1.6.0 · Source§fn max_by_key<B, F>(self, f: F) -> Option<Self::Item>
fn max_by_key<B, F>(self, f: F) -> Option<Self::Item>
1.15.0 · Source§fn max_by<F>(self, compare: F) -> Option<Self::Item>
fn max_by<F>(self, compare: F) -> Option<Self::Item>
1.6.0 · Source§fn min_by_key<B, F>(self, f: F) -> Option<Self::Item>
fn min_by_key<B, F>(self, f: F) -> Option<Self::Item>
1.15.0 · Source§fn min_by<F>(self, compare: F) -> Option<Self::Item>
fn min_by<F>(self, compare: F) -> Option<Self::Item>
1.0.0 · Source§fn rev(self) -> Rev<Self>where
Self: Sized + DoubleEndedIterator,
fn rev(self) -> Rev<Self>where
Self: Sized + DoubleEndedIterator,
1.0.0 · Source§fn unzip<A, B, FromA, FromB>(self) -> (FromA, FromB)
fn unzip<A, B, FromA, FromB>(self) -> (FromA, FromB)
1.36.0 · Source§fn copied<'a, T>(self) -> Copied<Self>
fn copied<'a, T>(self) -> Copied<Self>
Source§fn array_chunks<const N: usize>(self) -> ArrayChunks<Self, N>where
Self: Sized,
fn array_chunks<const N: usize>(self) -> ArrayChunks<Self, N>where
Self: Sized,
iter_array_chunks)N elements of the iterator at a time. Read more1.11.0 · Source§fn product<P>(self) -> P
fn product<P>(self) -> P
Source§fn cmp_by<I, F>(self, other: I, cmp: F) -> Ordering
fn cmp_by<I, F>(self, other: I, cmp: F) -> Ordering
iter_order_by)Iterator with those
of another with respect to the specified comparison function. Read more1.5.0 · Source§fn partial_cmp<I>(self, other: I) -> Option<Ordering>
fn partial_cmp<I>(self, other: I) -> Option<Ordering>
PartialOrd elements of
this Iterator with those of another. The comparison works like short-circuit
evaluation, returning a result without comparing the remaining elements.
As soon as an order can be determined, the evaluation stops and a result is returned. Read moreSource§fn partial_cmp_by<I, F>(self, other: I, partial_cmp: F) -> Option<Ordering>where
Self: Sized,
I: IntoIterator,
F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Option<Ordering>,
fn partial_cmp_by<I, F>(self, other: I, partial_cmp: F) -> Option<Ordering>where
Self: Sized,
I: IntoIterator,
F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Option<Ordering>,
iter_order_by)Iterator with those
of another with respect to the specified comparison function. Read moreSource§fn eq_by<I, F>(self, other: I, eq: F) -> bool
fn eq_by<I, F>(self, other: I, eq: F) -> bool
iter_order_by)1.5.0 · Source§fn lt<I>(self, other: I) -> bool
fn lt<I>(self, other: I) -> bool
Iterator are lexicographically
less than those of another. Read more1.5.0 · Source§fn le<I>(self, other: I) -> bool
fn le<I>(self, other: I) -> bool
Iterator are lexicographically
less or equal to those of another. Read more1.5.0 · Source§fn gt<I>(self, other: I) -> bool
fn gt<I>(self, other: I) -> bool
Iterator are lexicographically
greater than those of another. Read more1.5.0 · Source§fn ge<I>(self, other: I) -> bool
fn ge<I>(self, other: I) -> bool
Iterator are lexicographically
greater than or equal to those of another. Read more1.82.0 · Source§fn is_sorted(self) -> bool
fn is_sorted(self) -> bool
1.82.0 · Source§fn is_sorted_by<F>(self, compare: F) -> bool
fn is_sorted_by<F>(self, compare: F) -> bool
1.82.0 · Source§fn is_sorted_by_key<F, K>(self, f: F) -> bool
fn is_sorted_by_key<F, K>(self, f: F) -> bool
§impl<N> PointerWrapper<N> for RefHandle<N>where
N: NativeDrop,
impl<N> PointerWrapper<N> for RefHandle<N>where
N: NativeDrop,
§impl<T> RunIterator for RefHandle<T>where
T: NativeDrop + NativeBase<SkShaper_RunIterator>,
impl<T> RunIterator for RefHandle<T>where
T: NativeDrop + NativeBase<SkShaper_RunIterator>,
impl Send for RefHandle<GrBackendTexture>
impl Send for RefHandle<GrYUVABackendTextures>
impl Send for RefHandle<Sk3DView>
impl Send for RefHandle<SkImageGenerator>
impl Send for RefHandle<SkPathBuilder>
impl Send for RefHandle<SkShaper>
impl Send for RefHandle<skia_textlayout_ParagraphBuilder>
impl Send for RefHandle<skia_textlayout_ParagraphStyle>
impl Sync for RefHandle<GrBackendTexture>
impl Sync for RefHandle<GrYUVABackendTextures>
impl Sync for RefHandle<Sk3DView>
impl Sync for RefHandle<SkImageGenerator>
impl Sync for RefHandle<SkPathBuilder>
impl Sync for RefHandle<SkShaper>
impl Sync for RefHandle<skia_textlayout_ParagraphBuilder>
impl Sync for RefHandle<skia_textlayout_ParagraphStyle>
Auto Trait Implementations§
impl<N> Freeze for RefHandle<N>
impl<N> RefUnwindSafe for RefHandle<N>where
N: RefUnwindSafe,
impl<N> !Send for RefHandle<N>
impl<N> !Sync for RefHandle<N>
impl<N> Unpin for RefHandle<N>
impl<N> UnwindSafe for RefHandle<N>where
N: RefUnwindSafe,
Blanket Implementations§
§impl<T> AnyEq for T
impl<T> AnyEq for T
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.