sf2g 0.4.0

Minimal Rust binding for SFML2 Graphics submodule
Documentation
use sf2g::{
    SfResult,
    graphics::{
        CircleShape, Color, Font, RenderStates, RenderTarget, RenderWindow, Shape, Text,
        Transformable,
    },
    system::Vector2,
    window::{ContextSettings, Event, Style},
};

fn main() -> SfResult<()> {
    let mut rw = RenderWindow::new(
        (640, 480),
        "Text scale",
        Style::CLOSE,
        &ContextSettings::default(),
    )?;
    rw.set_framerate_limit(60);
    let font = Font::from_memory_static(include_bytes!("resources/sansation.ttf"))?;
    let mut text = Text::new("Scale me!".into(), &font, 10);
    while rw.is_open() {
        while let Some(ev) = rw.poll_event() {
            if ev == Event::Closed {
                rw.close()
            }
        }
        rw.clear(Color::BLACK);
        let Vector2 { x: mx, y: my } = rw.mouse_position();
        let [x, y] = [1.0 + mx as f32 / 640., 1.0 + my as f32 / 480.];
        text.tf.position = [320., 240.];
        text.tf.scale = [x, y];
        text.set_string(format!("Scale me! ({x}x{y})"));
        text.draw(&mut *rw, &RenderStates::DEFAULT);
        let mut cs = CircleShape::new(1.0, 8);
        cs.set_fill_color(Color::RED);
        cs.set_position([320., 240.]);
        rw.draw_circle_shape(&cs, &RenderStates::DEFAULT);
        rw.display();
    }
    Ok(())
}