Function vec2

Source
pub const fn vec2(x: f32, y: f32) -> Vec2
Expand description

Creates a 2-dimensional vector.

Examples found in repository?
examples/tree.rs (line 32)
30async fn main() {
31    let camera = Camera2D {
32        zoom: vec2(1., 1.),
33        target: vec2(0.0, 0.5),
34        ..Default::default()
35    };
36
37    set_camera(&camera);
38    loop {
39        clear_background(LIGHTGRAY);
40
41        draw_circle(0., 0., 0.03, DARKGRAY);
42        tree(unsafe { get_internal_gl().quad_gl }, get_time(), 0, 1., 0.3);
43
44        next_frame().await
45    }
46}
More examples
Hide additional examples
examples/camera.rs (line 11)
4async fn main() {
5    loop {
6        clear_background(LIGHTGRAY);
7
8        // Render some primitives in camera space
9
10        set_camera(&Camera2D {
11            zoom: vec2(1., screen_width() / screen_height()),
12            ..Default::default()
13        });
14        draw_line(-0.4, 0.4, -0.8, 0.9, 0.05, BLUE);
15        draw_rectangle(-0.3, 0.3, 0.2, 0.2, GREEN);
16        draw_circle(0., 0., 0.1, YELLOW);
17
18        // Back to screen space, render some text
19
20        set_default_camera();
21        draw_text("HELLO", 30.0, 200.0, 30.0, BLACK);
22
23        next_frame().await
24    }
25}
examples/screen_texture.rs (line 27)
4async fn main() {
5    let texture: Texture2D = load_texture("examples/chess.png").await.unwrap();
6
7    let lens_material = load_material(
8        ShaderSource::Glsl {
9            vertex: LENS_VERTEX_SHADER,
10            fragment: LENS_FRAGMENT_SHADER,
11        },
12        MaterialParams {
13            uniforms: vec![UniformDesc::new("Center", UniformType::Float2)],
14            ..Default::default()
15        },
16    )
17    .unwrap();
18
19    loop {
20        clear_background(WHITE);
21        draw_texture_ex(
22            &texture,
23            0.0,
24            0.0,
25            WHITE,
26            DrawTextureParams {
27                dest_size: Some(vec2(screen_width(), screen_height())),
28                ..Default::default()
29            },
30        );
31
32        let lens_center = mouse_position();
33
34        lens_material.set_uniform("Center", lens_center);
35
36        gl_use_material(&lens_material);
37        draw_circle(lens_center.0, lens_center.1, 250.0, RED);
38        gl_use_default_material();
39
40        next_frame().await
41    }
42}
examples/exit_dialog.rs (line 19)
5async fn main() {
6    prevent_quit();
7
8    let mut show_exit_dialog = false;
9    let mut user_decided_to_exit = false;
10
11    loop {
12        clear_background(GRAY);
13
14        if is_quit_requested() {
15            show_exit_dialog = true;
16        }
17
18        if show_exit_dialog {
19            let dialog_size = vec2(200., 70.);
20            let screen_size = vec2(screen_width(), screen_height());
21            let dialog_position = screen_size / 2. - dialog_size / 2.;
22            Window::new(hash!(), dialog_position, dialog_size).ui(&mut *root_ui(), |ui| {
23                ui.label(None, "Do you really want to quit?");
24                ui.separator();
25                ui.same_line(60.);
26                if ui.button(None, "Yes") {
27                    user_decided_to_exit = true;
28                }
29                ui.same_line(120.);
30                if ui.button(None, "No") {
31                    show_exit_dialog = false;
32                }
33            });
34        }
35
36        if user_decided_to_exit {
37            break;
38        }
39
40        next_frame().await
41    }
42}
examples/3d.rs (line 26)
4async fn main() {
5    let rust_logo = load_texture("examples/rust.png").await.unwrap();
6    let ferris = load_texture("examples/ferris.png").await.unwrap();
7
8    loop {
9        clear_background(LIGHTGRAY);
10
11        // Going 3d!
12
13        set_camera(&Camera3D {
14            position: vec3(-20., 15., 0.),
15            up: vec3(0., 1., 0.),
16            target: vec3(0., 0., 0.),
17            ..Default::default()
18        });
19
20        draw_grid(20, 1., BLACK, GRAY);
21
22        draw_cube_wires(vec3(0., 1., -6.), vec3(2., 2., 2.), DARKGREEN);
23        draw_cube_wires(vec3(0., 1., 6.), vec3(2., 2., 2.), DARKBLUE);
24        draw_cube_wires(vec3(2., 1., 2.), vec3(2., 2., 2.), YELLOW);
25
26        draw_plane(vec3(-8., 0., -8.), vec2(5., 5.), Some(&ferris), WHITE);
27
28        draw_cube(
29            vec3(-5., 1., -2.),
30            vec3(2., 2., 2.),
31            Some(&rust_logo),
32            WHITE,
33        );
34        draw_cube(vec3(-5., 1., 2.), vec3(2., 2., 2.), Some(&ferris), WHITE);
35        draw_cube(vec3(2., 0., -2.), vec3(0.4, 0.4, 0.4), None, BLACK);
36
37        draw_sphere(vec3(-8., 0., 0.), 1., None, BLUE);
38
39        // Back to screen space, render some text
40
41        set_default_camera();
42        draw_text("WELCOME TO 3D WORLD", 10.0, 20.0, 30.0, BLACK);
43
44        next_frame().await
45    }
46}
examples/post_processing.rs (line 22)
4async fn main() {
5    let render_target = render_target(320, 150);
6    render_target.texture.set_filter(FilterMode::Nearest);
7
8    let material = load_material(
9        ShaderSource::Glsl {
10            vertex: CRT_VERTEX_SHADER,
11            fragment: CRT_FRAGMENT_SHADER,
12        },
13        Default::default(),
14    )
15    .unwrap();
16
17    loop {
18        // drawing to the texture
19
20        // 0..100, 0..100 camera
21        set_camera(&Camera2D {
22            zoom: vec2(0.01, 0.01),
23            target: vec2(0.0, 0.0),
24            render_target: Some(render_target.clone()),
25            ..Default::default()
26        });
27
28        clear_background(LIGHTGRAY);
29        draw_line(-30.0, 45.0, 30.0, 45.0, 3.0, BLUE);
30        draw_circle(-45.0, -35.0, 20.0, YELLOW);
31        draw_circle(45.0, -35.0, 20.0, GREEN);
32
33        // drawing to the screen
34
35        set_default_camera();
36
37        clear_background(WHITE);
38        gl_use_material(&material);
39        draw_texture_ex(
40            &render_target.texture,
41            0.,
42            0.,
43            WHITE,
44            DrawTextureParams {
45                dest_size: Some(vec2(screen_width(), screen_height())),
46                ..Default::default()
47            },
48        );
49        gl_use_default_material();
50
51        next_frame().await;
52    }
53}