Crate sfml [] [src]

rust-sfml

SFML bindings for Rust

This is a Rust binding for SFML, the Simple and Fast Multimedia Library, developped by Laurent Gomila.

SFML website : www.sfml-dev.org

You must install on your computer the SFML2 and CSFML2 libraries who are used for the binding.

SFML2: http://www.sfml-dev.org/download/sfml/2.0/

CSFML2: http://www.sfml-dev.org/download/csfml/

Then clone the repo and build the library with the following command. You can use Cargo to build rust-sfml:

> cargo build

Examples are located under the examples directory. You can run an example with cargo run --example example_name.

Rust-sfml works on Linux, windows and OSX.

Short example

Here is a short example, draw a circle shape and display it.

extern crate sfml;

use sfml::system::Vector2f;
use sfml::window::{ContextSettings, VideoMode, event, Close};
use sfml::graphics::{RenderWindow, RenderTarget, CircleShape, Color};

fn main() {
    // Create the window of the application
    let mut window = match RenderWindow::new(VideoMode::new_init(800, 600, 32),
                                             "SFML Example",
                                             Close,
                                             &ContextSettings::default()) {
        Some(window) => window,
        None => panic!("Cannot create a new Render Window.")
    };

    // Create a CircleShape
    let mut circle = match CircleShape::new() {
        Some(circle) => circle,
        None       => panic!("Error, cannot create ball")
    };
    circle.set_radius(30.);
    circle.set_fill_color(&Color::red());
    circle.set_position(&Vector2f::new(100., 100.));

    while window.is_open() {
        // Handle events
        for event in window.events() {
            match event {
                event::Closed => window.close(),
                _             => {/* do nothing */}
            }
        }

        // Clear the window
        window.clear(&Color::new_rgb(0, 200, 200));
        // Draw the shape
        window.draw(&circle);
        // Display things on screen
        window.display()
    }
}

License

This software is a binding of the SFML library created by Laurent Gomila, which is provided under the Zlib/png license.

This software is provided under the same license than the SFML, the Zlib/png license.

Here is a list of all modules :

Modules

audio

Sounds, streaming (musics or custom sources), recording, spatialization

graphics

2D graphics module: sprites, text, shapes window

network

Socket-based communication

system

Base module of SFML, defining various utilities.

traits

Basic traits for internal functionnement of rust-sfml.

window

Provides OpenGL-based windows, and abstractions for events and input handling.