Comme SFML est construite par dessus OpenGL, ses fenêtres sont déjà prêtes pour vos appels OpenGL, sans effort supplémentaire. </p> <pre><code class="cpp">sf::Window window(sf::VideoMode(800, 600), "OpenGL"); // ça marche directement glEnable(GL_TEXTURE_2D); ... </code></pre> <p> Si vous pensez que c'est <em>trop</em> automatique, rassurez-vous : le constructeur de <?php class_link("Window"); ?> accepte un paramètre supplémentaire qui vous permet de changer les options du contexte OpenGL de la fenêtre. Ce paramètre est une instance de la structure <?php struct_link("ContextSettings"); ?> , qui définit les champs suivants : </p> <ul> <li><code>depthBits</code> est le nombre de bits par pixel pour le <em>depth buffer</em> (0 pour ne pas en créer)</li> <li><code>stencilBits</code> est le nombre de bits par pixel pour le <em>stencil buffer</em> (0 pour ne pas en créer)</li> <li><code>antialiasingLevel</code> est le niveau d'anti-crénelage</li> <li><code>majorVersion</code> et <code>minorVersion</code> définissent la version d'OpenGL demandée</li> </ul> <pre><code class="cpp">sf::ContextSettings settings; settings.depthBits = 24; settings.stencilBits = 8; settings.antialiasingLevel = 4; settings.majorVersion = 3; settings.minorVersion = 0;
} private : sf::Vector2f m_radius; }; </code></pre> <img class="screenshot" src="./images/graphics-shape-ellipse.png" alt="Une ellipse"/> <?php h2('Formes anticrénelées'); ?> <p> Il n'y a pas d'option pour activer l'anticrénelage pour une forme en particulier. Si vous voulez des formes anticrénelées (ie. avec des bords lissés), vous devez activer l'anticrénelage de manière globale lorsque vous créez la fenêtre, avec l'attribut correspondant de la structure <?php struct_link('ContextSettings'); ?> . </p> <pre><code class="cpp">sf::ContextSettings settings; settings.antialiasingLevel = 8; sf::RenderWindow window(sf::VideoMode(800, 600), "SFML shapes", sf::Style::Default, settings); </code></pre> <img class="screenshot" src="./images/graphics-shape-antialiasing.png" alt="Crénelé vs anticrénelé"/> <p> Souvenez-vous que l'anticrénelage dépend de la carte graphique : elle peut ne pas le supporter, ou forcer sa désactivation dans les paramètres du pilote graphique. </p> <?php require "footer-fr.php";