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

Pages: [1]
1
Général / CMake Could NOT find SFML (Debian Jessie 3.16.0-4-amd64)
« le: Février 14, 2015, 07:03:52 am »
Bonjour,

Je tente de compiler un projet utilisant la SFML
find_package(SFML 2.1 REQUIRED system window graphics audio)

Mais j'ai l'erreur suivante avec cmake :
Citer
CMake Error at cmake_modules/FindSFML.cmake:312 (message):
  Could NOT find SFML (missing: SFML_SYSTEM_LIBRARY SFML_WINDOW_LIBRARY
  SFML_GRAPHICS_LIBRARY SFML_AUDIO_LIBRARY)
Call Stack (most recent call first):
  CMakeLists.txt:35 (find_package)


Pourtant la SFML est bien installée sur mon poste (Debian Jessie 3.16.0-4-amd64 ) :
Citer
~$ ls /usr/lib/x86_64-linux-gnu/libsfml-*
/usr/lib/x86_64-linux-gnu/libsfml-audio.so.2       /usr/lib/x86_64-linux-gnu/libsfml-network.so.2    /usr/lib/x86_64-linux-gnu/libsfml-window.so.2
/usr/lib/x86_64-linux-gnu/libsfml-audio.so.2.1     /usr/lib/x86_64-linux-gnu/libsfml-network.so.2.1  /usr/lib/x86_64-linux-gnu/libsfml-window.so.2.1
/usr/lib/x86_64-linux-gnu/libsfml-graphics.so.2    /usr/lib/x86_64-linux-gnu/libsfml-system.so.2
/usr/lib/x86_64-linux-gnu/libsfml-graphics.so.2.1  /usr/lib/x86_64-linux-gnu/libsfml-system.so.2.1

Les find_library ne me trouvent rien, j'ai essayé de rajouter  /usr/lib/x86_64-linux-gnu dans FIND_SFML_PATHS, j'ai aussi tenté de rajouter lib/x86_64-linux-gnu dans les préfixes des find_library, rien à faire.

Je suis donc allé rechercher la dernière version du findSFML.cmake sur le dépôt de la SFML : https://github.com/SFML/SFML/blob/master/cmake/Modules/FindSFML.cmake
Rien ne change.

Je ne comprends pas du tout ce qui pourrait clocher, auriez-vous une idée ?

Merci d'avance

2
Bonjour,

J'ai un socketSelector qui attend de cette manière :
selector.wait(sf::seconds(15)
Dès lors il retourne true si des sockets sont prêt et false au bout de 15 secondes si jamais aucun socket n'est prêt.

Mais j'ai commis l'erreur de faire :
socket.disconnect();
selector.remove(socket);

Dès lors je vais attendre 15 secondes sur la ligne du selector.wait qui va retourner false puis selector.wait retournera directement false sans attendre 15 secondes.
Il me semble évident que j'ai fait planter le socketSelector.

J'ai beau consulter la documentation, je n'ai pas trouvé le moyen de différencier si le false retourné par selector::wait est dû au timeout ou à une erreur.

Faut-il alors que je mette un sf::Clock pour repérer les erreurs ?
Existe-t-il d'autres moyen connu de faire planter le socketSelector? (pour savoir à quoi pourrait être dû l'erreur si jamais elle se reproduit).

3
Système / [Résolu][SFML2.0]mutex.lock consécutifs, pas de blocage.
« le: Juin 30, 2012, 07:21:44 pm »
Bonjour,

Je viens de m'apercevoir que plusieurs mutex.lock() consécutifs (testé avec 10 lock consécutifs) ne sont pas bloquants au niveau des lock() suivants le premier alors qu'ils devraient.

    sf::Mutex x;
    for(int i=0; i != 10; ++i)
        x.lock()

Ceci rend donc impossible le blocage d'un thread par lui-même pour être ensuite débloquer par un autre thread.


Dans le cas où les lock consécutifs seraient une erreur, le débogage devient un peu plus compliqué et certaines erreurs pourraient devenir très difficiles à trouver.

Est-ce une erreur ou est-ce voulu?

4
Bonjour,

Je suis actuellement en train de faire passer un hash (= 8 Uint64) grâce à un de vos paquet.
Mais lorsque j'essaye d'extraire ou de mettre un (U)int64 dans le paquet, j'ai une erreur :
Citer
/media/Acer/Users/Neckara/Desktop/Donnees/Projet/Serveur/Serveur/administrateur.cpp:137: error: ambiguous overload for ‘operator>>’ in ‘paquet >> password’
Erreur que je n'ai pas avec les (U)int de taille inférieur.

J'ai aussi remarqué ceci :
    /// Overloads of operator >> to read data from the packet
    ///
    ////////////////////////////////////////////////////////////
    Packet& operator >>(bool&         data);
    Packet& operator >>(Int8&         data);
    Packet& operator >>(Uint8&        data);
    Packet& operator >>(Int16&        data);
    Packet& operator >>(Uint16&       data);
    Packet& operator >>(Int32&        data);
    Packet& operator >>(Uint32&       data);
    Packet& operator >>(float&        data);
    Packet& operator >>(double&       data);
    Packet& operator >>(char*         data);
    Packet& operator >>(std::string&  data);
    Packet& operator >>(wchar_t*      data);
    Packet& operator >>(std::wstring& data);
    Packet& operator >>(String&       data);

    ////////////////////////////////////////////////////////////
    /// Overloads of operator << to write data into the packet
    ///
    ////////////////////////////////////////////////////////////
    Packet& operator <<(bool                data);
    Packet& operator <<(Int8                data);
    Packet& operator <<(Uint8               data);
    Packet& operator <<(Int16               data);
    Packet& operator <<(Uint16              data);
    Packet& operator <<(Int32               data);
    Packet& operator <<(Uint32              data);
    Packet& operator <<(float               data);
    Packet& operator <<(double              data);
    Packet& operator <<(const char*         data);
    Packet& operator <<(const std::string&  data);
    Packet& operator <<(const wchar_t*      data);
    Packet& operator <<(const std::wstring& data);
    Packet& operator <<(const String&       data);

Les (U)int64 n'apparaissent pas. Est-ce un oublie?

5
Réseau / [Résolu][SFML2.0]Timeout des sockets sur un TcpSelector
« le: Juin 13, 2012, 09:42:46 pm »
Bonjour,

J'ai un TcpSelector qui gère plusieurs sockets et j'aimerais que lorsqu'un client ne répond plus, le déconnecter.
J'ai regardé la doc mais je n'ai rien trouvé à ce propos.
Le problème c'est que je ne peux pas faire un thread par client pour utiliser un TcpSelector par socket, niveau performance, c'est intenable.

Parcourir régulièrement une liste de socket pour voir ceux qui sont inactif ne me semble pas très optimisé...

Sinon une autre question que je me pose :
Est-ce que parcourir un tableau de socket après un selector.wait() est vraiment plus optimisé que de faire en sorte que le selector.wait construise une liste de socket ayant reçus des données comme dans la 1.6 ?

EDIT : selon la doc,
Le status indique si le socket est déconnecté, est-ce que la déconnexion prend en compte les timeout ? (il ne me semble pas que le protocole TCP le face, enfin d'après ce que j'ai vu en cours)
S'il prend en compte les timeouts, est-il possible de faire varier la durée au bout de laquelle on considère la connexion perdue?

6
Système / [résolut]Sémaphore
« le: Juin 12, 2012, 08:53:04 pm »
Bonjour,

Dans la SFML2.0, il y a des mutex mais pas de sémaphores.

J'aimerais donc savoir s'il vaut mieux utiliser une bibliothèque standard proposant des sémaphores (si oui laquelle ?) ou s'il vaut mieux utiliser des mutex avec une variable globale (en gros un singleton avec 3 méthodes statiques : lock, unlock, et getNbJetons).


Cordialement,
Neckara

7
Graphique / [SFML 2.0]sf::Sprite getPixel
« le: Avril 18, 2012, 02:14:57 pm »
Bonjour,

J'ai une questions sur les sf::Sprites.

Les sf::Sprites ne peuvent contenir plus que des sf::Textures et ils n'ont plus la méthode getPixel() or les Textures n'ont pas ces méthodes elles-aussi.

Il faut donc faire un getTexture() puis un copyToImage() pour enfin faire un getPixel().

Or, le getPixel est très utile pour détecter la collision de la souris avec des images où certaines zones sont transparentes (= pas de collision dessus).

Or la détection est une méthode appelée assez fréquemment, et le copyToImage() est une méthode assez lourde...

Existe-t-il une méthode plus légère?
Sachant qu'on ne sait pas forcément quelle image est dans un sf::Sprite...

8
Graphique / [SFML 2.0] Chargement de sf::Texture
« le: Avril 14, 2012, 11:06:40 am »
Bonjour,

J'ai un petit problème et je ne comprend toujours pas ce qui se passe.
  std::ifstream fichier(chemin.c_str());
    std::string ligne;
    if(fichier.fail())
    {
        std::cerr << "fichier de config non trouv�\n" << std::endl;
        exit(1);
    }
    fichier >> nb_fenetre;
        std::cout << nb_fenetre << std::endl;
        std::cout << chemin << std::endl;
    liste_images = new sf::Texture[nb_fenetre];
    std::getline(fichier, ligne);
    while(i != nb_fenetre)
    {
        std::getline(fichier, ligne);
        std::cout << ligne << std::endl;
        if (!liste_images[i].loadFromFile(ligne.c_str()))
        std::cerr  << ligne << " not found" <<  std::endl;
            //exit(1);
        }
        i++;
        std::cout << ligne << "-" << std::endl;
        std::cout << i << "/" << nb_fenetre << std::endl;
    }
    fond.setTexture(liste_images[2], true);

Citer
do_wait: drmWaitVBlank returned -1, IRQs don't seem to be working correctly.
Try adjusting the vblank_mode configuration parameter.
3
Config/intro.txt
icone1.png
". Reason : Unable to open fileg
 not found
-cone1.png
1/3
icone2.png
". Reason : Unable to open fileg
 not found
-cone2.png
2/3
icone3.png
icone3.png-
3/3
void NFenetre_intro::getImage(Nwindow &wind)//Nwindow hérite de sf::RenderWindow
{
    wind.draw(fond);
}
pour l'affichage, j'ai une fenetre totalement noir.
Quand le chargement de la 3ème sf::Texture marche, et que je met true pour redimensionner le sf::Sprite, lorsqu'ensuite je décide de changer la source du sf::Sprite par une image non chargée, j'ai un carré blanc.

Je pense donc qu'il a réussi à charger la taille mais qu'il y a un problème dans le chargement ou l'affichage de mon image png (avec transparence)

En modifiant le dernier chemin en chemin absolue :
Citer
3/3
neckara@NeckDebian:~/test$ ./exe
do_wait: drmWaitVBlank returned -1, IRQs don't seem to be working correctly.
Try adjusting the vblank_mode configuration parameter.
3
Config/intro.txt
icone1.png
". Reason : Unable to open fileg
 not found
-cone1.png
1/3
icone2.png
". Reason : Unable to open fileg
 not found
-cone2.png
2/3
~/Documents/Donnees/Gestion-fenetre/icone3.png
". Reason : Unable to open filets/Donnees/Gestion-fenetre/icone3.png
 not founds/Donnees/Gestion-fenetre/icone3.png
-/Documents/Donnees/Gestion-fenetre/icone3.png
3/3

Sinon, je ne comprend pas tout à fait pourquoi quand je fais un :
std::cout << ligne << "-" << std::endl;
le "-" remplace le premier caractère de ligne dans l'affichage et ce uniquement lorsque le chargement de l'image ne marche pas.

Pourtant, j'ai une sf::Image qui me sert pour le logo et elle est toujours correctement affichée dans la barre de titre.

EDIT : si je remplace
!liste_images[i].loadFromFile(ligne.c_str())
par
!liste_images[i].loadFromFile("icone3.png")

Je n'ai plus d'erreur au chargement mais cela m'affiche des pixel aléatoirement comme si l'image n'avait en fait pas du tout été chargée.

9
Graphique / [SFML 2.0] Utilité des sf::Sprite?
« le: Avril 13, 2012, 07:59:15 pm »
Bonjour,

Je programme avec la SFML 2.0 depuis peu et je me suis aperçu qu'on ne pouvait plus dimensionner les sprite ni même mettre une sf::Image dessus. Il faut donc partir d'un sf::Image, passer par un sf::RenderTexture  puis utiliser un sf::Sprite.


Pourquoi ne pas rendre les sf::RenderTexture drawable ce qui éviterai de toujours devoir passer par un sf::Sprite?

Je ne comprend pas tout à fait pourquoi on doit passer par ces deux classes.

10
Fenêtrage / Zone de texte
« le: Avril 04, 2012, 09:33:22 pm »
Bonjour,

Je code actuellement une zone de texte en SFML.
J'ai presque fini mais je suis confronté à un petit problème : si le texte sf::String est trop long, il dépasse de la zone de texte.
J'aimerais donc le "couper" non pas au caractère près, mais au pixel près.

Auriez-vous une idée de comment procéder?

Cordialement,
Neckara

Pages: [1]
anything