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

Auteur Sujet: [SFML-2.1][Windows-VBox] Le carre blanc !  (Lu 1929 fois)

0 Membres et 1 Invité sur ce sujet

Rel4x

  • Newbie
  • *
  • Messages: 2
    • Voir le profil
[SFML-2.1][Windows-VBox] Le carre blanc !
« le: Septembre 08, 2013, 02:03:02 pm »
Bonjour a tous,

je decouvre SFML 2.1 et essaie donc de l'installer sur un window 7. Je precise que je suis sous VirtualBox, l'OS natif etant un Debian ... C'est important de le dire car apres avoir passe la journee d'hier a essayer de compiler et d'enlever tout un tas d'erreurs j'arrive enfin a compiler, meme si une erreur subsite : "DrvShareLists unsuported"

Cependant ce n'est pas le problème (enfin il semblerait). J'arrive a compiler et a lancer ma fenêtre, mais, alors que je code pourtant un truc de base, le code ne semble pas fonctionner.

Et du coup je ne sais pas dire si c'est une erreur toute bête de ma pars, qui découvre les nouvelles classes de la 2.1 comme sf::Texture, ou si mon souci viens encore du fait que je sois en VM et que SFML ne semble pas apprécier des masses (ni OpenGL qui me fait plein d erreurs).

Bref, voici ce code qui, selon moi, devrait afficher un petit carre rouge sur fond vert, mais affiche un petit carre blanc sur fond vert ^^ ...

Je n'ai peut plus les yeux en face des trous, merci d'y jeter un coup d’œil !

#include                <iostream>
#include                "SFML\Window.hpp"
#include                "SFML\Graphics.hpp"
#include                "SFML\System.hpp"

#define                 WIN_WIDTH       600
#define                 WIN_HEIGHT      600

int                             main()
{
        sf::RenderWindow*       win;
        sf::Sprite                      sprite;
        sf::Texture                     texture;
        sf::Image                       image;

        image.create(10, 10);
        for (int i = 0; i < 10; ++i)
        {
                for (int j = 0; j < 10; ++j)
                {
                        image.setPixel(j, i, sf::Color::Red);
                }
        }
        texture.create(10, 10);
        texture.update(image);
        sprite.setTexture(texture);

        win = new sf::RenderWindow(sf::VideoMode(WIN_WIDTH, WIN_HEIGHT, 32), "TEST");
        while (win->isOpen())
        {
                sf::Event event;
                while (win->pollEvent(event))
        {
            if (event.type == sf::Event::Closed)
                win->close();
        }
                win->clear(sf::Color::Green);
                win->draw(sprite);
                win->display();
        }
        return (0);
}

 

D'avance merci :)

Cdlt,

Rel4x

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : [SFML-2.1][Windows-VBox] Le carre blanc !
« Réponse #1 le: Septembre 08, 2013, 02:07:46 pm »
Avec ça :
Citer
DrvShareLists unsuported

... malheureusement tu vas être un peu limité. Pour ton code ça devrait cependant être simple à corriger : crée ta fenêtre avant la texture.

Essaye de mettre à jour tes drivers, sinon tu vas galérer.
Laurent Gomila - SFML developer

Rel4x

  • Newbie
  • *
  • Messages: 2
    • Voir le profil
Re : [SFML-2.1][Windows-VBox] Le carre blanc !
« Réponse #2 le: Septembre 08, 2013, 02:15:13 pm »
Wahou, rapide comme l'eclair sur ce forum ... C'est tres plaisant, ca donne envie de venir s'y investir !

Sinon pour l'ordre des creations je ne pensais pas que ca pouvait jouer ... Je ne pensais pas que ces objets avaient un lien ... Il se situe a quel niveau s'il plait ? En tous cas ca marche, merci ...

Pour l'erreur des drvsharelists, si c'est un probleme de drivers ca m'arrangerait, mais j'ai lu a plusieurs endroits que c'etait des problemes du fait d'etre sur vbox.

Merci bien en tous cas,

Cdlt,

Rel4x

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : [SFML-2.1][Windows-VBox] Le carre blanc !
« Réponse #3 le: Septembre 08, 2013, 03:38:33 pm »
Tant que la fenêtre n'est pas créée, son contexte OpenGL n'existe pas non plus. Donc lorsque tu charges quelque chose avant de créer une fenêtre, SFML crée un contexte OpenGL "bidon" juste pour ça. Pour que ta ressource soit ensuite utilisable avec le contexte OpenGL de la fenêtre, elle active le partage de contextes. Or vu le message d'erreur que tu as, le partage ne fonctionne pas (problème de driver et/ou de VM), donc il faut que tu charges ta ressource directement avec le contexte OpenGL de la fenêtre pour que ça fonctionne.
Laurent Gomila - SFML developer