Bonsoir !

Le problème:
Reussir à afficher de facon dynamique plusieurs ecrans differents en utilisant une classe pour chaque ecran.
note: Etant donné que l'erreur ne viens pas de la bibliotheque que j'utilise (SFML), cela est un probleme de conception !

Approche: heritage
Chaque classe ecran herite d'une classe mere purement virtuelle:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
class Screen
{
    public :
        Screen() {};
        ~Screen() {};
        virtual int Run (sf::RenderWindow& App) =0;
 
        Perennials* m_perennials;
        ClientSocket* m_tcpsocket;
        ClientSocket* m_udpsocket;
};
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class SplashScreen: public Screen
{
    public:
        SplashScreen(Perennials* wd, ClientSocket* tcps)
        {
            m_perennials = wd;
            m_tcpsocket = tcps;
        }
        ~SplashScreen() {}
        int Run (sf::RenderWindow& App);
 
        static const int ID = 1;
 
    private:
        // Common structure
        //sfg::SFGUI m_sfgui;
        //sfg::Desktop desktop;
        sf::Event event;
        sf::Clock clock;
};
Donc dans Run(), il se passe des choses... et a un moment je vais retourner un int, qui est censé nous amener a un autre ecran !
Donc, voici le main:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
        // std::vector<Screen> Screens; et on y ajoute nos ecrans.
    int iscreen = 0, temp;
    while(iscreen >= 0)
    {
        // On lance l'affichage
        temp = Screens[iscreen]->Run(App);
        // On vient de sortir de la boucle de Screen::Run()
        // Si temp est different, on met a jour les variables
        if(temp != iscreen)
        {
            delete Screens[iscreen];
            App.clear();
            iscreen = temp;
        }
    }
Le probleme de cette approche: ecran noir.
Si je fais simplement un SplashScreen ss(...); ss.Run(App); l'écran marche parfaitement.
Donc... un gros soucis ...

Avant que les modos vire mon sujet dans 2D>SFML: Laurent Gomila pense que c'est bien un probleme de conception... !

merci d'avance, nico