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

Auteur Sujet: Crash à la création d'une fenêtre dans une autre fenêtre.  (Lu 3229 fois)

0 Membres et 1 Invité sur ce sujet

lo7601

  • Invité
Crash à la création d'une fenêtre dans une autre fenêtre.
« le: Janvier 02, 2019, 03:29:36 am »
Salut lorsque j'essaie de créer une "Renderwindow" dans une autre "Renderwindow" SFML Debug me renvoie ce message d'erreur : static sf::priv::GlContext* sf::priv::GlContext::create(const sf::ContextSettings&, const sf::priv::WindowImpl*, unsigned int) : Assertion sharedContext != __null' failed.

Je suis sous ubuntu 14.04 et j'utilise SFML 2.4.1.

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re: Crash à la création d'une fenêtre dans une autre fenêtre.
« Réponse #1 le: Janvier 02, 2019, 08:22:22 am »
Salut

1. Clarifie ta description du problème. Créer "une RenderWindow dans une RenderWindow", en terme de code, ça ne veut pas dire grand chose ; sois précis et exact dans tes formulations. Si possible, donne un code complet et minimal qui reproduit le problème.

2. Utilise un debugger pour avoir plus de détails : pile d'appels, ligne de code exacte du crash, etc.

3. Essaye toujours la toute dernière version de SFML avant de bloquer sur un problème :)
Laurent Gomila - SFML developer

lo7601

  • Invité
Re: Crash à la création d'une fenêtre dans une autre fenêtre.
« Réponse #2 le: Janvier 02, 2019, 04:03:33 pm »
Salut!
J'ai essayé de faire un code, le plus minimal possible mais pas facile quand on est sur un gros projet.

#include "application.h"
using namespace odfaeg::core;
using namespace odfaeg::graphic;
using namespace odfaeg::physic;
using namespace odfaeg::math;
using namespace odfaeg::network;
namespace sorrok {
 MyAppli::MyAppli(sf::VideoMode wm, std::string title) : Application (wm, title, sf::Style::Default, sf::ContextSettings(0, 0, 4, 3, 0)) {
}
void MyAppli::onLoad() {
        TextureManager<> tm;
        tm.fromFileWithAlias("tilesets/herbe.png", "GRASS");
        tm.fromFileWithAlias("tilesets/murs.png", "WALLS");
        tm.fromFileWithAlias("tilesets/maison.png", "HOUSE");
        tm.fromFileWithAlias("tilesets/flemmes1.png", "FIRE1");
        tm.fromFileWithAlias("tilesets/flemmes2.png", "FIRE2");
        tm.fromFileWithAlias("tilesets/flemmes3.png", "FIRE3");
        FontManager<Fonts> fm;
        fm.fromFileWithAlias("fonts/FreeSerif.ttf", Serif);
        cache.addResourceManager(fm, "FontManager");
        cache.addResourceManager(tm, "TextureManager");
        //shader.loadFromFile("Shaders/SimpleVertexShader.vertexshader", "Shaders/SimpleFragmentShader.fragmentshader");
    }
void MyAppli::onInit () {      
        TextureManager<> &tm = cache.resourceManager<Texture, std::string>("TextureManager");
        Vec2f pos (getView().getPosition().x - getView().getSize().x * 0.5f, getView().getPosition().y - getView().getSize().y * 0.5f);
        BoundingBox bx (pos.x, pos.y, 0, getView().getSize().x, getView().getSize().y, 0);
        theMap = new Map(&getRenderComponentManager(), "Map test", 100, 50);
        BaseChangementMatrix bcm;
        bcm.set2DIsoMatrix();
        theMap->setBaseChangementMatrix(bcm);
        World::addEntityManager(theMap);
        World::setCurrentEntityManager("Map test");
        eu = new EntitiesUpdater();
        World::addWorker(eu);      
        tiles.push_back(new Tile(tm.getResourceByAlias("GRASS"), Vec3f(0, 0, 0), Vec3f(120, 60, 0),sf::IntRect(0, 0, 100, 50)));
        BoundingBox mapZone(0, 0, 0, 1500, 1000, 0);
        World::generate_map(tiles, walls,Vec2f(100, 50),mapZone,false);
        ZSortingRenderComponent *frc1 = new ZSortingRenderComponent(getRenderWindow(),0, "E_BIGTILE");
        View view = getView();
        frc1->setView(view);
        getRenderComponentManager().addComponent(frc1);
        World::update();
         wResuHero = new RenderWindow (sf::VideoMode(400, 300), "Create ODFAEG Application", sf::Style::Titlebar, sf::ContextSettings(24, 0, 4, 3, 0));
        View wView = wResuHero->getDefaultView();
        wView.setCenter(Vec3f(wResuHero->getSize().x * 0.5f, wResuHero->getSize().y * 0.5f, 0));
        wResuHero->setView(wView);
 

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re: Crash à la création d'une fenêtre dans une autre fenêtre.
« Réponse #3 le: Janvier 02, 2019, 04:19:06 pm »
Là je ne vois qu'une création de RenderWindow. Mais surtout, je vois plein de code non-SFML ; qu'est-ce qu'on est censés faire de tout ça ? On n'a aucune idée de ce qu'il se passe dans ce code...

Si tu utilises une surcouche (un moteur de jeu ou autre) alors :
- si ton problème est lié à la surcouche, vois de ce côté-là -- soit c'est toi qui l'a créée et on ne pourra pas grand chose pour t'aider à debugger, soit c'est quelqu'un d'autre et dans ce cas contacte-le directement
- si ton problème n'est pas lié à la surcouche, alors crée, en partant de zéro, un code qui reproduit le problème et qui n'utilise que SFML ; cela te permettra de beaucoup mieux isoler la cause du problème et d'avoir une aide beaucoup plus efficace
Laurent Gomila - SFML developer

G.

  • Hero Member
  • *****
  • Messages: 1590
    • Voir le profil
Re: Crash à la création d'une fenêtre dans une autre fenêtre.
« Réponse #4 le: Janvier 02, 2019, 04:37:32 pm »
Le retour de Lolilolight ! Ça n'a pas beaucoup changé.  ;D

lo7601

  • Invité
Re: Crash à la création d'une fenêtre dans une autre fenêtre.
« Réponse #5 le: Janvier 02, 2019, 06:53:42 pm »
Oups j'ai pas voulu poster ce code.

Mais j'ai mis du code en commentaire et après je l'ai décommenté et ça remarche.

C'est bizarre et j'ai des pointeurs qui changent de valeur toutes seule à l'exécution ....

G. = Guillaume Merlini ?

G.

  • Hero Member
  • *****
  • Messages: 1590
    • Voir le profil
Re: Crash à la création d'une fenêtre dans une autre fenêtre.
« Réponse #6 le: Janvier 02, 2019, 08:24:09 pm »
No.

lo7601

  • Invité
Re: Crash à la création d'une fenêtre dans une autre fenêtre.
« Réponse #7 le: Janvier 02, 2019, 10:52:55 pm »
Ha je pensais parce que tu m'avais dis un jour que mon projet n'avais pas beaucoup avancé depuis que je l'avais présenté sur le site du zéro et au départ j'avais commencé le projet avec Guillaume Merlini mais comme celui-ci m'a quitté je continue le projet tout seul. (donc du coup oui je n'avance pas très vite et je suis actuellement bloqué sur quelques petit bugs)
Bref je vais devoir faire des tests pour voir pourquoi certains de mes pointeurs changent de valeur tout seul.