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

Pages: [1]
1
Bonjour,

Tout d'abord, pour préciser, ce topic sert plus à annoncer un warning qu'une erreur puisque le problème soulevé ne m'empêche pas d'avancer !

C'est à propos d'un programme comprenant des dépendances SFML que j'avais créé sur une VM Linux (Ubuntu je-sais-plus-quelle-version) et que je devais lancé sur mon serveur sous Ubuntu 12.04 LTS.

J'ai sans problème pu installer les autres dépendances qui m'étaient nécessaires en passant par apt-get directement (par exemple Boost). Mais ayant compris qu'à priori les dépôts ne comprennent que la version 1.6 de SFML j'ai préféré faire l'autre solution pour ce SDK : télécharger la version GCC Linux pour 64bit, rajouter le lien du dossier lib dans ld.so.conf et effectuer un ldconfig pour que le système puisse reconnaître le SDK correctement. (solution qui a aussi été utilisé au moment de la création du programme sur ma VM, sans souci)

Mais lors du ldconfig j'obtiens ces retours sur mon serveur :

/sbin/ldconfig.real: /home/SFML-2.1/lib/libsfml-window.so.2 n'est pas un lien symbolique

/sbin/ldconfig.real: /home/SFML-2.1/lib/libsfml-audio.so.2 n'est pas un lien symbolique

/sbin/ldconfig.real: /home/SFML-2.1/lib/libsfml-system.so.2 n'est pas un lien symbolique

/sbin/ldconfig.real: /home/SFML-2.1/lib/libsfml-graphics.so.2 n'est pas un lien symbolique

/sbin/ldconfig.real: /home/SFML-2.1/lib/libsfml-network.so.2 n'est pas un lien symbolique
 

Pour information cela n'empêche pas à mon programme de maintenant retrouver le SDK et de fonctionner.

ldd sur le programme :
 
...
libsfml-system.so.2 => /home/SFML-2.1/lib/libsfml-system.so.2 (0x00007f637ef23000)
libsfml-network.so.2 => /home/SFML-2.1/lib/libsfml-network.so.2 (0x00007f637ed0a000)
...
 

Néanmoins je pose donc la question par curiosité étant donné que j'avais installé de la même façon SFML sur ma VM et que je n'avais pas eu ce genre de retour avec ldconfig, et que ces derniers semblent annoncer une erreur.

Y a t-il quelquechose à faire pour corriger ça ?

2
Fenêtrage / [Résolu][SFML 2.0] Souci de FBO avec sf::style::Default
« le: Février 12, 2014, 11:57:52 am »
Bonjour,

J'essayais de rechercher une erreur équivalente mais sans succès, c'est pour cela que j'ouvre ce topic !

J'ai un programme assez costaud OpenGL+SFML (+ quelques tonnes d'autres libs ^^) auquel je devais implémenter récemment une fonctionnalité qui me demandait d'utiliser un FBO (1ère fois que j'en utilise,  et je sais que je vais dans le futur m'en servir pour bcp d'autres choses ^^) ! Je fais donc quelques rendus dans le FBO, que j'utilise ensuite pour faire un rendu à l'écran !

Enfin bref, tout se passe bien en sf::style::Fullscreen, mais avec sf::style::Default pour me retrouver en mode fenêtré impossible de mettre à jour le contenu de mon FBO, ce dernier reste vide ! C'est la seule chose que j'ai changé, et ça me produit donc un bel écran noir !
Pour info, si je fais un rendu directement à l'écran plutôt que dans le FBO tout fonctionne bien, en Fullscreen comme en Default !

Je vais m'arrêter là pour ce 1er post, si ça se trouve ces premières informations seront suffisantes pour comprendre le problème (problème connu de 2.0 et corrigé en 2.1 ? Je n'ai pas d'autres pistes)  !

Sinon je peux essayer d'écrire un code minimal en cas de besoin ! Il suffit de me demander (se basera sur SFML 2.0 avec utilisation de GLEW par contre) !

3
Salut salut,

Je me posais une petite question face à l'utilisation des sf::VertexArray. Cela fait déjà longtemps que j'avais remarqué qu'il fallait privilégié l'utilisation des Triangles avec OpenGL que le rendu de Quads, puisque le GPU gère plus simplement les triangles.

Mais qu'en est-il lorsqu'on utilise sf::Quads ou sf::Triangles ?
Je n'ai pas fait de test de performance, je suppose que dans tous les cas la différence reste minime, à moins que la SFML découpe automatiquement le sf::Quads en sf::Triangles pour le rendu !?

Voilà, je voulais simplement me renseigner sur ça, car tant qu'à faire, vu que je gère des triangles du côté d'OpenGL, il serait peut être mieux finalement que je gère tout aussi bien mon interface 2D (affichée en utilisant donc des sf::VertexArray) avec des sf::Triangles plutôt que des sf::Quads !

4
Bonjour,

Je crée tranquillement le nécessaire pour un serveur gérant plusieurs clients. Mais j'ai un souci car le SocketSelector (dans lequel j'ai donc enregistré mon TcpListener), ne répond jamais lorsqu'un client fait un "connect". Le client reçoit bien la comfirmation de la connexion dit en passant !

voici le code concerné :

GLvoid Net_BasicServer::listenConnectTCP_Thread()
{
        sf::SocketSelector selector;
        selector.add(m_TCPlistener);

        m_b_stopThreads = false;

        // lie l'écouteur à un port
        if (m_TCPlistener.listen(m_portEcoute) != sf::Socket::Done)
        {
                std::cout<<"port déjà utilisé"<<std::endl;
        }

        std::cout<<"Début thread écoute TCP Serveur"<<std::endl;

        while(!m_b_stopThreads)
        {
                // socket TCP d'écoute:
                if (selector.wait(sf::milliseconds(60)))
                {
                        if (selector.isReady(m_TCPlistener))
                        {
                                std::cout<<"test nouveau client"<<std::endl;

                                sf::TcpSocket* socket=new sf::TcpSocket();

                                if (m_TCPlistener.accept(*socket) == sf::Socket::Done)
                                {
                                        std::cout<<"nouveau client connecté"<<std::endl;

                                        m_clients.push_back(new Net_ConnectedClient(socket));
                                }
                        }
                }
        }

        std::cout<<"Fin thread écoute TCP Serveur"<<std::endl;

        m_TCPlistener.close();
}

Et voici donc les résultats de mes tests :

- avec ce code, si un client se connecte, il reçoit la confirmation de la connexion. Mais coté serveur, il ne passe jamais dans "if (selector.isReady(m_TCPlistener))". Et impossible ensuite de retenter une autre connexion

- testé sans le "if (selector.isReady(m_TCPlistener))", et bien entendu ça ne change rien. Donc en fait c'est qu'il ne parvient jamais à rentrer dans "if (selector.wait(sf::milliseconds(60)))". le selector ne semble pas réagir au connect du client.

- en supprimant le selecteur, tout fonctionne, le TcpListener.accept est pris en compte, d'autres clients peuvent rejoindre.

Voilà, je reste à disposition si il y a besoin d'autres infos. Au pire je peux toujours trouver un moyen de ne pas utiliser de selector, mais je les trouve bien utile pour justement stopper mes threads de façon bien contrôlé (dans ce cas j'ai juste à passé m_b_stopThreads à false dans le thread principal, et ça va me stopper l'écoute après 60 msec max).

5
EDIT: oups petite erreur de ma part, ce sujet devrait plus aller dans Système je suppose !?

Bonjour,

J'ai deux petites incompréhensions avec la SFML2.0. Loin d'être bloquants, ces deux problèmes impactent un peu quand même le gameplay de mon jeu ^^ !

Le premier souci vient de TextEntered (pour un module de tchat) qui ne me récupère pas certains caractères comme 'é', 'è', ... Bref tout ce qui semble avoir un accent (les combinaisons pour les majuscules ou autres sont bien récupérées).

Sans chercher à faire un code minimal (me demander si vraiment c'est jugé nécessaire), voici comment j'utilise l'event dans mon code :

if (event.type == sf::Event::TextEntered && event.text.unicode < 128)
                {
                        if(event.text.unicode == 8)
                        {
                                if(getText().size()>0)
                                        setText(getText().substr(0, getText().size()-1));
                        }
                        else if(event.text.unicode != 9 && event.text.unicode != 13 && (GLint)getText().size()-1<m_nbrCharMax)
                                setText(getText()+static_cast<char>(event.text.unicode));
                }

Bref, j'applique à une chaîne le backSpace, et sinon rajoute le caractère tant c'est ni Entrée, ni Tab qui est tapé. Mais donc je ne parviens à saisir d'où viens le souci pour ne pas reconnaitre les lettres avec accents.


Et j'en profite pour remonter un autre problème. Un ami a qui j'ai fait tester mon programme avait un souci sur la reconnaissance de son clavier QWERTY (PC Win7). Par souci je veux simplement dire que tout était récupéré comme si c'était un clavier AZERTY. En tout cas, je ne peux que supposer que c'est à la SFML de détecter le type de clavier pour récupérer les bons event.

Quoi qu'il en soit, ces deux soucis semble concerner un unique problème : la reconnaissance du clavier utilisé, des touches présentes.

Je peux difficillement ajouter plus d'information. Je travaille et j'ai ce souci de TextEntered en tout cas avec mon laptop sous Windows7 x64.

6
Général / [Résolu] Undefined ref sur sf::RenderWindow.create()
« le: Mai 13, 2013, 01:39:35 pm »
Bonjour,

(je place ce topic ici dans le forum "Général" car le souci est lié je pense à un problème sur la dernière version de la lib directement)

Le problème est simple, j'avais compilé correctement la SFML 2.0 sur mon PC fixe il y a une semaine, et tout fonctionnait bien sur mon projet.

Et j'ai aujourd'hui retélécharger les sources depuis le site pour recompiler la lib sur mon PC portable, qui possède exactement le même projet et la même config au niveau de l'IDE (Eclipse Juno), et je me retrouve en cherchant à compiler le projet avec l'erreur suivante :

 undefined reference to `_imp___ZN2sf6Window6createENS_9VideoModeERKSsjRKNS_15ContextSettingsE'

et concerne qu'une seule ligne de code: le create(...) du RenderWindow (le projet compile sans faute en commentant la ligne)

 window.create(VideoMode(800, 600), m_titreFenetre, Style::Default, ContextSettings(32));

Pour vérifier, j'ai donc recompilé la toute dernière version aussi sur mon PC fixe, et même erreur désormais (alors que tout marchait bien avec la version d'il y a une semaine).

Je suppose donc qu'il y a une petite erreur au niveau de la lib elle même !

Pour info : GCC 4.6.2, compilé avec CMake 2.8.10.2 et Eclipse 4.2 Juno (Eclipse CDT MinGW Makefiles) en Target !


EDIT : besoin de refaire un test ce soir sur mon PC fixe car je doute un peu si j'avais bien utilisé la version compilée datant de la semaine dernière, ou si c'était pas carrément une version bien plus vieille de la lib. Dans tous les cas ça n'empêche pas que je ne sais pas comment corriger cette erreur pour la dernière version ^^ !
(aucune erreur de compilation avec une bien plus ancienne version de la lib en tout cas)

7
Graphique / [SFML 2.0] 9-slice scaling - souci de RenderTexture
« le: Mai 08, 2013, 07:39:04 pm »
Bonjour à tous déjà ^^ !

Alors voilà, je cherche à utiliser des images de type NinePatch, pour avoir des images redimensionnées sans déformer les bords !
Si vous ne savez pas ce qu'est le 9-slice scaling, l'image ci-dessous résume parfaitement la situation ^^ :



En gros c'est donc une méthode pour "bloquer" le redimensionnement des bords.

Enfin bref, j'étais donc en train de concevoir ma petite classe qui allait faire le découpage de l'image source vers l'image redimensionnée correctement. Dans l'ordre j'ai donc :
- charger l'image source dans une sf::Image
- découper cette image en 9 subImage (aussi de type sf::Image) à coup de copy(sf::IntRect);

Et là je souhaitais donc refaire une image de la taille souhaitée, dans laquelle j'aurais mis mes subImages morceau par morceau, et redimensionnées comme il faut !

Je fais quelques recherches, et la seule façon que je trouve pour faire ça c'est d'utiliser :
- un sf::RenderImage dans lequel on va dessiner
- des sprites pour redimensionner avec sf::Sprite.resize(p_width, p_height)
(vu entre autre sur ce topic : http://en.sfml-dev.org/forums/index.php?topic=4119.0 )

Oui mais voilà, RenderImage pour moi ça n'existe tout simplement pas ><, de même que la fonction resize() de sf::Sprite ! Je ne comprend pas trop. Je croise plein de topic concernant SFML 2.0 indiquants l'utilisation de sf::RenderImage, mais j'aimerais bien comprendre comment on est sensé utiliser un truc qui n'est pas dans la SFML 2.0 >< ( http://www.sfml-dev.org/documentation/2.0/classes.php ou http://www.sfml-dev.org/documentation/2.0/files.php ) ! De même donc pour la fonction resize() de sf::Sprite, j'aimerais qu'on m'explique là >< !

Enfin bref, ça me permet entre autre aussi de vous demander quelle est la meilleur façon de faire ma petite opération de découpage/redimensionnement vu que pour l'instant je suis donc bloqué ^^ !

8
Général / [SFML 2.0RC] Compilation pour Eclipse CDT
« le: Janvier 17, 2013, 05:20:53 pm »
Bonjour,

Je tente de faire fonctionner SFML sous Ecplise CDT, mais sans succès pour l'instant !

J'essaye de compiler les différents fichiers avec le tuto suivant : http://www.sfml-dev.org/wiki/fr/tutoriels/eclipsecompilation

Dès que je tente de compiler pour sfml-system, au lieu d'avoir libsfml-system.a et libsfml-system.dll, je me retrouve surtout avec ça :

**** Build of configuration Release for project sfml-system ****

**** Internal Builder is used for build               ****
g++ -DWIN32 -DNDEBUG -D_LIB -DSFML_EXPORTS -DSFML_DYNAMIC -O3 -Wall -c -fmessage-length=0 -o src\Win32\MutexImpl.o ..\src\Win32\MutexImpl.cpp
In file included from ..\src\Win32\MutexImpl.cpp:28:0:
c:\mingw\bin\../lib/gcc/mingw32/4.7.2/../../../../include/SFML/System/Win32/MutexImpl.hpp:31:39: fatal error: SFML/System/NonCopyable.hpp: No such file or directory
compilation terminated.
Build error occurred, build is stopped
Time consumed: 199  ms.  

Pourtant je n'ai pas loupé quoique ce soit tout le long du tutoriel !

Bref, en voyant cela, je décide alors de copier de C:\sfml2\sfml2\include vers C:\MinGW\include !

Nouvelle tentative, et cette fois c'est plus long, mais pas forcément mieux au final ^^ :

**** Build of configuration Release for project sfml-system ****

**** Internal Builder is used for build               ****
g++ -DWIN32 -DNDEBUG -D_LIB -DSFML_EXPORTS -DSFML_DYNAMIC -O3 -Wall -c -fmessage-length=0 -o src\Win32\ThreadImpl.o ..\src\Win32\ThreadImpl.cpp
g++ -DWIN32 -DNDEBUG -D_LIB -DSFML_EXPORTS -DSFML_DYNAMIC -O3 -Wall -c -fmessage-length=0 -o src\Win32\ClockImpl.o ..\src\Win32\ClockImpl.cpp
g++ -DWIN32 -DNDEBUG -D_LIB -DSFML_EXPORTS -DSFML_DYNAMIC -O3 -Wall -c -fmessage-length=0 -o src\Win32\SleepImpl.o ..\src\Win32\SleepImpl.cpp
g++ -DWIN32 -DNDEBUG -D_LIB -DSFML_EXPORTS -DSFML_DYNAMIC -O3 -Wall -c -fmessage-length=0 -o src\Win32\MutexImpl.o ..\src\Win32\MutexImpl.cpp
g++ -DWIN32 -DNDEBUG -D_LIB -DSFML_EXPORTS -DSFML_DYNAMIC -O3 -Wall -c -fmessage-length=0 -o src\Win32\ThreadLocalImpl.o ..\src\Win32\ThreadLocalImpl.cpp
g++ -shared -Wl,--out-implib=libsfml-system.a -o libsfml-system.dll src\Win32\ThreadLocalImpl.o src\Win32\ThreadImpl.o src\Win32\SleepImpl.o src\Win32\MutexImpl.o src\Win32\ClockImpl.o
src\Win32\ThreadImpl.o:ThreadImpl.cpp:(.text+0x9): undefined reference to `_imp___ZN2sf6Thread3runEv'
src\Win32\ThreadImpl.o:ThreadImpl.cpp:(.text+0x6e): undefined reference to `_imp___ZN2sf3errEv'
c:/mingw/bin/../lib/gcc/mingw32/4.7.2/../../../../mingw32/bin/ld.exe: src\Win32\ThreadImpl.o: bad reloc address 0x20 in section `.eh_frame'
collect2.exe: error: ld returned 1 exit status
Build error occurred, build is stopped
Time consumed: 2511  ms.  


Bref, j'aimerais connaitre les bonnes étapes pour faire fonctionner SFML avec Eclipse !
Merci d'avance ^^ !

EDIT : je précise au passage que j'ai utilisé le dernier snapshot de développement, SFML-2.0-rc-120-g9fac5d7

Pages: [1]