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 - Raitosan

Pages: [1]
1
Général / [Résolu] Gestionnaire de texture et sprite blanc
« le: Avril 25, 2015, 10:32:25 am »
Salut à tous o/

Alors voici mon problème, j'ai fait un singleton pour gérer un gestionnaire de ressources, ici de texture, mais quand je récupère ma texture, mon sprite devient blanc...

Ce que je comprend pas, c'est que pourtant tout est bien stocker en mémoire, l'adresse renvoyée ne bouge pas, mais la texture est blanche... Pourtant ma texture n'est supprimée qu'à la fin du programme.

Voici mon singleton contenant le GraphicEngine qui contient les textures:
#ifndef RESSOURCESADMINISTRATOR_HPP
#define RESSOURCESADMINISTRATOR_HPP

#include <QApplication>
#include <QtWidgets>
#include <SFML/Graphics.hpp>
#include <iostream>
#include "includes/GraphicEngine.hpp"

class RessourcesAdministrator
{
    public:
        static RessourcesAdministrator* GetInstance();
        static void Kill();

        void SetGraphicEngine(GraphicEngine *graphicEngine);
        GraphicEngine* GetGraphicEngine() const;

    private:
        RessourcesAdministrator();
        ~RessourcesAdministrator();

        static RessourcesAdministrator *m_instance;
        GraphicEngine *m_graphicEngine;
};

#endif // RESSOURCESADMINISTRATOR_HPP

 
#include <sstream>
#include <string>
#include <iostream>
#include "includes/RessourcesAdministrator.hpp"

RessourcesAdministrator* RessourcesAdministrator::m_instance = RessourcesAdministrator::GetInstance();

RessourcesAdministrator::RessourcesAdministrator() : m_graphicEngine(new GraphicEngine())
{

}
RessourcesAdministrator::~RessourcesAdministrator()
{
    delete m_graphicEngine;
}
RessourcesAdministrator* RessourcesAdministrator::GetInstance()
{
    if (m_instance == nullptr)
      m_instance =  new RessourcesAdministrator;

    return m_instance;
}
void RessourcesAdministrator::Kill()
{
    if(m_instance != nullptr)
    {
      delete m_instance;
      m_instance = nullptr;
    }
}

void RessourcesAdministrator::SetGraphicEngine(GraphicEngine *graphicEngine)
{
    m_graphicEngine = graphicEngine;
}
GraphicEngine* RessourcesAdministrator::GetGraphicEngine() const
{
    return m_graphicEngine;
}
 

Voici maintenant la classe GraphicEngine:
#ifndef GRAPHICENGINE_HPP
#define GRAPHICENGINE_HPP

#include <iostream>
#include <SFML/Graphics.hpp>

class GraphicEngine
{
    public:
        GraphicEngine();
        ~GraphicEngine();

        bool LoadTilesetTexture(const std::string &path);
        sf::Texture* GetTilesetTexture(const unsigned int id); // On retourne la texture qui a pour id id

        void FreeTilesets(); // On libère la mémoire des textures Tileset
        void FreeAllTextures(); // On libère la mémoire de toutes les textures
    private:
        std::vector<sf::Texture*> m_tilesets; // Textures des tilesets
};

#endif // GRAPHICENGINE_HPP

 
#include "includes/GraphicEngine.hpp"
#include <QtWidgets>

using namespace std;

GraphicEngine::GraphicEngine()
{

}
GraphicEngine::~GraphicEngine()
{
    FreeAllTextures();
}

bool GraphicEngine::LoadTilesetTexture(const std::string &path)
{
    m_tilesets.push_back(new sf::Texture());
    cout << m_tilesets.size() << " / " << m_tilesets[0] << endl; // Teste pour connaitre l'adresse en mémoire de la texture
    if(m_tilesets.back()->loadFromFile(path))
        return true;
    else
    {
        delete m_tilesets.back();
        m_tilesets.pop_back(); // Le chargement de la texture a échouer, on supprime donc la dernière valeur du tableau que l'on vient de créer.
        return false;
    }
}
sf::Texture* GraphicEngine::GetTilesetTexture(const unsigned int id)
{
    cout << m_tilesets.size() << " / " << m_tilesets[0] << " / " << m_tilesets[id] << "(id)" << endl; // Teste pour connaitre l'adresse en mémoire de la texture

    if(id < m_tilesets.size())
        return m_tilesets[id];

    return nullptr;
}

/// ------------------------ ///
/// Libération de la mémoire ///
/// ------------------------ ///

void GraphicEngine::FreeTilesets()
{
    for(unsigned int i=0;i<m_tilesets.size();i++)
        if(m_tilesets[i] != nullptr)
            delete m_tilesets[i];
    m_tilesets.clear();
}
void GraphicEngine::FreeAllTextures()
{
    FreeTilesets();
}

/// ---------------------------------- ///
/// Fin de la libération de la mémoire ///
/// ---------------------------------- ///
 

Le retour des couts dans GraphicEngine renvoient bien:
1 / 0x15011840
1 / 0x15011840 / 0x15011840(id)

J'ai aussi fait un teste dans une classe qui récupère la texture pour l'affichée, et le GetTilesetTexture(0) renvois bien la bonne valeur...
Adresse memoire recuperer avec GetTilesetTexture(0): 0x15011840

Donc l'adresse en mémoire n'a pas l'air de bougée, ça signifie qu'on renvois bien la bonne texture..

Je fais comme ceci pour donner la texture à mon sprite:
mySprite.setTexture(*RessourcesAdministrator::GetInstance()->GetGraphicEngine()->GetTilesetTexture(0));

Quelqu'un a une idée? Car je sèche complètement pour le coup :/
Merci!

2
Fenêtrage / [Résolu] SFML, QT et redimensionnement de la fenêtre
« le: Avril 17, 2015, 06:45:14 pm »
Salut à tous!

Alors voilà mon problème j'utilise le code fournis par la sfml pour faire tourner un widget avec la SFML dans une interface QT. La seul différence, c'est que j'utilise QMainWindow pour créer ma fenêtre, et mon widget SFML est au centre de la fenêtre grâce à la fonction setCentralWidget();

Le problème, c'est que quand je redimensionne ma fenêtre, le widget SFML se redimensionne aussi, mais du coup, j'ai des soucis de vue. En effet, la position de la souris n'est plus correctement détectée(elle est décalée) et le widget a l'air plus petit que ce qu'il devrait :/ Au bout d'un moment, la souris n'est même plus détectée alors qu'on est toujours dans le widget.
J'ai donc essayer de remettre ma vue à la taille du widget comme ceci:

    setView(sf::View(sf::FloatRect(0, 0, frameSize().width(), frameSize().height())));

J'ai toujours le problème de taille, qui fait que la souris n'est pas correctement détectée, par contre j'ai un effet de dézoom et de déformation :/
Ce que j'aimerais, c'est que quand on change la taille de la fenêtre, le contenu du widget ne bouge pas d'un poil, mais que la zone qu'il affiche s'adapte simplement à la nouvelle taille du widget.

Je fais ça pour un éditeur de carte, l'élément central doit permettre d'afficher la carte et de la modifier. Il faut donc que cette zone ne change pas à cause d'un redimensionnement de la fenêtre :/

Merci d'avance à tous ceux qui pourront m'aider!!

Edit: En fait, la souris est bien détectée, j'ai fais quelques testes, et j'ai pu remarquer qu'en fait le problème vient du fait la zone du widget garde en permanence la même taille. En effet, quand je redimensionne la vue, si j'ai un effet de dézoom, c'est parceque la vue augmente sa taille, mais que l'affichage du widget lui reste à la même taille. Comme si la vue était plus grande que la zone affichée :/

Edit2: Problème résolu!
Pour résoudre le problème, j'ai créer un slot WidgetSizeChanged() dans mon widget SFML qui va modifier la vue en fonction de la nouvelle taille, comme ceci:
void SFMLMap::WidgetSizeChanged()
{
    m_view.setSize(frameSize().width(), frameSize().height());
    m_view.setCenter(sf::Vector2f((float)(frameSize().width()/2.f),(float)(frameSize().height())/2.f));
    setSize(sf::Vector2u(frameSize().width(), frameSize().height()));
    setView(m_view);
}
Ensuite, dans la classe de ma fenêtre(le widget QT qui créer la fenêtre du programme), j'ai créer un signal WindowSizeChanged() qui sera émis lors du redimensionnement de la fenêtre. Ce signal est émis grâce à cette fonction:
void Window::resizeEvent ( QResizeEvent * event )
{
    emit WindowSizeChanged();
}

J'ai ensuite connecter mon slot avec mon signal comme ceci:
QObject::connect(this,SIGNAL(WindowSizeChanged()),sfml_map,SLOT(WidgetSizeChanged()));

Et voilà, grâce à ça, on peux modifier la taille de la fenêtre sans se soucier du reste :)

3
Général / [Résolu] SFML 2.2 erreurs
« le: Avril 13, 2015, 07:40:09 pm »
Bonjour,
J'ai installer la SFML 2.2 sous windows 8.1 x64 (j'ai pris la version 32bits), je compile à l'aide de QT Creator car j'ai prévu de faire une application QT/SFML, mais à la compilation j'ai ce genre d'erreur:

19:29:53: Configuration inchangée, étape qmake sautée.
19:29:53: Débute : "C:\Qt\Tools\mingw491_32\bin\mingw32-make.exe"
C:/Qt/Tools/mingw491_32/bin/mingw32-make -f Makefile.Debug
mingw32-make[1]: Entering directory 'C:/Users/Vincent/Documents/QT/build-POS_Editor-Desktop_Qt_5_4_1_MinGW_32bit-Debug'
g++ -c -pipe -fno-keep-inline-dllexport -g -frtti -Wall -Wextra -fexceptions -mthreads -DUNICODE -DSFML_STATIC -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I"..\POS_Editor" -I"." -I"C:\SFML\include" -I"C:\Qt\5.4\mingw491_32\include" -I"C:\Qt\5.4\mingw491_32\include\QtWidgets" -I"C:\Qt\5.4\mingw491_32\include\QtGui" -I"C:\Qt\5.4\mingw491_32\include\QtCore" -I"debug" -I"C:\Qt\5.4\mingw491_32\mkspecs\win32-g++"  -o debug\QSFMLCanvas.o ..\POS_Editor\src\QSFMLCanvas.cpp
g++ -Wl,-subsystem,windows -mthreads -o debug\POS_Editor.exe debug/main.o debug/Window.o debug/QSFMLCanvas.o debug/SFMLMap.o  -lglu32 -lopengl32 -lgdi32 -luser32 -lmingw32 -LC:/Qt/5.4/mingw491_32/lib -lqtmaind -LC:\mingw491\mingw32\lib -LC:\Utils\icu32_53_1_mingw482\lib -LC:\utils\postgresql\pgsql\lib -LC:\utils\mysql\mysql\lib -LC:\opensll\lib -lshell32 -LC:\Qt\5.4\mingw491_32/lib -LC:/SFML/lib -lsfml-audio-s-d -lsfml-graphics-s-d -lsfml-network-s-d -lsfml-system-s-d -lsfml-window-s-d -lQt5Widgetsd -lQt5Guid -lQt5Cored
C:/SFML/lib/libsfml-graphics-s-d.a(RenderWindow.cpp.obj): In function `ZNK2sf12RenderWindow7captureEv':
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/RenderWindow.cpp:92: undefined reference to `glReadPixels@28'
C:/SFML/lib/libsfml-graphics-s-d.a(RenderTarget.cpp.obj): In function `ZN2sf12RenderTarget5clearERKNS_5ColorE':
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/RenderTarget.cpp:99: undefined reference to `glClearColor@16'
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/RenderTarget.cpp:100: undefined reference to `glClear@4'
C:/SFML/lib/libsfml-graphics-s-d.a(RenderTarget.cpp.obj): In function `ZN2sf12RenderTarget4drawEPKNS_6VertexEjNS_13PrimitiveTypeERKNS_12RenderStatesE':
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/RenderTarget.cpp:269: undefined reference to `glVertexPointer@16'
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/RenderTarget.cpp:270: undefined reference to `glColorPointer@16'
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/RenderTarget.cpp:271: undefined reference to `glTexCoordPointer@16'
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/RenderTarget.cpp:280: undefined reference to `glDrawArrays@12'
C:/SFML/lib/libsfml-graphics-s-d.a(RenderTarget.cpp.obj): In function `ZN2sf12RenderTarget12pushGLStatesEv':
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/RenderTarget.cpp:299: undefined reference to `glGetError@0'
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/RenderTarget.cpp:309: undefined reference to `glPushClientAttrib@4'
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/RenderTarget.cpp:310: undefined reference to `glPushAttrib@4'
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/RenderTarget.cpp:312: undefined reference to `glMatrixMode@4'
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/RenderTarget.cpp:313: undefined reference to `glPushMatrix@0'
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/RenderTarget.cpp:314: undefined reference to `glMatrixMode@4'
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/RenderTarget.cpp:315: undefined reference to `glPushMatrix@0'
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/RenderTarget.cpp:316: undefined reference to `glMatrixMode@4'
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/RenderTarget.cpp:317: undefined reference to `glPushMatrix@0'
C:/SFML/lib/libsfml-graphics-s-d.a(RenderTarget.cpp.obj): In function `ZN2sf12RenderTarget11popGLStatesEv':
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/RenderTarget.cpp:329: undefined reference to `glMatrixMode@4'
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/RenderTarget.cpp:330: undefined reference to `glPopMatrix@0'
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/RenderTarget.cpp:331: undefined reference to `glMatrixMode@4'
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/RenderTarget.cpp:332: undefined reference to `glPopMatrix@0'
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/RenderTarget.cpp:333: undefined reference to `glMatrixMode@4'
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/RenderTarget.cpp:334: undefined reference to `glPopMatrix@0'
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/RenderTarget.cpp:336: undefined reference to `glPopClientAttrib@0'
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/RenderTarget.cpp:337: undefined reference to `glPopAttrib@0'
C:/SFML/lib/libsfml-graphics-s-d.a(RenderTarget.cpp.obj): In function `ZN2sf12RenderTarget13resetGLStatesEv':
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/RenderTarget.cpp:355: undefined reference to `__GLEW_ARB_multitexture'
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/RenderTarget.cpp:357: undefined reference to `__glewClientActiveTextureARB'
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/RenderTarget.cpp:358: undefined reference to `__glewActiveTextureARB'
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/RenderTarget.cpp:362: undefined reference to `glDisable@4'
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/RenderTarget.cpp:363: undefined reference to `glDisable@4'
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/RenderTarget.cpp:364: undefined reference to `glDisable@4'
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/RenderTarget.cpp:365: undefined reference to `glDisable@4'
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/RenderTarget.cpp:366: undefined reference to `glEnable@4'
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/RenderTarget.cpp:367: undefined reference to `glEnable@4'
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/RenderTarget.cpp:368: undefined reference to `glMatrixMode@4'
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/RenderTarget.cpp:369: undefined reference to `glEnableClientState@4'
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/RenderTarget.cpp:370: undefined reference to `glEnableClientState@4'
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/RenderTarget.cpp:371: undefined reference to `glEnableClientState@4'
C:/SFML/lib/libsfml-graphics-s-d.a(RenderTarget.cpp.obj): In function `ZN2sf12RenderTarget16applyCurrentViewEv':
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/RenderTarget.cpp:407: undefined reference to `glViewport@16'
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/RenderTarget.cpp:410: undefined reference to `glMatrixMode@4'
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/RenderTarget.cpp:411: undefined reference to `glLoadMatrixf@4'
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/RenderTarget.cpp:414: undefined reference to `glMatrixMode@4'
C:/SFML/lib/libsfml-graphics-s-d.a(RenderTarget.cpp.obj): In function `ZN2sf12RenderTarget14applyBlendModeERKNS_9BlendModeE':
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/RenderTarget.cpp:424: undefined reference to `__GLEW_EXT_blend_func_separate'
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/RenderTarget.cpp:426: undefined reference to `__glewBlendFuncSeparateEXT'
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/RenderTarget.cpp:432: undefined reference to `glBlendFunc@8'
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/RenderTarget.cpp:437: undefined reference to `__GLEW_EXT_blend_equation_separate'
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/RenderTarget.cpp:439: undefined reference to `__glewBlendEquationSeparateEXT'
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/RenderTarget.cpp:445: undefined reference to `__glewBlendEquation'
C:/SFML/lib/libsfml-graphics-s-d.a(RenderTarget.cpp.obj): In function `ZN2sf12RenderTarget14applyTransformERKNS_9TransformE':
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/RenderTarget.cpp:457: undefined reference to `glLoadMatrixf@4'
C:/SFML/lib/libsfml-graphics-s-d.a(GLCheck.cpp.obj): In function `ZN2sf4priv12glCheckErrorEPKcj':
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/GLCheck.cpp:40: undefined reference to `glGetError@0'
C:/SFML/lib/libsfml-graphics-s-d.a(Shader.cpp.obj): In function `checkMaxTextureUnits':
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/Shader.cpp:51: undefined reference to `glGetIntegerv@8'
C:/SFML/lib/libsfml-graphics-s-d.a(Shader.cpp.obj): In function `checkShadersAvailable':
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/Shader.cpp:118: undefined reference to `__GLEW_ARB_shading_language_100'
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/Shader.cpp:116: undefined reference to `__GLEW_ARB_shader_objects'
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/Shader.cpp:117: undefined reference to `__GLEW_ARB_vertex_shader'
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/Shader.cpp:118: undefined reference to `__GLEW_ARB_fragment_shader'
C:/SFML/lib/libsfml-graphics-s-d.a(Shader.cpp.obj): In function `ZN2sf6ShaderD2Ev':
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/Shader.cpp:149: undefined reference to `__glewDeleteObjectARB'
C:/SFML/lib/libsfml-graphics-s-d.a(Shader.cpp.obj): In function `ZN2sf6Shader12setParameterERKSsf':
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/Shader.cpp:266: undefined reference to `__glewGetHandleARB'
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/Shader.cpp:267: undefined reference to `__glewUseProgramObjectARB'
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/Shader.cpp:273: undefined reference to `__glewUniform1fARB'
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/Shader.cpp:277: undefined reference to `__glewUseProgramObjectARB'
C:/SFML/lib/libsfml-graphics-s-d.a(Shader.cpp.obj): In function `ZN2sf6Shader12setParameterERKSsff':
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/Shader.cpp:290: undefined reference to `__glewGetHandleARB'
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/Shader.cpp:291: undefined reference to `__glewUseProgramObjectARB'
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/Shader.cpp:297: undefined reference to `__glewUniform2fARB'
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/Shader.cpp:301: undefined reference to `__glewUseProgramObjectARB'
C:/SFML/lib/libsfml-graphics-s-d.a(Shader.cpp.obj): In function `ZN2sf6Shader12setParameterERKSsfff':
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/Shader.cpp:314: undefined reference to `__glewGetHandleARB'
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/Shader.cpp:315: undefined reference to `__glewUseProgramObjectARB'
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/Shader.cpp:321: undefined reference to `__glewUniform3fARB'
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/Shader.cpp:325: undefined reference to `__glewUseProgramObjectARB'
C:/SFML/lib/libsfml-graphics-s-d.a(Shader.cpp.obj): In function `ZN2sf6Shader12setParameterERKSsffff':
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/Shader.cpp:338: undefined reference to `__glewGetHandleARB'
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/Shader.cpp:339: undefined reference to `__glewUseProgramObjectARB'
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/Shader.cpp:345: undefined reference to `__glewUniform4fARB'
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/Shader.cpp:349: undefined reference to `__glewUseProgramObjectARB'
C:/SFML/lib/libsfml-graphics-s-d.a(Shader.cpp.obj): In function `ZN2sf6Shader12setParameterERKSsRKNS_9TransformE':
C:/Users/Vincent/Documents/SFML-2.2/src/SFML/Graphics/Shader.cpp:383: undefined reference to `__glewGetHandleARB'

Bon, j'ai pas tout mis car y'a un gros paquet de lignes... x)

Tout concerne OpenGL/Glew, mais normalement sous windows on a aucune librairie de ce genre à inclure ou quoi que ce soit, donc je ne comprend pas trop l'erreur :/

Mon fichier .pro contient bien ça pourtant:
DEFINES += SFML_STATIC

INCLUDEPATH += C:/SFML/include

LIBS += -LC:/SFML/lib

CONFIG(debug, debug|release)
{
    LIBS += -lsfml-audio-s-d -lsfml-graphics-s-d -lsfml-network-s-d -lsfml-system-s-d -lsfml-window-s-d
}

Merci d'avance!

4
Fenêtrage / [SFML 2.1] Position de la souris en retard?
« le: Septembre 08, 2014, 10:57:36 pm »
Bonjour,

Je suis sous Ubuntu 14.04.

J'affiche une image pour remplacer le curseur de la souris(que je cache donc). Le problème, c'est que sf::Mouse::getPosition(window) a l'air d'être en retard...

En effet, je trouvais que mon curseur n'était pas fluide, j'ai donc rafficher le curseur du système pour voir la différence, et en effet, mon image traînais toujours derrière mon curseur... J'ai trouver ça bizarre et j'ai d'abord penser que ça venais de mon application qui devait avoir des problèmes d'optimisation, puis j'ai créer un nouveau projet et j'ai tester ce code:

 #include <iostream>
#include <SFML/System.hpp>
#include <SFML/Graphics.hpp>

using namespace std;

int main()
{
    sf::Texture m_mouse_texture;
    m_mouse_texture.loadFromFile("cursor.png");
    sf::Sprite m_mouse_sprite;
    m_mouse_sprite.setTexture(m_mouse_texture);
    m_mouse_sprite.setTextureRect(sf::IntRect(0,0,30,30));

    sf::RenderWindow window(sf::VideoMode(800, 600), "My window");

    // on fait tourner le programme jusqu'à ce que la fenêtre soit fermée
    while (window.isOpen())
    {
        // on inspecte tous les évènements de la fenêtre qui ont été émis depuis la précédente itération
        sf::Event event;
        while (window.pollEvent(event))
        {
            // évènement "fermeture demandée" : on ferme la fenêtre
            if (event.type == sf::Event::Closed)
                window.close();
        }

        window.clear(sf::Color(255,255,255));
        m_mouse_sprite.setPosition(sf::Mouse::getPosition(window).x,sf::Mouse::getPosition(window).y);
        window.draw(m_mouse_sprite);
        window.display();
    }

    return 0;
}

Et toujours le même problème. Quelqu'un aurait une idée pour résoudre ce problème?

Merci d'avance!

5
Graphique / Optimisation affichage
« le: Décembre 30, 2013, 11:24:19 am »
Bonjour,
Je cherche en ce moment un moyen d'afficher mon interface, certains effets comme du brouillard etc... ainsi que ma map avec un minimum d'appel à draw. En effet, la fonction draw de RendeWindow consomme pas mal. On le vois rapidement quand on fait beaucoup d'appel à cette fonction.
Du coup, je voulais savoir si c'était mieux de dessiner dans une texture avec RenderTexture, puis de l'afficher avec renderWindow.draw(renderTexture); ?
Je ne sais pas si draw de renderTexture se comporte comme renderWindow, du coup, si c'est la même chose, auriez vous une méthode pour limiter le nombre d'appel à draw? Sachant que l'idéal serait 1 appel pour l'interface et 1 appel pour la carte ainsi qu'un appel pour les effets :/

Merci d'avance!

6
Général / Erreur avec libGlew.so.1.7
« le: Juin 09, 2012, 09:38:51 am »
Salut,

Donc après un bon moment de recherches, je reviens vous demander de l'aide!
J'ai installer g++4.7.(Normalement pas de problèmes avec lui)

Voilà, quand je compile mon projet, j'obtient un petit Warning:
||warning: libGLEW.so.1.7, needed by /etc/SFML/lib/libsfml-graphics.so, not found (try using -rpath or -rpath-link)|
J'ai essayer de trouver la librairie libGLEW.so.1.7 mais je tombe toujours sur la 1.5...

De plus, j'obtiens pas mal d'erreurs à propos de sf::Sound:

Editeur.cpp:(.text._ZN3GUI6ButtonD2Ev[_ZN3GUI6ButtonD5Ev]+0x3a)||undefined reference to `sf::Sound::~Sound()'|
Editeur.cpp:(.text._ZN3GUI6ButtonD2Ev[_ZN3GUI6ButtonD5Ev]+0x48)||undefined reference to `sf::SoundBuffer::~SoundBuffer()'|
Editeur.cpp:(.text._ZN3GUI6ButtonD2Ev[_ZN3GUI6ButtonD5Ev]+0x168)||undefined reference to `sf::SoundBuffer::~SoundBuffer()'|
Editeur.cpp:(.text._ZN3GUI6ButtonD2Ev[_ZN3GUI6ButtonD5Ev]+0x17a)||undefined reference to `sf::Sound::~Sound()'|
(aucune ligne n'est précisée)

Comment installer glew1.7 et résoudre les problèmes avec sf::Sound?

Merci d'avance!

7
Général / [Résolu] Problèmes avec Cmake
« le: Juin 03, 2012, 09:36:59 am »
Bonjour à tous!

Voila, j'ai un problème pour compiler la SFML. Le problème ne viens pas de la SFML, mais de CMake qui apparement ne peux rien faire...

Voici les erreurs qu'il me donne lorsque je configure:

Citer
CMake Error: Unable to open cache file for save. .../LaurentGomila-SFML-ac9bda5/build/CMakeCache.txt
CMake Error: : System Error: Ressource temporairement non disponible
CMake Error: The source directory ".../LaurentGomila-SFML-ac9bda5" does not exist.
Specify --help for usage, or press the help button on the CMake GUI.

Je suis sur Ubuntu 12.04 x86, j'ai essayer aussi de lancer cmake-gui en mode sudo mais le problème est encore là.
Comment je pourrais régler ce problème?

Merci d'avance!

8
Graphique / [Résolus][SFML 2.0] Shader
« le: Avril 23, 2012, 01:17:17 pm »
Bonjour,

Voila, ça fait quelques jours que j'essaye de faire quelque chose avec les Shader mais j'ai quelques problèmes. En effet, mon image devient blanche, au lieu de passer en noir et blanc.

Voici mon fichier "noirblanc.sfx":
uniform sampler2D texture;

void main()
{
    // On récupère la valeur du pixel courant de l'écran
    vec4 pixel = gl_Color;

    // On calcule son niveau de gris
    float gray = pixel.r * 0.39 + pixel.g * 0.50 + pixel.b * 0.11;

    // On écrit enfin le pixel final, en utilisant 50% du pixel de l'écran et 50% de sa version colorée

    gl_FragColor = vec4(gray,gray,gray,pixel.a);
}

Voici le code C++:
sf::Shader sh;
        sh.loadFromFile("noirblanc.sfx", sf::Shader::Fragment);
        sh.setParameter("texture", sf::Shader::CurrentTexture);
        sf::RenderStates r;
        r.shader = &sh;

J'obtient l'erreur suivante: "Texture "texture" not found in shader"

Qu'est-ce que je dois faire pour que ça fonctionne? Comment récupérer le pixel courant de l'image?

Merci d'avance!

9
Graphique / [SFML 2.0] sf::Text problème
« le: Avril 16, 2012, 10:30:02 pm »
Bonjour,

Et oui, les bugs s’enchaînent avec cette toute nouvelle version(tellement de changements déjà que je pense passer à autre chose)
Là le problème courant que je suis en train d'essayer de régler viens de l'affichage de sf::Text.
En fait, le texte est plus grand que ce que me renvois getLocalBounds() (oui, la super fonction remplacant l'ancienne qui fonctionnait très bien :-\ )

Ce qui fait que quand j'essaye de centrer mon texte dans un bouton, et bien il ne l'est pas  ::)
Une petite capture d'écran?



Texte centrer avec ce code:
m_text.setPosition((int)(m_position.x+m_padding.left+m_margin.left+(m_dimensions.width-m_text.getLocalBounds().width)/2), (int)(m_position.y+m_margin.top+(m_dimensions.height-m_text.getLocalBounds().height)/2));
Je précise que je n'avais aucun problème à ce niveau là avant de mettre à jour la version 2.0 de la SFML(j'avais la vielle version 2.0 x) )

Bon, on vois quand même qu'il y a u beaucoup de boulot de fait, et très bien même, mais tous ces changements me ralentissent plus qu'autre chose, et je trouve fortement dommage la suppression de petites fonctions très très pratique comme Flip... Nous sommes obliger de créer encore plus de variables, de faire plus de testes etc... et donc avoir un code beaucoup plus "crade" qu'avant.

Est-ce que ce problème vient donc de la fonction(je n'utilise peut être pas la bonne)? Ou alors d'ailleurs?

Merci d'avance!

10
Graphique / [SFML 2.0] FlipX()
« le: Avril 13, 2012, 08:44:56 pm »
Bonjour,

Voilà, avant nous avions une super fonction avec les sprites qui était: FlipX();

Maintenant elle a disparue et je ne lui trouve aucun substitut dans la documentation. Est-ce qu'il y aurais une fonction pour pouvoir retourner une image dans cette "super" nouvelle version?

Merci d'avance.

11
Graphique / [Résolus][SFML 2.0] RenderStates Manquant?
« le: Avril 13, 2012, 06:10:12 pm »
Bonjour,

J'ai un problème avec les shaders qui m'empêchent de programmer ce que je veux(je suis obliger de passer par d'autres méthodes très lourdes et pas franchement efficaces...)

J'ai vu qu'avec la SFML 2.0 il fallait déclarer et charger notre shader puis l'envoyer à un RenderStates pour pouvoir l'afficher.
Or, je n'ai pas de RenderStates O_o Je ne peux pas non plus inclure l'entête car elle n'existe apparemment pas...

Ce simple code ne fonctionne donc pas:
sf::Shader sh;
sh.LoadFromFile("noirblanc.sfx");
sf::RenderStates r;
r.Shader = &sh;

Est-ce que ça a changer entre temps?
J'ai compiler la SFML 2.0 en mode débug et statique.(je n'ai pas d'autres problèmes que celui là)

Merci d'avance!

Pages: [1]