Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
SFML bindings for Rust

README.md

rust-sfml Build Status

SFML bindings for Rust

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

SFML website : www.sfml-dev.org

Installation

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

SFML2.1: http://www.sfml-dev.org/download/sfml/2.1/

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

Then clone the repo and build the library with the following command.

You can build rust-sfml using different version of Rust compiler:

Rust version rust-sfml
Rust master link rsfml
Rust 0.11 link rsfml
Rust 0.10 link rsfml
Rust 0.9 link rsfml
Rust 0.8 link rsfml

Rust-sfml is built with make:

> make

This command build rsfml, the examples, and the documentation.

You can also build them separatly:

> make rsfml
> make examples
> make docs

Alternatively you can use Cargo:

> cargo build

This will build rust-sfml and all the examples.

Rust-sfml works on Linux, Windows and OSX.

Windows 32 bits bug

According to the issue #10, there is problem to use rsfml on Windows. It seems to be a bug in the version of llvm used by Rust. Krzat made a patch to solve this problem, you can find it here: mozilla/rust#11198

Short example

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

extern crate rsfml;

use rsfml::system::Vector2f;
use rsfml::window::{ContextSettings, VideoMode, event, Close};
use rsfml::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.

Something went wrong with that request. Please try again.