Forum de la communauté SFML

Aide => Graphique => Discussion démarrée par: spyker18 le Avril 26, 2014, 05:04:34 pm

Titre: Sprite sans bug et message bizar.?!
Posté par: spyker18 le Avril 26, 2014, 05:04:34 pm
Bonjour a tous, je surf sur deux trois tuto sur la SFML et je suis sur les sprites et les "chargements",

lors du chargement un message d'erreur apparait :
Citer
An internal OpenGL call failed in Texture.cpp (146) : GL_INVALID_ENUM, an unacce
ptable value has been specified for an enumerated argument
An internal OpenGL call failed in Texture.cpp (147) : GL_INVALID_ENUM, an unacce
ptable value has been specified for an enumerated argument

Voici les lignes de code en rapport avec ma Sprite :

Citer
sf::Texture perso;
sf::Sprite sprite_perso;

    if (!perso.loadFromFile("image.png"))
    {
        std::cout << "ERREUR : chargement de image.png" << std::endl;
    }

Bizarrement je peux continuer a travailler avec cette image, même ce message d'erreur survient...

Alors : Ai-je fait une ligne fausse(que mon compilateur n'aurais pas détecté?) ???
pourquoi le "if" n'a pas détecté l'erreur alors qu'une erreur est la ? ::)

est t'il possible de "supprimer" cette erreur ? si oui, comment? :-\


Merci d'avance pour vos réponse ;) :)
Titre: Re : Sprite sans bug et message bizar.?!
Posté par: G. le Avril 26, 2014, 06:47:25 pm
Une petite recherche sur ton message d'erreur + SFML indique apparemment que ta carte graphique c'est de la merde ou que tes drivers ne sont pas à jour.
Titre: Re : Sprite sans bug et message bizar.?!
Posté par: spyker18 le Avril 26, 2014, 07:20:04 pm
Citer
Une petite recherche sur ton message d'erreur + SFML indique apparemment que ta carte graphique c'est de la merde ou que tes drivers ne sont pas à jour.

Qu' entend tu par "divers" et comment les télécharger ?

(Le problème ne vient pas de ma carte graphics..)
Titre: Re : Sprite sans bug et message bizar.?!
Posté par: Develog le Avril 26, 2014, 08:49:16 pm
Alors pour les drivers soit tu vas sur le site de nvidia ou amd en fonction de ta carte ou alors tu fais un diagnostic sur www.touslesdrivers.com et là il te sera proposé l'ensemble des drivers qui sont à mettre à jour ;)
Titre: Re : Sprite sans bug et message bizar.?!
Posté par: spyker18 le Avril 27, 2014, 01:17:03 pm
Ok merci je vais tester ça :)
Titre: Re : Sprite sans bug et message bizar.?!
Posté par: spyker18 le Avril 27, 2014, 01:36:25 pm
ça marche, mais il me propose aucune mise a jour :)

donc je supose que tous est a jour? ???
Titre: Re : Sprite sans bug et message bizar.?!
Posté par: spyker18 le Avril 27, 2014, 02:47:37 pm
Re, maintenant, j'ai un autre problème, j'ai ajouter une deuxième image a mon code mais celle ci(qui est dans le même dossier avec le même format) remet un autre message erreur... :o

Un bout Du code :

Citer
#include <SFML/Graphics.hpp>
#include <iostream>
#include <string>
#include <cstdlib>
#include "Shape.h"


sf::RenderWindow window;

sf::Texture perso;
sf::Sprite sprite_perso;

sf::Texture image;
sf::Sprite sprite_image;


int main()

{

    window.create(sf::VideoMode(800, 600), "Test SFML");
    window.setPosition(sf::Vector2i(192, 0));


    std::cout << "Lancement du Test" << std::endl;




    if (!perso.loadFromFile("resources/image.png"))
    {
        std::cout << "ERREUR : chargement de image.png" << std::endl;
    }

    if (!image.loadFromFile("resources/image2.png"))
    {
        std::cout << "ERREUR : chargement de image2.png" << std::endl;
    }


    sprite_perso.setTexture(perso);
    sprite_perso.setPosition(400, 400);

    sprite_image.setTexture(image);
    sprite_image.setPosition(10, 10);


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

             window.close();

        }

        //ont dessine et on affiche..;
        window.draw(sprite_perso);
        window.draw(sprite_image);
        window.display();
        window.clear();
    }

    return 0;
}

Mes erreurs :

Citer
An internal OpenGL call failed in Texture.cpp (146) : GL_INVALID_ENUM, an unacce
ptable value has been specified for an enumerated argument
An internal OpenGL call failed in Texture.cpp (147) : GL_INVALID_ENUM, an unacce
ptable value has been specified for an enumerated argument
Failed to load image "resources/image2.png". Reason : Unable to open file

ERREUR : chargement de image2.png

Le premier bug viendrai d'un "divers" non a jour ou de ma carte graphique qui serait de la merde..

Mais Le deuxième ?, pourquoi la première bugerai  pas alors ? >:( ???

comment résoudre ses problème svp  :-\
 
Titre: Re : Sprite sans bug et message bizar.?!
Posté par: Develog le Avril 27, 2014, 02:53:32 pm
D'après la deuxième erreur il ne trouve pas ou n'arrive pas à charger ta texture. Vérifie que ce soit le bon chemin et le bon nom ;)
Et tu as quoi comme carte graphique ?
Titre: Re : Sprite sans bug et message bizar.?!
Posté par: spyker18 le Avril 27, 2014, 02:58:58 pm
Salut mais comment je fait pour s'avoir le nom de ma carte graphique ? ;D
Titre: Re : Sprite sans bug et message bizar.?!
Posté par: spyker18 le Avril 27, 2014, 03:08:30 pm
Salut j'ai changer une partie de mon code :

Citer
    if (!perso.loadFromFile("resources/image.png"))
    {
        std::cout << "ERREUR : chargement de image.png" << std::endl;
    }

    if (!image.loadFromFile("resources/image2.png"))
    {
        std::cout << "ERREUR : chargement de image2.png" << std::endl;
    }


    sprite_perso.setTexture(perso);
    sprite_perso.setPosition(600, 600);

    sprite_image.setTexture(image);
    sprite_perso.setPosition(10, 10);
et j'ai aussi changer l'image, cette fois ça marche :o Les deux images ont été chargées ???

Mais pourquoi et comment >:(

(l'ancienne image que j'avais était examples\win32\resources\image2.png)

Est elle trop grande pour "Passer" ? ???


A, et le "setPosition" n'a pas marcher les deux images sont collées, pourquoi?
Titre: Re : Sprite sans bug et message bizar.?!
Posté par: G. le Avril 27, 2014, 03:25:07 pm
J'ai pas écrit divers j'ai écrit dRivers. Et si le problème ne vient pas de là je ne sais pas, j'ai juste googlé ton erreur + SFML et suis tombé sur 2 posts où Laurent indiquait que le prob venait de la CG ou de ses drivers.

Et relis toi, si le setPosition ne "marche pas" bah tu regardes les 2 lignes concernées et tu remarqueras que tu fais le setPosition 2 fois sur le même sprite.

Ça te dit quoi ce code (après avoir créé la fenêtre bien sûr) ?
sf::ContextSettings settings = window.getSettings();
std::cout << "version:" << settings.majorVersion << "." << settings.minorVersion << std::endl;
Sinon évite d'avoir des RenderWindow ou des Textures globales, ça peut poser problème. En plus t'en as pas besoin là.
Titre: Re : Sprite sans bug et message bizar.?!
Posté par: spyker18 le Avril 27, 2014, 03:50:48 pm
Salut oui Là c'est sur les deux images marche  :D

Citer
Ça te dit quoi ce code (après avoir créé la fenêtre bien sûr) ?

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

ça me met :
Citer
version:1.1

Citer
Sinon évite d'avoir des RenderWindow ou des Textures globales, ça peut poser problème. En plus t'en as pas besoin là.

Vuc je vien de commencer je fait comme les tuto,
Pour "renderWindow" je devrai mettre "Window"?

Et comment ça "Des texture globales.." ???

Mais pourquoi la première image "image2.png" affichait un message erreur, pk? :o :-\ ???
Titre: Re : Sprite sans bug et message bizar.?!
Posté par: spyker18 le Avril 27, 2014, 04:28:17 pm
Maintenant, quand j'ouvre mon "programme.exe"
sans code::blocks
l'erreur suivante s'affiche :

Citer
Failed to load image "resources/image1.png". Reason : Unable to open file
ERREUR : chargement de image1.png

Cela veut donc dire que si je passe un petit programme a un ami
il ne pourra pas lire les images dans le programe.. :-\

Comment supprimer cet erreur  ???


Pk avec code::block aucune erreur(Sans compter celle avec le msg erreur "406 & 407") et sans, celle la ??? :(
Titre: Re : Sprite sans bug et message bizar.?!
Posté par: G. le Avril 27, 2014, 05:06:51 pm
Citer
Vuc je vien de commencer je fait comme les tuto,
Pour "renderWindow" je devrai mettre "Window"?
Nonon une RenderWindow c'est bien. (ça permet de dessiner des sprites par exemple :D) Je voulais dire qu'il vallait mieux ne pas utiliser de RenderWindow globale, ni de Texture globale, car ça peut poser des problèmes d'initialisation.
Si tu ne sais pas ce qu'est une variable globale (http://fr.wikipedia.org/wiki/Variable_globale) je pense que t'as encore des trucs à apprendre avant de te lancer dans de la programmation graphique. :p
Et ton "tuto" c'est quoi ? Les officiels (http://www.sfml-dev.org/tutorials/2.1/index-fr.php) ?
Citer
ça me met :
Citer
version:1.1
D'après Laurent, le développeur de la SFML :
SFML is not supposed to work in version 1.1 of OpenGL, it uses some 1.2 and 1.4 features.
D'où tes problèmes. Donc ouai ta carte graphique est pas terrible ou alors ses dRivers ne sont pas à jour. Un driver, c'est en gros un programme qui fait fonctionner un composant de ton PC. Pour la carte graphique on peut les télécharger sur le site du constructeur. Je ne sais plus trop comment faire pour savoir quelle est la CG sur l'ordinateur mais j'imagine qu'une petite recherche google suffira à trouver comment faire. ;)
Citer
Mais pourquoi la première image "image2.png" affichait un message erreur, pk? :o :-\ ???
Pas au bon endroit ptetre. Ou l'image a un problème. Ou peut-être qu'avec ton problème de carte graphique il peut se passer des choses bizarres.
Citer
Cela veut donc dire que si je passe un petit programme a un ami
il ne pourra pas lire les images dans le programe.. :-\
Si bien sûr.
Si tu charges tes images avec un chemin relatif, c'est le chemin depuis le "working directory". Quand tu exécutes ton programme depuis C::B ce répertoire correspond au répertoire du projet. (de base en tous cas, je ne sais pas s'il est possible de changer ça) Quand tu exécutes ton programme en double-cliquant sur ton .exe, le working directory est le répertoire où se trouve l'exécutable.
Donc en gros si tu veux que ça fonctionne il faut que ton programme puisse trouver resources/image.png depuis cet endroit. Donc dans ton cas, faut mettre l'exécutable et le répertoire resources dans le même répertoire au même niveau.
Titre: Re : Sprite sans bug et message bizar.?!
Posté par: spyker18 le Avril 27, 2014, 05:47:39 pm
Salut Merci pour ses réponses.. :)

Citer
Et ton "tuto" c'est quoi ? Les officiels ?

Je vags entre les tutos, mais si tu a un bon tuto a me conseiller avec plais :D

pour ma carte graphique, je vais chercher si il y a des mise a jours.. :-\ (j'en reparlerai..)

Citer
Ou l'image a un problème
Je l'avais prise d'un exemple dans "sfml" donc je pense pas qu'elle a un problème ;D


Je vais voir pour ma version, et essayer de faire les mises a jours...



Admetons que tous est a jour ? ça fait de mon "script" et "futur petit jeux" Des nis a bug? :-[ :'( ???

Titre: Re : Re : Sprite sans bug et message bizar.?!
Posté par: G. le Avril 27, 2014, 05:52:37 pm
Admetons que tous est a jour ? ça fait de mon "script" et "futur petit jeux" Des nis a bug? :-[ :'( ???
Je ne sais pas mais ça n'augure rien de bon. ^^

Pour les tutos, les officiels sont bons. Et au moins t'es sûr qu'ils ont été écrits par quelqu'un de bon et qui connait bien la SFML et qu'ils ont été relus par de nombreuses personnes expérimentées.
Titre: Re : Sprite sans bug et message bizar.?!
Posté par: spyker18 le Avril 28, 2014, 05:01:35 pm
Citer
Pour les tutos, les officiels sont bons. Et au moins t'es sûr qu'ils ont été écrits par quelqu'un de bon et qui connait bien la SFML et qu'ils ont été relus par de nombreuses personnes expérimentées.

Oui tu a raison je vais regarder les tutos de la SFML ;D

Pour ma carte graphique, est t'il possible de "faire une mise a jour" et de passe en 1.2 ? ???