# Introduction

Cette documentation est assez courte, mais étant donné que cette extension n'est qu'une simple encapsulation des classes C++ de SFML, il est conseillé de se baser sur la documentation SFML pour obtenir plus de détails sur les classes et les fonctions. Cette documentation a simplement pour but de détailler les classes et fonctions qui sont présentes dans l'extension RubySFML, ainsi que de décrire les changements qui ont été effectués durant la traduction C++ vers Ruby.

Etant donné que Ruby ne supporte pas les threads et possède ses propres classes pour le réseau, seules certaines classes des modules système, fenêtrage, graphisme et audio sont exposées. Pour la plupart des classes, les seuls changements effectués ont été de faire débuter les noms des fonctions par une minuscule. Pour les classes possédant des accesseurs simples, ceux-ci ont souvent été abandonnés pour utiliser une syntaxe plus simple (par exemple sprite.left = ...). Quelques fonctions to_i, to_f et to_s ont étalement été ajoutées là où cela semblait pertinent. Enfin, un itérateur "each" a été ajouté à VideoMode.

En plus des classes C++ exposées, deux classes utiles ont également été ajoutées à RubySFML.rb, l'une pour afficher des sprites à base de tuiles, et l'autre pour gérer les sprites utilisant des calculs de vitesse / acceleration (respectivement TSprite et VSprite).

### Astuces pour les utilisateurs Windows

Pour les utilisateurs Windows, nous regrettons de ne pas pouvoir être compatibles avec l'installeur "one-click", mais celui-ci est compilé avec Visual Studio 6.0, qui est ridiculeusement vieux et incompatible avec les bibliothèques SFML. Il existe une version gratuite de Visual Studio 2005, et les sources de Ruby compilent parfaitement avec celle-ci, on ne peut donc trouver aucune bonne excuse à l'installeur pour toujours utiliser Visual C++ 6.0.

La bonne nouvelle est que vous pouvez distribuer vos applications dans une archive qui se suffit à elle-même, en incluant les répertoires "bin" et "lib" qui sont inclus dans la version Windows de cette extension. Ajoutez un installeur simple qui crée une icône du menu démarrer exécutant "%install_path%\bin\ruby.exe %install_path%\my_game.rb", et tout sera parfait. Oh, encore une chose, OpenAL doit être installé pour exécuter les programmes utilisant RubySFML. Heureusement, il s'agit d'un installeur extrêmement petit et simple, et vous pourrez sans problème le fournir dans vos installations ou donner un lien pour le télécharger. Tout ceci évite à vos utilisateurs d'avoir à télécharger / exécuter l'installeur "one-click", installer toutes les extensions nécessaires, s'occuper des problèmes de compatibilité, etc. Il est probable que très peu d'utilisateurs Windows utilisent vos applications si vous ne leur fournissez pas tout ce dont ils ont besoin, c'est donc probablement mieux de cette manière.

Note : cette compilation perso de Ruby ne contient pas gems et zlib (qui est recquis par gems), mais aucune autre extension n'est installée. N'hésitez pas à installer n'importe quelle autre gems / extension dont vous auriez besoin (les gems mswin32 compilés avec Visual Studio 6.0 ne fonctionneront probablement pas). Gardez en tête que beaucoup de gems ont une documentation conséquente, des exemples et des répertoires de test. Supprimer ces répertoires innutiles, ainsi que le répertoire cache des gems, peut réduire de manière significative la taille des fichiers que vous distribuez.

### Exemple de code RubySFML

    # On inclut l'extension RubySFML
    require "RubySFML"
    include SFML

    # On crée la fenêtre principale
    mode = VideoMode.new 800, 600, 32
    window = RenderWindow.new mode, "RubySFML Test", false

    # On charge un sprite à afficher
    image = Image.new "cute_image.jpg"
    sprite = Sprite.new image

    # On crée une chaîne graphique à afficher
    text = Text.new "Hello SFML", "arial.ttf", 50

    # On charge une musique et on commence à la jouer
    music = Music.new "nice_music.ogg"
    music.play

    # On démarre la boucle principale
    running = true
    while running
    	while event = window.getEvent
    		running = false if event.type == Event::Close
    	end

    	# On dessine le sprite, le texte, puis on met à jour la fenêtre
    	window.draw sprite
    	window.draw text
    	window.display
    end

### Modules RubySFML

- SFML - Contient toutes les classes, modules et fonctions globales SFML
- SFML::Event - Contient les constantes associées aux évènements SFML.
- SFML::Key - Contient les constantes pour tous les codes de touches clavier SFML.
- SFML::Mouse - Contient les constantes pour tous les codes de boutons souris SFML.

### Classes RubySFML

- SFML::Clock - Une horloge système utilisant les timers haute performance lorsqu'ils sont accessibles
- SFML::Color - Une classe de couleurs RGBA très simple
- SFML::Drawable - Une classe abstraite représentant les objets 2D utilisés dans une Renderwindow
- SFML::Event - Une classe représentant les différents évènements système (clavier, souris, etc.)
- SFML::FloatRect - Un simple rectangle composé de 4 coordonnées flottantes
- SFML::Image - Une classe pour gérer les fichiers images et les textures
- SFML::Input - Une classe pour récupérer l'état des périphériques d'entrée (clavier, souris, joystick)
- SFML::IntRect - Un simple rectangle composé de 4 coordonnées entières
- SFML::Music - Une classe pour jouer des musiques en streaming
- SFML::PostFX - Une classe pour gérer les shaders post-rendu
- SFML::RenderWindow - Une sous-classe de Window wui permet d'afficher les objets 2D tels que sprites et texte
- SFML::Sound - Une classe pour jouer des sons
- SFML::SoundBuffer - Une classe pour stocker des échantillons audio
- SFML::SoundBufferRecorder - Une classe pour enregistrer du son à partir d'un périphérique de capture audio, comme un microphone
- SFML::Sprite - Une classe pour gérer et afficher des sprites 2D
- SFML::Text - Une classe pour gérer et afficher du texte 2D
- SFML::VideoMode - Une classe pour gérer les différents modes vidéo
- SFML::View - Une classe pour gérer la caméra 2D dans une RenderWindow
- SFML::Window - Une classe pour créer et gérer une fenêtre capable d'afficher un rendu OpenGL (gère également les entrées et les évènements)

### Fonctions RubySFML (par module / classe)

#### SFML

- checkExtension(str) - Renvoie vrai si l'extension OpenGL donnée est supportée.
- getMaxTextureSize - Renvoie la taille maximum de texture.
- getMaxTextureUnits - Renvoie le nombre maximum d'unités de textures utilisables.

#### SFML::Clock

- initialize() - Constructeur par défaut
- to_s - Renvoie une chaîne formatée décrivant l'objet (pour déboguage)
- reset - Remet à zéro l'horloge
- elapsedTime,to_f - Renvoie le nombre de secondes écoulées depuis le dernier appel à reset

#### SFML::Color

- initialize() - Constructeur par défaut
- initialize(n) - Construit l'objet à partir d'une couleur 32 bits entière non signée (0x12345678 donne r=0x78, g=0x56, b=0x34, a=0x12)
- initialize(r, g, b, a=255) - Construit la couleur à partir de ses composantes
- to_s - Renvoie une chaîne formatée décrivant l'objet (pour déboguage)
- r, g, b, a - Renvoie les composantes r, g, b et a (respectivement)
- r=, g=, b=, a= - Affecte les composantes r, g, b et a (respectivement)
- toRGBA -Renvoie les 4 composantes de la couleur sous forme d'entier RGBA 32 bits non signé (0x12345678 donne r=0x78, g=0x56, b=0x34, a=0x12)
- to_i - Alias pour toRGBA

#### SFML::Drawable

- initialize(left=0, top=0, scale=1, rotation=0, color=Color.White) - Initialise les différents membres (scale peut être un nombre ou un tableau de deux nombres)
- to_s - Renvoie une chaîne formatée décrivant l'objet (pour déboguage)
- left, left= - Modifie / récupère la position x de l'objet
- top, top= - Modifie / récupère la position y de l'objet
- scale, scale= - Modifie / récupère le facteur d'échelle de l'objet (renvoie un tableau, mais peut être initialisé à partir d'un tableau ou d'un seul nombre)
- color, color= - Modifie / récupère la couleur de l'objet
- rotation, rotation= - Modifie / récupère l'angle de rotation (en degrés)
- upVector - Récupère le vecteur "haut" de l'objet (basé sur son angle de rotation)
- rightVector - Récupère le vecteur "droite" de l'objet (basé sur son angle de rotation)
- setRotationCenter(x, y) - Change le centre de rotation de l'objet
- move(x, y) - Déplace l'objet horizontalement et verticalement
- rotate(a) - Fait tourner l'objet
- render(window) - (virtuelle) à redéfinir pour personnaliser le rendu de l'objet

#### SFML::Event

##### Pour tous les types d'évènements

- initialize - Ne prend aucun paramètre
- to_s - Renvoie une chaîne formatée décrivant l'objet (pour déboguage)
- type - Renvoie le type de l'évènement

##### Pour les évènements de type Event::TextEntered

- char - Renvoie le caractère entré (uniquement pour les évènements Event::TextEntered)

##### Pour les évènements de type Event::KeyPressed et Event::KeyReleased

- code - Renvoie le code de la touche (uniquement pour les évènements Event::KeyPressed et Event::KeyReleased)
- alt - Renvoie vrai si la touche Alt est enfoncée (uniquement pour les évènements Event::KeyPressed et Event::KeyReleased)
- control - Renvoie vrai si la touche Control est enfoncée (uniquement pour les évènements Event::KeyPressed et Event::KeyReleased)
- shift - Renvoie vrai si la touche Shift est enfoncée (uniquement pour les évènements Event::KeyPressed et Event::KeyReleased)

##### Pour les évènements de type souris et joystick

- delta - Renvoie le déplacement de la molette souris (uniquement pour les évènements Event::MouseWheelMoved)
- buttons - Renvoie l'état des boutons de la souris (uniquement pour les évènements souris)
- button - Renvoie l'état des boutons du joystick (uniquement pour les évènements joystick)
- x - Renvoie la position x (uniquement pour les évènements souris et joystick)
- y - Renvoie la position y (uniquement pour les évènements souris et joystick)
- z - Renvoie la position z (uniquement pour les évènements joystick)

##### Pour les évènements de type Event::Resize

- width - Renvoie la nouvelle largeur de la fenêtre (uniquement pour les évènements Event::Resize)
- height - Renvoie la nouvelle hauteur de la fenêtre (uniquement pour les évènements Event::Resize)

#### SFML::FloatRect

- initialize() - Constructeur par défaut
- initialize(left, top, right, bottom) - Initialise les coordonnées du rectangle (gauche, haut, droite, bas)
- to_s - Renvoie une chaîne formatée décrivant l'objet (pour déboguage)
- left, l - Renvoie la position x gauche
- left=, l= - Modifie la position x gauche
- top, t - Renvoie la position y haute
- top=, t= - Modifie la position y haute
- right, r - Renvoie la position x droite
- right=, r= - Modifie la position x droite
- bottom, b - Renvoie la position y basse
- bottom=, b= - Modifie la position y basse
- width, w - Renvoie la largeur du rectangle
- height, h - Renvoie la hauteur du rectangle
- contains(x, y) - Renvoie vrai si le point (x, y) est à l'intérieur du rectangle
- intersects(rect) - Renvoie l'intersection de deux rectangles (nil s'il n'y a aucune intersection)

#### SFML::Image

- initialize - Crée une image vide
- initialize(image) - Crée une copie d'une image
- initialize(path) - Charge une image à partir du fichier spécifié (lève une erreur RuntimeError si échoue)
- initialize(w, h, c=Color.Black) - Crée une image vide avec les dimensions et la couleur données
- to_s - Renvoie une chaîne formatée décrivant l'objet (pour déboguage)
- getValidTextureSize(s) - (statique) Renvoie la taille de texture valide la plus proche >= s
- width, w - Renvoie la largeur de l'image
- height, h - Renvoie la hauteur de l'image
- smooth=, setSmooth(bool) - Modifie les paramètres de lissage de l'image (true pour activer, false pour désactiver)
- repeat=, setRepeat(bool) - Modifie les paramètres de répétition de l'image (true pour activer, false pour désactiver)
- loadFromFile(path) - Charge l'image à partir du fichier spécifié (renvoie faux si échoue)
- saveToFile(path) - Sauvegarde l'image dans le fichier spécifié
- create(w, h, c=Color.Black) - Crée une image vide avec les dimensions et la couleur données
- createMaskFromColor(color, a=0) - Remplace la valeur alpha (transparence) de tous les pixels ayant la couleur spécifiée, par la valeur de transparence donnée
- resize(w, h, c=Color.Black) - Redimensionne l'image. Si celle-ci est agrandie, les nouveaux pixels ont la couleur spécifiée
- getPixel(x, y), [x,y] - Renvoie la couleur du pixel (x, y)
- setPixel(x, y, c), [x,y]= - Change la couleur du pixel (x, y) par la couleur spécifiée
- update - Met à jour l'image en mémoire vidéo (à appeler après toute modification manuelle des pixels)
- bind - Utilise l'image pour le rendu (à appeler si vous utiliser l'image en tant que texture pour un rendu OpenGL)
- getTexCoords(rect) - Convertit des coordonnées entières en pixel, en coordonnées flottantes de texture

#### SFML::Input

- initialize - Constructeur par défaut
- isKeyDown(key) - Renvoie vrai si la touche spécifiée est enfoncée
- isMouseButtonDown(button) - Renvoie vrai si le bouton souris spécifié est enfoncé
- isJoystickButtonDown(n, button) - Renvoie vrai si le bouton du joystick n spécifié est enfoncé
- getMouseX - Renvoie la position x actuelle de la souris
- getMouseY - Renvoie la position y actuelle de la souris
- getJoystickX(n) - Renvoie la position x actuelle du joystick n
- getJoystickY(n) - Renvoie la position y actuelle du joystick n
- getJoystickZ(n) - Renvoie la position z actuelle du joystick n

#### SFML::IntRect

- initialize() - Constructeur par défaut
- initialize(left, top, right, bottom) - Initialise les coordonnées du rectangle (gauche, haut, droite, bas)
- to_s - Renvoie une chaîne formatée décrivant l'objet (pour déboguage)
- left, l - Renvoie la position x gauche
- left=, l= - Modifie la position x gauche
- top, t - Renvoie la position y haute
- top=, t= - Modifie la position y haute
- right, r - Renvoie la position x droite
- right=, r= - Modifie la position x droite
- bottom, b - Renvoie la position y basse
- bottom=, b= - Modifie la position y basse
- width, w - Renvoie la largeur du rectangle
- height, h - Renvoie la hauteur du rectangle
- contains(x, y) - Renvoie vrai si le point (x, y) est à l'intérieur du rectangle
- intersects(rect) - Renvoie l'intersection de deux rectangles (nil s'il n'y a aucune intersection)

#### SFML::Music

- initialize(bufSize=44100) - Permet de spécifier la taille du tampon interne (à modifier si vous rencontrez des problèmes de performances ou de saccades)
- initialize(path) - Ouvre la musique à partir du fichier spécifié (lève une erreur RuntimeError si échoue).
- to_s - Renvoie une chaîne formatée décrivant l'objet (pour déboguage)
- loop, loop= - Renvoie / modifie un booléen indiquant si la musique doit boucler lorsqu'elle est terminée
- duration - Renvoie la durée totale de la musique, en secondes
- channels - Renvoie le nombre de canaux de la musique (1 = mono, 2 = stereo).
- sampleRate - Renvoie le taux d'échantillonnage de la musique (44100 = qualité CD).
- status - Renvoie l'état de lecture de la musique (Sound::Stopped, Sound::Paused, Sound::Playing).
- open(path) - Ouvre la musique à partir du fichier spécifié (renvoie faux si échoue).
- play - Démarre la lecture de la musique
- stop - Stoppe la lecture de la musique

#### SFML::PostFX

- (Hérite de toutes les fonctions de SFML::Drawable)
- initialize() - Constructeur par défaut
- initialize(path) - Charge le fichier effet spécifié
- initialize(postFX) - Crée une copie d'un objet PostFX
- loadFromFile(path) - Charge le fichier effet spécifié (renvoie faux si échoue)
- setParameter(name, x, y=nil, z=nil, w=nil) - Change la valeur d'un paramètre de l'effet
- setTexture(name, image) - Change une texture de l'effet

#### SFML::RenderWindow

- initialize(mode, title, style=Window::Resizable, antialias=0) - Crée une fenêtre de rendu 2D en utilisant le mode vidéo, le titre et le style spécifiés
- to_s - Renvoie une chaîne formatée décrivant l'objet (pour déboguage)
- width, w - Renvoie la largeur de la fenêtre
- height, h - Renvoie la hauteur de la fenêtre
- input - Renvoie l'objet SFML::Input associé à cette fenêtre
- frameTime - Renvoie le temps écoulé depuis le dernier rafraîchissement
- stencilBits - Renvoie le nombre de bits alloués au tampon stencil
- depthBits - Renvoie le nombre de bits alloués au tampon de profondeur
- view, view= - Renvoie / modifie l'objet SFML::View courant (camera 2D)
- backgroundColor= - Modifie la couleur de fond de la fenêtre
- getEvent - Renvoie le prochain évènement en attente dans la file d'évènements (ou nil s'il n'y en a aucun)
- useVerticalSync(bool) - Active / désactive la synchronisation verticale
- showMouseCursor(bool) - Affiche / cache le curseur souris sur la fenêtre
- display - Met à jour la fenêtre à l'écran
- beginOpenGL - Sauvegarde les états OpenGL internes avant que vous ne placiez des appels OpenGL
- endOpenGL - Restaure les états OpenGL internes après que vous ayiez placé des appels OpenGL
- capture - Prend une capture d'écran et la renvoie sous forme d'image
- draw(obj) - Affiche dans la fenêtre tout objet dérivant de SFML::Drawable
- setFramerateLimit - Fixe une limite de rafraîchissement, en images par seconde (0 pour désactiver)

#### SFML::Sound

- initialize(sound) - Crée une copie d'un objet son
- initialize(buffer=nil, loop=false, pitch=1, volume=100, x=0, y=0, z=0) - Crée un objet son en utilisant le tampon audio et les autres paramètres spécifiés
- to_s - Renvoie une chaîne formatée décrivant l'objet (pour déboguage)
- buffer, buffer= - Renvoie / modifie le SFML::SoundBuffer de cet objet
- loop, loop= - Renvoie / modifie l'état de bouclage du son
- pitch, pitch= - Renvoie / modifie le pitch du son
- volume, volume= - Renvoie / modifie le volume du son
- position, position= -Renvoie / modifie la position du son (utilise un tableau de 3 valeurs)
- status - Renvoie l'état de lecture du son (Sound::Stopped, Sound::Paused, Sound::Playing).
- playingOffset - Renvoie la position de lecture courante du son (en secondes).
- play - Démarre la lecture du son
- pause - Met ne pause le son
- stop - Stoppe la lecture du son

#### SFML::SoundBuffer

- initialize() - Constructeur par défaut
- initialize(soundBuffer) - Crée une copie d'un objet SoundBuffer
- initialize(path) - Charge le tampon sonore à partir du fichier spécifié (lève une erreur RuntimeError si échoue).
- to_s - Renvoie une chaîne formatée décrivant l'objet (pour déboguage)
- samples - Renvoie les échantillons sonores bruts sous forme de chaîne Ruby
- samplesCount - Renvoie le nombre d'échantillons sonores du tampon
- samplesRate - Renvoie le taux d'échantillonnage (nombre d'échantillons par seconde pour chaque canal)
- channels - Renvoie le nombre de canaux (1 = mono, 2 = stereo)
- duration - Renvoie la durée du tampon sonore (en secondes)
- loadFromFile(path) - Charge le tampon sonore à partir du fichier spécifié (renvoie faux si échoue)
- saveToFile(path) - Sauvegarde le tampon sonore dans le fichier spécifié (renvoie faux si échoue)
- loadFromMemory(samples, samplesCount, channels, sampleRate) - Construit le tampon sonore à partir d'échantillons bruts en mémoire

#### SFML::SoundBufferRecorder

- initialize() - Constructeur par défaut
- canCapture - (statique) Renvoie vrai si le système est capable d'effectuer les captures audio
- start(sampleRate=44100) - Démarre la capture audio
- stop - Stoppe la capture audio
- buffer - Renvoie l'objet SoundBuffer contenant le son capturé
- sampleRate - Renvoie le taux d'échantillonnage utilisé pour la capture

#### SFML::Sprite

- (Hérite de toutes les fonctions de SFML::Drawable)
- initialize() - Constructeur par défaut
- initialize(image, left=0, top=0, scale=1, rotation=0, c=Color.White) - Construit le sprite à partir de l'image et des autres paramètres donnés (le paramètre scale peut être un nombre simple ou un tableau de deux nombres)
- to_s - Renvoie une chaîne formatée décrivant l'objet (pour déboguage)
- width, w - Renvoie la largeur du sprite (affectée par subRect et scale)
- height, h - Renvoie la hauteur du sprite (affectée par subRect et scale)
- right, right= - Renvoie / modifie la position x droite du sprite
- bottom, bottom= - Renvoie / modifie la position y basse du sprite
- x, x= - Renvoie / modifie la position x centrale du sprite
- y, y= - Renvoie / modifie la position y centrale du sprite
- image, image= - Renvoie / modifie l'image utilisée par le sprite
- subRect, subRect= - Renvoie / modifie le sous-rectangle de l'image source utilisé pour le sprite
- getPixel(x,y), [x,y] - Renvoie la couleur d'un pixel du sprite relativement à son sous-rectangle ([0, 0] serait le pixel haut-gauche du sous-rectangle)
- radius - Renvoie le rayon du cercle englobant du sprite (basé sur sa hauteur et sa largeur)
- distance(sprite) - Renvoie la distance entre les centres de deux sprites
- render(window) - (virtuelle) A redéfinir pour effectuer un rendu personnalisé

#### SFML::Text

- (Hérite de toutes les fonctions de SFML::Drawable)
- initialize(str="", font="", size=32) - Initialise l'objet Text avec le texte, la police et la taille spécifiés
- preloadFont(font, size) - (statique) Force le chargement de la police avant sa première utilisation
- text, text= - Renvoie / modifie la chaîne à afficher
- font, font= - Renvoie / modifie la police de caractères à utiliser
- size, size= - Renvoie / modifie la taille du texte
- getRect - Renvoie le rectangle englobant de la chaîne graphique
- render(window) - (virtuelle) A redéfinir pour effectuer un rendu personnalisé

#### SFML::VideoMode

- initialize() - Constructeur par défaut
- initialize(w, h, bpp=32) - Crée un mode vidéo avec les dimensions et la profondeur (bits par pixel) spécifiées
- desktop - (statique) Renvoie le mode vidéo actuel du bureau
- each - (statique) Itère sur tous les modes vidéo plein écran valides
- to_s - Renvoie une chaîne formatée décrivant l'objet (pour déboguage)
- width, w, width=, w= - Renvoie / modifie la largeur du mode vidéo
- height, h, height=, h= - Renvoie / modifie la hauteur du mode vidéo
- bitsPerPixel, bpp, bitsPerPixel=, bpp= - Renvoie / modifie la profondeur (bits par pixels) du mode vidéo
- isValid - Renvoie vrai si le mode est un mode plein écran valide

#### SFML::View

- initialize() - Constructeur par défaut
- initialize(left, top, width, height, zoom=1) - Initialise la vue avec la position, taille et le zomm spécifiés
- to_s - Renvoie une chaîne formatée décrivant l'objet (pour déboguage)
- left, l, left=, l= - Renvoie / modifie la position x gauche de la vue
- top, t, top=, t= - Renvoie / modifie la position y haute de la vue
- width, w, width=, w= - Renvoie / modifie la largeur de la vue
- height, h, height=, h= - Renvoie / modifie la hauteur de la vue
- zoom, zoom= - Renvoie / modifie le facteur de zoom de la vue

#### SFML::Window

- initialize(mode, title, style=Window::Resizable, antialias=0) - Crée une fenêtre en utilisant le mode vidéo, le titre et le style spécifiés
- to_s - Renvoie une chaîne formatée décrivant l'objet (pour déboguage)
- width, w - Renvoie la largeur de la fenêtre
- height, h - Renvoie la hauteur de la fenêtre
- input - Renvoie l'objet SFML::Input associé à cette fenêtre
- frameTime - Renvoie le temps écoulé depuis le dernier rafraîchissement
- stencilBits - Renvoie le nombre de bits alloués au tampon stencil
- depthBits - Renvoie le nombre de bits alloués au tampon de profondeur
- getEvent - Renvoie le prochain évènement en attente dans la file d'évènements (ou nil s'il n'y en a aucun)
- useVerticalSync(bool) - Active / désactive la synchronisation verticale
- showMouseCursor(bool) - Affiche / cache le curseur souris sur la fenêtre
- display - Met à jour la fenêtre à l'écran
- setCurrent - Rend la fenêtre courante active pour le rendu
- setFramerateLimit - Fixe une limite de rafraîchissement, en images par seconde (0 pour désactiver)