MCPcopy Create free account
hub / github.com/Logicalshift/flo_draw / main

Function main

draw/examples/sprite.rs:7–50  ·  view source on GitHub ↗

Simple example that displays a canvas window and renders a triangle

()

Source from the content-addressed store, hash-verified

5/// Simple example that displays a canvas window and renders a triangle
6///
7pub fn main() {
8 with_2d_graphics(|| {
9 // Create a window
10 let canvas = create_drawing_window("Basic sprite rendering");
11
12 // Sprites are a way to rapidly repeat a set of drawing instructions
13 canvas.draw(|gc| {
14 // Clear the canvas and set up the coordinates
15 gc.clear_canvas(Color::Rgba(0.0, 2.0, 0.0, 1.0));
16 gc.canvas_height(1000.0);
17 gc.center_region(0.0, 0.0, 1000.0, 1000.0);
18
19 // Create a triangle sprite
20 gc.sprite(SpriteId(0));
21 gc.clear_sprite();
22 gc.new_path();
23 gc.move_to(200.0, 200.0);
24 gc.line_to(800.0, 200.0);
25 gc.line_to(500.0, 800.0);
26 gc.line_to(200.0, 200.0);
27
28 gc.fill_color(Color::Rgba(0.8, 0.4, 0.2, 1.0));
29 gc.fill();
30
31 // Draw the triangle in a few places
32 gc.layer(LayerId(0));
33
34 gc.sprite_transform(SpriteTransform::Identity);
35 gc.draw_sprite(SpriteId(0));
36
37 gc.sprite_transform(SpriteTransform::Identity);
38 gc.sprite_transform(SpriteTransform::Translate(100.0, 100.0));
39 gc.draw_sprite(SpriteId(0));
40
41 gc.sprite_transform(SpriteTransform::Identity);
42 gc.sprite_transform(SpriteTransform::Translate(200.0, 100.0));
43 gc.draw_sprite(SpriteId(0));
44
45 gc.sprite_transform(SpriteTransform::Identity);
46 gc.sprite_transform(SpriteTransform::Translate(300.0, 100.0));
47 gc.draw_sprite(SpriteId(0));
48 });
49 });
50}

Callers

nothing calls this directly

Calls 15

with_2d_graphicsFunction · 0.85
create_drawing_windowFunction · 0.85
SpriteIdClass · 0.85
LayerIdClass · 0.85
clear_canvasMethod · 0.80
canvas_heightMethod · 0.80
center_regionMethod · 0.80
spriteMethod · 0.80
clear_spriteMethod · 0.80
new_pathMethod · 0.80
fill_colorMethod · 0.80
sprite_transformMethod · 0.80

Tested by

no test coverage detected