pub struct ImageRenderer { /* private fields */ }Implementations§
Source§impl ImageRenderer
impl ImageRenderer
Sourcepub fn new(
width: u32,
height: u32,
scale: f64,
scaling_target: DVec2,
supersampling: u32,
font: FontArc,
) -> Self
pub fn new( width: u32, height: u32, scale: f64, scaling_target: DVec2, supersampling: u32, font: FontArc, ) -> Self
Examples found in repository?
examples/rectangles.rs (lines 14-21)
13async fn main() {
14 let mut image_renderer = ImageRenderer::new(
15 128,
16 128,
17 1.0,
18 DVec2::ZERO,
19 1,
20 FontArc::try_from_slice(include_bytes!("roboto.ttf")).unwrap(),
21 );
22
23 image_renderer.render_rectangle_lines(
24 DVec2::splat(100.0),
25 15.0,
26 15.0,
27 DVec2::splat(0.5),
28 0.0,
29 2.0,
30 Srgba::new(1.0, 0.0, 0.0, 1.0),
31 );
32
33 image_renderer.render_rectangle_lines(
34 DVec2::splat(100.0),
35 15.0,
36 15.0,
37 DVec2::splat(0.5),
38 TAU / 8.0,
39 2.0,
40 Srgba::new(0.0, 0.0, 1.0, 1.0),
41 );
42
43 image_renderer.render_rectangle(
44 DVec2::splat(500.0),
45 1.0,
46 1.0,
47 DVec2::splat(0.5),
48 TAU / 8.0,
49 Srgba::new(0.0, 0.0, 1.0, 1.0),
50 );
51
52 // image_renderer.render_rectangle_lines(
53 // DVec2::splat(10.0),
54 // 9.0,
55 // 9.0,
56 // DVec2::splat(0.0),
57 // TAU / 8.0,
58 // 1.0,
59 // Srgba::new(1.0, 1.0, 1.0, 1.0),
60 // );
61
62 // image_renderer.render_rectangle_lines(
63 // DVec2::splat(2.0),
64 // 5.0,
65 // 5.0,
66 // DVec2::splat(0.5),
67 // TAU / 16.0,
68 // 4.0,
69 // Srgba::new(0.5, 0.5, 0.5, 1.0),
70 // );
71
72 image_renderer.render_circle_lines(DVec2::splat(100.0), 4.0, 1.0, Srgba::new(0.0, 1.0, 0.0, 1.0));
73
74 image_renderer
75 .render_image_onto(image_renderer.black())
76 .save("rectangles.png")
77 .unwrap();
78
79 let mut macroquad_renderer = MacroquadRenderer::new(None);
80
81 {
82 for i in 1..=100 {
83 macroquad_renderer.render_rectangle(
84 DVec2::splat(100.0),
85 101.0 - i as f64,
86 101.0 - i as f64,
87 DVec2::splat(0.5),
88 0.0,
89 Srgba::new((i % 2) as f32, ((i + 1) % 2) as f32, ((i + 1) % 2) as f32, 1.0),
90 );
91 }
92
93 next_frame().await;
94 }
95}pub fn get_font(&self) -> &FontArc
pub fn set_font(&mut self, font: FontArc)
pub fn reset(&mut self)
pub fn get_image(&self) -> &RgbaImage
Sourcepub fn render_image_onto(&self, image: RgbaImage) -> RgbaImage
pub fn render_image_onto(&self, image: RgbaImage) -> RgbaImage
Examples found in repository?
examples/rectangles.rs (line 75)
13async fn main() {
14 let mut image_renderer = ImageRenderer::new(
15 128,
16 128,
17 1.0,
18 DVec2::ZERO,
19 1,
20 FontArc::try_from_slice(include_bytes!("roboto.ttf")).unwrap(),
21 );
22
23 image_renderer.render_rectangle_lines(
24 DVec2::splat(100.0),
25 15.0,
26 15.0,
27 DVec2::splat(0.5),
28 0.0,
29 2.0,
30 Srgba::new(1.0, 0.0, 0.0, 1.0),
31 );
32
33 image_renderer.render_rectangle_lines(
34 DVec2::splat(100.0),
35 15.0,
36 15.0,
37 DVec2::splat(0.5),
38 TAU / 8.0,
39 2.0,
40 Srgba::new(0.0, 0.0, 1.0, 1.0),
41 );
42
43 image_renderer.render_rectangle(
44 DVec2::splat(500.0),
45 1.0,
46 1.0,
47 DVec2::splat(0.5),
48 TAU / 8.0,
49 Srgba::new(0.0, 0.0, 1.0, 1.0),
50 );
51
52 // image_renderer.render_rectangle_lines(
53 // DVec2::splat(10.0),
54 // 9.0,
55 // 9.0,
56 // DVec2::splat(0.0),
57 // TAU / 8.0,
58 // 1.0,
59 // Srgba::new(1.0, 1.0, 1.0, 1.0),
60 // );
61
62 // image_renderer.render_rectangle_lines(
63 // DVec2::splat(2.0),
64 // 5.0,
65 // 5.0,
66 // DVec2::splat(0.5),
67 // TAU / 16.0,
68 // 4.0,
69 // Srgba::new(0.5, 0.5, 0.5, 1.0),
70 // );
71
72 image_renderer.render_circle_lines(DVec2::splat(100.0), 4.0, 1.0, Srgba::new(0.0, 1.0, 0.0, 1.0));
73
74 image_renderer
75 .render_image_onto(image_renderer.black())
76 .save("rectangles.png")
77 .unwrap();
78
79 let mut macroquad_renderer = MacroquadRenderer::new(None);
80
81 {
82 for i in 1..=100 {
83 macroquad_renderer.render_rectangle(
84 DVec2::splat(100.0),
85 101.0 - i as f64,
86 101.0 - i as f64,
87 DVec2::splat(0.5),
88 0.0,
89 Srgba::new((i % 2) as f32, ((i + 1) % 2) as f32, ((i + 1) % 2) as f32, 1.0),
90 );
91 }
92
93 next_frame().await;
94 }
95}pub fn transparent(&self) -> RgbaImage
Sourcepub fn black(&self) -> RgbaImage
pub fn black(&self) -> RgbaImage
Examples found in repository?
examples/rectangles.rs (line 75)
13async fn main() {
14 let mut image_renderer = ImageRenderer::new(
15 128,
16 128,
17 1.0,
18 DVec2::ZERO,
19 1,
20 FontArc::try_from_slice(include_bytes!("roboto.ttf")).unwrap(),
21 );
22
23 image_renderer.render_rectangle_lines(
24 DVec2::splat(100.0),
25 15.0,
26 15.0,
27 DVec2::splat(0.5),
28 0.0,
29 2.0,
30 Srgba::new(1.0, 0.0, 0.0, 1.0),
31 );
32
33 image_renderer.render_rectangle_lines(
34 DVec2::splat(100.0),
35 15.0,
36 15.0,
37 DVec2::splat(0.5),
38 TAU / 8.0,
39 2.0,
40 Srgba::new(0.0, 0.0, 1.0, 1.0),
41 );
42
43 image_renderer.render_rectangle(
44 DVec2::splat(500.0),
45 1.0,
46 1.0,
47 DVec2::splat(0.5),
48 TAU / 8.0,
49 Srgba::new(0.0, 0.0, 1.0, 1.0),
50 );
51
52 // image_renderer.render_rectangle_lines(
53 // DVec2::splat(10.0),
54 // 9.0,
55 // 9.0,
56 // DVec2::splat(0.0),
57 // TAU / 8.0,
58 // 1.0,
59 // Srgba::new(1.0, 1.0, 1.0, 1.0),
60 // );
61
62 // image_renderer.render_rectangle_lines(
63 // DVec2::splat(2.0),
64 // 5.0,
65 // 5.0,
66 // DVec2::splat(0.5),
67 // TAU / 16.0,
68 // 4.0,
69 // Srgba::new(0.5, 0.5, 0.5, 1.0),
70 // );
71
72 image_renderer.render_circle_lines(DVec2::splat(100.0), 4.0, 1.0, Srgba::new(0.0, 1.0, 0.0, 1.0));
73
74 image_renderer
75 .render_image_onto(image_renderer.black())
76 .save("rectangles.png")
77 .unwrap();
78
79 let mut macroquad_renderer = MacroquadRenderer::new(None);
80
81 {
82 for i in 1..=100 {
83 macroquad_renderer.render_rectangle(
84 DVec2::splat(100.0),
85 101.0 - i as f64,
86 101.0 - i as f64,
87 DVec2::splat(0.5),
88 0.0,
89 Srgba::new((i % 2) as f32, ((i + 1) % 2) as f32, ((i + 1) % 2) as f32, 1.0),
90 );
91 }
92
93 next_frame().await;
94 }
95}Trait Implementations§
Source§impl Clone for ImageRenderer
impl Clone for ImageRenderer
Source§fn clone(&self) -> ImageRenderer
fn clone(&self) -> ImageRenderer
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Renderer for ImageRenderer
impl Renderer for ImageRenderer
fn render_line( &mut self, start: DVec2, end: DVec2, thickness: f64, color: Srgba, )
fn render_circle(&mut self, position: DVec2, radius: f64, color: Srgba)
fn render_circle_lines( &mut self, position: DVec2, radius: f64, thickness: f64, color: Srgba, )
fn render_arc( &mut self, position: DVec2, radius: f64, _rotation: f64, _arc: f64, thickness: f64, color: Srgba, )
fn render_text( &mut self, text: &str, position: DVec2, anchor: Anchor2D, size: f64, color: Srgba, )
fn render_rectangle( &mut self, position: DVec2, width: f64, height: f64, offset: DVec2, rotation: f64, color: Srgba, )
fn render_rectangle_lines( &mut self, position: DVec2, width: f64, height: f64, offset: DVec2, rotation: f64, thickness: f64, color: Srgba, )
fn render_equilateral_triangle( &mut self, position: DVec2, radius: f64, rotation: f64, color: Srgba, )
fn render_equilateral_triangle_lines( &mut self, position: DVec2, radius: f64, rotation: f64, thickness: f64, color: Srgba, )
Auto Trait Implementations§
impl Freeze for ImageRenderer
impl !RefUnwindSafe for ImageRenderer
impl Send for ImageRenderer
impl Sync for ImageRenderer
impl Unpin for ImageRenderer
impl !UnwindSafe for ImageRenderer
Blanket Implementations§
Source§impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
Source§fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
Convert the source color to the destination color using the specified
method.
Source§fn adapt_into(self) -> D
fn adapt_into(self) -> D
Convert the source color to the destination color using the bradford
method by default.
Source§impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
Source§fn arrays_from(colors: C) -> T
fn arrays_from(colors: C) -> T
Cast a collection of colors into a collection of arrays.
Source§impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
Source§fn arrays_into(self) -> C
fn arrays_into(self) -> C
Cast this collection of arrays into a collection of colors.
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
Mutably borrows from an owned value. Read more
Source§impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
Source§type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
The number type that’s used in
parameters when converting.Source§fn cam16_into_unclamped(
self,
parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>,
) -> T
fn cam16_into_unclamped( self, parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>, ) -> T
Converts
self into C, using the provided parameters.Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
Source§fn components_from(colors: C) -> T
fn components_from(colors: C) -> T
Cast a collection of colors into a collection of color components.
Source§impl<T> FromAngle<T> for T
impl<T> FromAngle<T> for T
Source§fn from_angle(angle: T) -> T
fn from_angle(angle: T) -> T
Performs a conversion from
angle.Source§impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
Source§fn from_stimulus(other: U) -> T
fn from_stimulus(other: U) -> T
Converts
other into Self, while performing the appropriate scaling,
rounding and clamping.Source§impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
Source§fn into_angle(self) -> U
fn into_angle(self) -> U
Performs a conversion into
T.Source§impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
Source§type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
The number type that’s used in
parameters when converting.Source§fn into_cam16_unclamped(
self,
parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>,
) -> T
fn into_cam16_unclamped( self, parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>, ) -> T
Converts
self into C, using the provided parameters.Source§impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
Source§fn into_color(self) -> U
fn into_color(self) -> U
Convert into T with values clamped to the color defined bounds Read more
Source§impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
Source§fn into_color_unclamped(self) -> U
fn into_color_unclamped(self) -> U
Convert into T. The resulting color might be invalid in its color space Read more
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>
Converts
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>
Converts
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 moreSource§impl<T> IntoStimulus<T> for T
impl<T> IntoStimulus<T> for T
Source§fn into_stimulus(self) -> T
fn into_stimulus(self) -> T
Converts
self into T, while performing the appropriate scaling,
rounding and clamping.Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.Source§impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
Source§type Error = <C as TryFromComponents<T>>::Error
type Error = <C as TryFromComponents<T>>::Error
The error for when
try_into_colors fails to cast.Source§fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
Try to cast this collection of color components into a collection of
colors. Read more
Source§impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
Source§fn try_into_color(self) -> Result<U, OutOfBounds<U>>
fn try_into_color(self) -> Result<U, OutOfBounds<U>>
Convert into T, returning ok if the color is inside of its defined
range, otherwise an
OutOfBounds error is returned which contains
the unclamped color. Read moreSource§impl<C, U> UintsFrom<C> for Uwhere
C: IntoUints<U>,
impl<C, U> UintsFrom<C> for Uwhere
C: IntoUints<U>,
Source§fn uints_from(colors: C) -> U
fn uints_from(colors: C) -> U
Cast a collection of colors into a collection of unsigned integers.