sf::text et sf::font

opengl - argument out of range

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Bonjour ! J'essaie d'utiliser les classe sf::Font et sf::Text de la SFML. Pour ce qui est de charger le font , aucun probleme. Mon erreur survient lorsque j'essaie de changer le message a afficher dans la classe sf::Text. Voici un code minimal qui produit l'erreur a chaque fois.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
int main()
{
    sf::RenderWindow window(sf::VideoMode(800,600), "SFML works!");

    sf::Font font;
    if(!font.loadFromFile("arial.ttf"))
        return -1;

    sf::Text text;
    text.setFont(font);
    text.setString("Hello world!"); //erreur ici

    /* ou comme ca .. */
    /* sf::Text("Hello", font, 10); */

    while (window.isOpen())
    {
        sf::Event event;
        while (window.pollEvent(event))
        {
            if (event.type == sf::Event::Closed)
                window.close();
        }
        window.clear();
        window.display();
    }
    return 0;
}

l'erreur en question ..

" OpenGL internal call failed in texture.cpp : GL_INVALID_VALUE : numeric argument out of range "

Merci d'avance pour votre aide.

+0 -0
Auteur du sujet

J'ai deja mis y'a peu de temps mes drivers a jour. Si je me souviens bien , en essayant le moteur Nazara de lynix , j'ai opengl 2.x . SFML 2.0 est suposé utiliser opengl 1.1.

Comment puis-je savoir ma version de opengl ?

edit :: et j'ai cette erreur qu'avec la fonction sf::text::setString(); ou avec le constructeur par parametre.

Édité par Zérotisme

+0 -0

En fait, je ne vois pas pourquoi ce programme ne fonctionnerait pas : il marche très bien chez moi.

Tu utilises quelle version de SFML ?

Tu peux essayer de récupérer le context settings de ta window et d'afficher la version d'OpenGL utilisée par le fenêtre.

+0 -0
Auteur du sujet

J'utilise SFML 2.0 ( Je dois compiler moi meme la 2.3 sinon j'ai des erreurs .. ). Je regarde pour le context settings .. Merci !

Edit ::

1
2
sf::ContextSettings settings = window.getSettings();
std::cout << "OpenGL version:"<< settings.majorVersion << "." << settings.minorVersion << std::endl;

OpenGl : v2.1

Édité par Zérotisme

+0 -0
Auteur du sujet

J'ai reussi a installer sfml 2.3.2 sans avoir a recompiler. Sa regle mon erreur du sf::text::setString(); mais maintenant j'ai exactement la meme erreur lors de l'appel de window.draw(text);

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <SFML\Graphics.hpp>
#include <iostream>

int main()
{
    sf::RenderWindow window(sf::VideoMode(800,600), "SFML works");

    sf::Font font;
    if(!font.loadFromFile("arial.ttf"))
        return -10;

    sf::Text text;
    text.setFont(font);
    text.setString("Hello world!");
    text.setColor(sf::Color::White);

    while (window.isOpen())
    {
        sf::Event event;
        while (window.pollEvent(event))
        {
            if (event.type == sf::Event::Closed)
                window.close();
        }

        window.clear();
        window.draw(text);
        window.display();
    }

    return 0;
}
+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte