Bienvenue, Invité. Merci de vous connecter ou de vous inscrire. Avez-vous oublié d'activer ?

Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.


Sujets - Daymo

Pages: [1]
1
Fenêtrage / [Résolu][OpenGL] Ecran noir (Premier Triangle)
« le: Octobre 08, 2012, 10:02:12 pm »
Est ce normal que mon seul affichage soit une fenêtre noire avec ce code ? (Pas de triangle blanc ?) ^^

#include <iostream>


#ifdef WIN32
    #include <GL/glew.h>
#else
    #define GL3_PROTOTYPES 1
    #include <GL3/gl3.h>
#endif


#include <SFML_2.0/Window.hpp>
#include <SFML_2.0/OpenGL.hpp>


int main()
{
    // crée la fenêtre
    sf::Window MainWindow(sf::VideoMode(800, 600), "OpenGL", sf::Style::Default, sf::ContextSettings(24, 0, 0, 3, 1));
    MainWindow.setVerticalSyncEnabled(true);


    #ifdef WIN32


    GLenum InitialisationGLEW(glewInit());
    if(InitialisationGLEW != GLEW_OK)
    {
        // On affiche l'erreur grâce à la fonction : glewGetErrorString(GLenum code)
        std::cout << "Erreur d'initialisation de GLEW : " << glewGetErrorString(InitialisationGLEW) << std::endl;
        exit(-1);
    }


    #endif


    int vertices[] = {-0.5, -0.5,   0.0, 0.5,   0.5, -0.5};


    // la boucle principale
    while(MainWindow.isOpen())
    {
        // gestion des évènements
        sf::Event event;
        while (MainWindow.pollEvent(event))
        {
            if (event.type == sf::Event::Closed)
            {
                // on stoppe le programme
                MainWindow.close();
            }
        }


        glClear(GL_COLOR_BUFFER_BIT);


        glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, 0, vertices);
        glEnableVertexAttribArray(0);


        glDrawArrays(GL_TRIANGLES, 0, 3);


        glDisableVertexAttribArray(0);


        MainWindow.display();
    }


    return 0;
}


Toute aide est bien venue !

2
Général / Maps et fonctions constantes
« le: Avril 07, 2012, 12:14:02 pm »
Bonjour à tous !
Je tente actuellement de mettre en place un système de tile mapping, mais le "const" lors de la surcharge de la fonction "draw" me pose quelques problèmes, je m’explique :
J'ai créé une map qui fais correspondre chaque élément d'un tableau de pixel (une image) à un tile, et la surcharge de la fonction "draw" doit se charger d'afficher les tiles correspondants à chaque pixels, seulement, les fonctions constantes n'ont pas l'air d'aimer les maps, surtout que je suis obliger d'implémenter moi-même un objet se chargeant de classer les pixels dans la map, les objets "sf::Color" ne possédants pas leur propre opérateur "<" :
void TileMap::draw(sf::RenderTarget& target, sf::RenderStates states) const
{
    for(unsigned int x = 0; x < mPixelMap.getSize().x; x++)
        for(unsigned int y = 0; y < mPixelMap.getSize().y; y++) // Je parcours le tableau de pixel
        {
            std::map <sf::Color, sf::Sprite, Compare>::const_iterator Iterator = mPixelToTile.find(mPixelMap.getPixel(x, y)); // J'utilise un "const_iterator" et "find", l'opérateur [] n'étant apparement pas constant-correct
            target.draw(Iterator->second);
        }
}

Sauf qu'une erreur provient, je pense, de l'utilisation de "Compare" (désolé, c'est un peu long) :
Citation de: Build complet
-------------- Build: Debug in KirbySFML ---------------

Compiling: TileMap.cpp
In file included from c:\users\léo\desktop\programmation\librairies\mingw\bin\../lib/gcc/mingw32/4.5.2/include/c++/map:60:0,
                 from c:\users\léo\desktop\programmation\librairies\mingw\bin\../lib/gcc/mingw32/4.5.2/../../../../include/SFML/Graphics/Font.hpp:37,
                 from c:\users\léo\desktop\programmation\librairies\mingw\bin\../lib/gcc/mingw32/4.5.2/../../../../include/SFML/Graphics.hpp:35,
                 from C:\Users\léo\Desktop\Programmation\Projets\KirbySFML\/TileMap.h:4,
                 from C:\Users\léo\Desktop\Programmation\Projets\KirbySFML\TileMap.cpp:1:

c:\users\léo\desktop\programmation\librairies\mingw\bin\../lib/gcc/mingw32/4.5.2/include/c++/bits/stl_tree.h: In member function 'std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::find(const _Key&) const [with _Key = sf::Color, _Val = std::pair<const sf::Color, sf::Sprite>, _KeyOfValue = std::_Select1st<std::pair<const sf::Color, sf::Sprite> >, _Compare = Compare, _Alloc = std::allocator<std::pair<const sf::Color, sf::Sprite> >, std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator = std::_Rb_tree_const_iterator<std::pair<const sf::Color, sf::Sprite> >]':
c:\users\léo\desktop\programmation\librairies\mingw\bin\../lib/gcc/mingw32/4.5.2/include/c++/bits/stl_map.h:712:29:   instantiated from 'std::map<_Key, _Tp, _Compare, _Alloc>::const_iterator std::map<_Key, _Tp, _Compare, _Alloc>::find(const key_type&) const [with _Key = sf::Color, _Tp = sf::Sprite, _Compare = Compare, _Alloc = std::allocator<std::pair<const sf::Color, sf::Sprite> >, std::map<_Key, _Tp, _Compare, _Alloc>::const_iterator = std::_Rb_tree_const_iterator<std::pair<const sf::Color, sf::Sprite> >, key_type = sf::Color]'
C:\Users\léo\Desktop\Programmation\Projets\KirbySFML\TileMap.cpp:26:124:   instantiated from here
c:\users\léo\desktop\programmation\librairies\mingw\bin\../lib/gcc/mingw32/4.5.2/include/c++/bits/stl_tree.h:1535:38: error: passing 'const Compare' as 'this' argument of 'bool Compare::operator()(const sf::Color&, const sf::Color&)' discards qualifiers

c:\users\léo\desktop\programmation\librairies\mingw\bin\../lib/gcc/mingw32/4.5.2/include/c++/bits/stl_tree.h: In member function 'std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_lower_bound(const std::_Rb_tree_node<_Val>*, const std::_Rb_tree_node<_Val>*, const _Key&) const [with _Key = sf::Color, _Val = std::pair<const sf::Color, sf::Sprite>, _KeyOfValue = std::_Select1st<std::pair<const sf::Color, sf::Sprite> >, _Compare = Compare, _Alloc = std::allocator<std::pair<const sf::Color, sf::Sprite> >, std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator = std::_Rb_tree_const_iterator<std::pair<const sf::Color, sf::Sprite> >, const std::_Rb_tree_node<_Val>* = const std::_Rb_tree_node<std::pair<const sf::Color, sf::Sprite> >*]':
c:\users\léo\desktop\programmation\librairies\mingw\bin\../lib/gcc/mingw32/4.5.2/include/c++/bits/stl_tree.h:1532:68:   instantiated from 'std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::find(const _Key&) const [with _Key = sf::Color, _Val = std::pair<const sf::Color, sf::Sprite>, _KeyOfValue = std::_Select1st<std::pair<const sf::Color, sf::Sprite> >, _Compare = Compare, _Alloc = std::allocator<std::pair<const sf::Color, sf::Sprite> >, std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator = std::_Rb_tree_const_iterator<std::pair<const sf::Color, sf::Sprite> >]'
c:\users\léo\desktop\programmation\librairies\mingw\bin\../lib/gcc/mingw32/4.5.2/include/c++/bits/stl_map.h:712:29:   instantiated from 'std::map<_Key, _Tp, _Compare, _Alloc>::const_iterator std::map<_Key, _Tp, _Compare, _Alloc>::find(const key_type&) const [with _Key = sf::Color, _Tp = sf::Sprite, _Compare = Compare, _Alloc = std::allocator<std::pair<const sf::Color, sf::Sprite> >, std::map<_Key, _Tp, _Compare, _Alloc>::const_iterator = std::_Rb_tree_const_iterator<std::pair<const sf::Color, sf::Sprite> >, key_type = sf::Color]'
C:\Users\léo\Desktop\Programmation\Projets\KirbySFML\TileMap.cpp:26:124:   instantiated from here
c:\users\léo\desktop\programmation\librairies\mingw\bin\../lib/gcc/mingw32/4.5.2/include/c++/bits/stl_tree.h:1020:2: error: passing 'const Compare' as 'this' argument of 'bool Compare::operator()(const sf::Color&, const sf::Color&)' discards qualifiers

Process terminated with status 1 (0 minutes, 1 seconds)
2 errors, 0 warnings

Y a t-il un moyen de contourner le "const" de la fonction "draw" ?
Je ne vois pas vraiment comment faire...  :-\

(EDIT : Est-il autorisé de traduire son post et d'en faire un doublon sur le forum anglais ?)

Pages: [1]
anything