Repository

vSFML

V binding for the Simple and Fast Multimedia Library (SFML). Based on the SFML C binding.

All SFML features are available with the exception of the thread and mutex functions (use the ones from the vlib).

Only tested on Ubuntu 18.04, but should work on other operating systems.

API

Examples:

Basic example:

module main

import os
import vsfml.graphics
import vsfml.window
import vsfml.system

fn main() {
    win := graphics.new_render_window(
        mode: window.VideoMode{800, 600, 32}
        title: 'Basic example'
    )!
    win.set_vertical_sync_enabled(true)
    sfml_logo_texture := graphics.new_texture_from_file(
        filename: os.join_path(os.vmodules_dir(), 'vsfml/examples/resources/sfml_logo.png')
    )!
    sfml_logo := graphics.new_sprite()!
    sfml_logo.set_texture(sfml_logo_texture, true)
    sfml_logo.set_position(system.Vector2f{170, 50})

    for win.is_open() {
        // Process all events
        for {
            event := win.poll_event() or { break }
            match event {
                // Window closed or escape key pressed: exit
                window.CloseEvent {
                    win.close()
                    break
                }
                window.KeyPressedEvent {
                    match event.code {
                        .escape {
                            win.close()
                            break
                        }
                        else {}
                    }
                }
                else {}
            }
        }

        // Display
        win.clear(graphics.color_from_rgb(50, 50, 50))

        win.draw_sprite(object: sfml_logo)

        win.display()
    }
}

The examples directory contains a port of the SFML Tennis example.

Dependencies

Linux

Ubuntu

$ sudo apt install libcsfml-dev

About

0
87
last May 7

Author

Jmgr