Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: Crash sf::RenderWindow.draw(sf::text)  (Lu 3496 fois)

0 Membres et 1 Invité sur ce sujet

romnair

  • Newbie
  • *
  • Messages: 4
    • Voir le profil
Crash sf::RenderWindow.draw(sf::text)
« le: Février 04, 2019, 09:18:20 am »
Mes salutations, je viens vers vous car après plusieurs recherche je n'arrive pas à résoudre le problème suivant :
- Affiché un sf::text link à un sf::font par setFont fait crash le programme.

J'était sous Code::Block avec le compilateur link pour le 32bits le tdm = crash.
Recompilé avec le même compilateur = crash.
J'ai download visual studio 2015 community sur le site de microsoft = Exception(crash/ou bug)

cF : J'ai téléchargé le bon type à chaque fois.

Exception levée à 0x1002DB43 (ig4icd32.dll) dans SFML.exe : 0xC0000005 : Violation d'accès lors de l'écriture à l'emplacement 0x00340041.

S'
il existe un gestionnaire pour cette exception, le programme peut continuer en toute sécurité.
 

Sur codeblock le débug renvoie la même chose sauf que le programme crash impossible d'ignoré l'exception.
Sur VS j'ai réussi à ignoré et donc à récup le retour console :

Cannot copy texture, failed to link texture to frame buffer

Et voici le code minimal.
Crash sur le draw car comme précisé sur le retour console accès impossible, sauf que bon je comprend pas pourquoi.

#include <SFML/Graphics.hpp>

int main(void)
{
        sf::RenderWindow m_Window(sf::VideoMode(480, 480), "Test");
        sf::Font m_Font;
        if (m_Font.loadFromFile("Assets/font.ttf") == false)
        {
                return -1;
        }

        sf::Text m_Text;
        m_Text.setFont(m_Font);
        m_Text.setString("Test");
        m_Text.setPosition(0, 0);
        m_Text.setFillColor(sf::Color::White);

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

                m_Window.clear();
                m_Window.draw(m_Text);
                m_Window.display();
        }

        return 0;
}

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re: Crash sf::RenderWindow.draw(sf::text)
« Réponse #1 le: Février 04, 2019, 11:08:00 am »
Quelle version de SFML utilises-tu ?
Laurent Gomila - SFML developer

romnair

  • Newbie
  • *
  • Messages: 4
    • Voir le profil
Re: Crash sf::RenderWindow.draw(sf::text)
« Réponse #2 le: Février 04, 2019, 12:01:20 pm »
Re,

- Visual C++ 14 (2015) - 32-bit Télécharger18.0 Mo (https://www.sfml-dev.org/download/sfml/2.5.1/index-fr.php)
- Je suis sur Visual Studio Community 2015 avec updata 3(depuis le site de microsoft) x86
- SFML 2.5.1
   
EDIT : J'ai testé, juste pour voir si j'avais foiré, le même programme sans sf::text et sf::font :
- Marche.
Avec la présence de sf::texture et sf::sprite, sans sf::text et sf::font :
- Marche
Avec la présence de sf::SoundBuffer et sf::Sprite, sans sf::text et sf::font :
- Marche
Avec la présence de sf::Music, sans sf::text et sf::font :
- Marche

Conclusion dans mon cas sur base des différents retours(SFML et VS/CB) lors de l'appel de draw une texture est manquante dans mon sf::Text si j'ai bien comprit.
« Modifié: Février 04, 2019, 12:23:34 pm par romnair »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re: Crash sf::RenderWindow.draw(sf::text)
« Réponse #3 le: Février 04, 2019, 12:36:31 pm »
C'est un souci avec ton driver graphique, mais je ne peux pas t'en dire plus. Il faudrait que tu postes ton problème sur le forum anglais, il y a des gens qui pourront t'en dire plus ; ici la fréquentation est assez faible ;)
Laurent Gomila - SFML developer

romnair

  • Newbie
  • *
  • Messages: 4
    • Voir le profil
Re: Crash sf::RenderWindow.draw(sf::text)
« Réponse #4 le: Février 04, 2019, 02:54:59 pm »
Merci, je vois.
J'ai fais quelque recherche, et try quelque truc, up le driver aussi.
Je pense que votre piste et la bonne, j'ai delete la dll(ig4icd32.dll) en ayant pris soin de récup un pilote pour reset au cas ou, et le résultat est que le programme "fonctionne"(dans le sens ou bah "Violation pas l'accès lors de l'écriture" vu que la dll est plus la) et du coup la console me lâche :

Warning: Detected "Microsoft Corporation GDI Generic" OpenGL implementation
The current OpenGL inplementation is not hardware-accelerated
Setting vertical sinc not supported
OpengGL extension SGIS_texture_edge_clamp unavailable
Artifacts may occur along texture edges
Ensure that hardware acceleration is enable if avaible

Avec toutes les informations gratté je me demande si mon pc gère la version OpenGL Utilisé intégralement.
Si le problème vient de là bah c'est la vie XD.

Merci pour votre temps encore, et bonne continuation.
CF : Notons que le programme marche nickel sans la .dll, mais bon je préfère gardé les choses clean en plus la sortie console semblent me montré que j'ai break des fonctionnalités de base.

romnair

  • Newbie
  • *
  • Messages: 4
    • Voir le profil
Re: Crash sf::RenderWindow.draw(sf::text)
« Réponse #5 le: Avril 30, 2019, 10:09:23 am »
Je m'excuse pour le double post, mais une solution à était trouvé(Houra et honte à moi).

Globalement mon pilote de carte graphique était à jour selon intel sauf que le pilote n'était pas le bon bien qu'étant le dernier en date.
J'ai donc téléchargé une version sur le site du constructeur du laptop est le driver donné marche niquel.

"Carte graphique" : Mobile Intel(R) 4 Series Express Chipset Family

mon laptop est un compaq presario cq61, après quelque recherche je tombe sur une cq61 avec la même carte graphique(car je crois qu'il me manqué un morceau de la référence) et c'est le driver que j'ai down : https://support.hp.com/us-en/drivers/selfservice/Compaq-Presario-CQ61-Notebook-PC-series/3938633/model/4043479