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

Pages: [1]
1
Général / [Résolu] OpenGL 3.3 et Thread
« le: Septembre 12, 2015, 06:13:58 pm »
Bien le bonjour,

Je viens vers vous suite à un problème, plus ou moins présent, et plutôt gênant à vrai dire :
En effet dans le cadre d'un projet "d' apprentissage à la réalisation d'un moteur 3D et d'un moteur jeu associé" j'utilise SFML pour le contexte OpenGL et ce moteur que je réalise pour dessiner en 3D, ce moteur utilise la version 3.3 d'openGL, ainsi j'utilise les VAO / VBO. Voilà pour l'intro,

J'ai toujours pour habitude d'utiliser dans mes applications 2D un thread secondaire qui se charge généralement du chargement des données coté client, me laissant ainsi la possibilité d’interagir avec l'utilisateur durant ce temps de chargement (affichage d’icône de chargement, mini jeu ou n'importe quoi d'autre le principe est d'avoir accès à la fenêtre) ainsi je veux reproduire la même choses dans ce projet.

Par chargement de donnée/ressource je parle de chargement de texture, de remplissage de sprite, texte, compilation de shader, etc. Ainsi lors de l'appelle de ces méthodes, d'autres méthodes interne au moteur gérant la géométrie et l'utilisation de fonctions OpenGL sont appelés. Là je sais qu'il faut un contexte openGL pour utiliser ces fonctions.

Dans le cas d'SFML et des Threads je sais qu'au lancement d'un nouveau Thread il faut soit utiliser le contexte créé au départ en appelant 'context.setActive(true)' ou de créer un objet 'sf::Context context' dans ce même thread.

Mon problème ce trouve là : quand je fais ceci certaines fonctions OpenGL fonctionnes, d'autre ne produise pas d'erreur mais ne font tout bonnement rien (du moins en apparence par la suite), exemple :
Les fonctions touchant aux textures 'glBindTexture() / glTexParameteri() / glTexSubImage2D()' ainsi que ceux gérant la compilation des shaders 'glCreateShader() / glShaderSource() / glCompileShader()' semble fonctionner contrairement aux fonctions touchant aux VertexBufferObject / VertexArrayObject

Je reviens toujours sur le premiers contexte pour dessiner se qui à été chargé, et je suis toujours partie du principe comme dit dans le tuto sur l'instanciation de fenêtre OpenGL avec SFML que :

Citer
Une autre chose à savoir est que tous les contextes OpenGL créés par SFML partagent leurs ressources. Cela signifie que vous pouvez créer une texture ou un vertex buffer avec n'importe quel contexte actif, et l'utiliser avec n'importe quel autre. Cela signifie aussi que vous n'aurez pas besoin de recharger toutes vos ressources OpenGL si vous recréez votre fenêtre.

(Il est peut être important de préciser que je me sers d'SFML essentiellement de contexte, je n'utilise pas les classes d'SFML)

Je soupçonne dans mon cas qu'un VAO créé dans un contexte différent ne peut pas être utilisé dans un autre, je ne sais pas exactement se qu'il se produit cela dit, c'est pourquoi je demande votre avis et dans le meilleur des cas peut être une piste !

J'utilise une version de GitHub d'SFML provenant de la date du 25 mai 2014 - (SFML2.1 ?)
Merci beaucoup et bonne journée  ;)

2
Audio / [Linux] Sons effet mono
« le: Décembre 12, 2014, 12:27:42 pm »
Bonjour,

Je me suis récemment mis à peaufiner la portabilité du code source d'un projet pour pouvoir le compiler librement sous linux, et de rester souple sur chaque OS.

La portabilité ayant réussit sans trop de problèmes, je remarque un petit détail :
Les différents sons joué par sf::Music ou sf::Sound ont un rendu avec une impression d'être joué en 'mono', le fichier audio joué dans un player de l'OS a plus de détail que quand il est joué avec SFML, on a ici une qualité audio moins bonne.

J'ai donc cherché un 'problème' similaire sans grands succès, j'ai vu que certaines personnes ont eu un son qui craquait (ou crachait) et ressemblant un peu à mon problème, notamment ici " http://en.sfml-dev.org/forums/index.php?topic=478.0 " (mes sons ne craquent pas)

J'utilise essentiellement le format 'ogg vorbis' j'ai essayé de convertir en ' wav ' mais j'ai le même rendu.
J'utilise la version 2.1 de SFML que j'ai par habitude compilé moi même sous une architecture 64bits Linux (Ubuntu 13.10), j'ai tenté de retélécharger 'libsndfile' mais j'ai toujours le même rendu.

Ma question est donc, serait-ce un problème propre à mon installation ou est-ce un problème récurent ? Est-ce que je suis passé à coté d'une solution/information qui m'aurait permis de régler ce petit problème, qui n'est pas grave dans le sens où tout fonctionne bien mais une moins bonne qualité serait dommage pour un si bon Os :)

Merci beaucoup d'avoir pris le temps de lire ce topic et merci d'avance pour vos réponses !
Bon après-midi

3
Bonjour a tous !

Voila voulant réglé le petit soucis de la version 2.1 de SFML que lorsque l'on clique sur la fenêtre elle ne se refocus pas.

Donc j'ai récupéré la version sur github. J'ai crée les makefiles pour code blocks, j'ai recompilé sans soucis sous Windows 7 en statique.
J'ai ensuite essayé de recompiler mon projet avec cette nouvelle version, et j'ai des erreur du type :

Citer
[......]
F:\SFML-master\lib\libsfml-graphics-s-d.a(Texture.cpp.obj)||In function `ZN2sf7TextureD2Ev':|
F:\SFML-master\src\SFML\Graphics\Texture.cpp|95|undefined reference to `glDeleteTextures@8'|
F:\SFML-master\lib\libsfml-graphics-s-d.a(Texture.cpp.obj)||In function `ZN2sf7Texture6createEjj':|
F:\SFML-master\src\SFML\Graphics\Texture.cpp|136|undefined reference to `glGenTextures@8'|
F:\SFML-master\src\SFML\Graphics\Texture.cpp|144|undefined reference to `glBindTexture@8'|
F:\SFML-master\src\SFML\Graphics\Texture.cpp|145|undefined reference to `glTexImage2D@36'|
F:\SFML-master\src\SFML\Graphics\Texture.cpp|146|undefined reference to `glTexParameteri@12'|
F:\SFML-master\src\SFML\Graphics\Texture.cpp|147|undefined reference to `glTexParameteri@12'|
F:\SFML-master\src\SFML\Graphics\Texture.cpp|148|undefined reference to `glTexParameteri@12'|
F:\SFML-master\src\SFML\Graphics\Texture.cpp|149|undefined reference to `glTexParameteri@12'|
F:\SFML-master\lib\libsfml-graphics-s-d.a(Texture.cpp.obj)||In function `ZN2sf7Texture13loadFromImageERKNS_5ImageERKNS_4RectIiEE':|
F:\SFML-master\src\SFML\Graphics\Texture.cpp|198|undefined reference to `glFlush@0'|
F:\SFML-master\src\SFML\Graphics\Texture.cpp|226|undefined reference to `glBindTexture@8'|
F:\SFML-master\src\SFML\Graphics\Texture.cpp|229|undefined reference to `glTexSubImage2D@36'|
F:\SFML-master\src\SFML\Graphics\Texture.cpp|235|undefined reference to `glFlush@0'|
F:\SFML-master\lib\libsfml-graphics-s-d.a(Texture.cpp.obj)||In function `ZNK2sf7Texture11copyToImageEv':|
F:\SFML-master\src\SFML\Graphics\Texture.cpp|293|undefined reference to `glBindTexture@8'|
F:\SFML-master\src\SFML\Graphics\Texture.cpp|294|undefined reference to `glGetTexImage@20'|
F:\SFML-master\src\SFML\Graphics\Texture.cpp|302|undefined reference to `glBindTexture@8'|
F:\SFML-master\src\SFML\Graphics\Texture.cpp|303|undefined reference to `glGetTexImage@20'|
F:\SFML-master\lib\libsfml-graphics-s-d.a(Texture.cpp.obj)||In function `ZN2sf7Texture6updateEPKhjjjj':|
F:\SFML-master\src\SFML\Graphics\Texture.cpp|358|undefined reference to `glBindTexture@8'|
F:\SFML-master\src\SFML\Graphics\Texture.cpp|359|undefined reference to `glTexSubImage2D@36'|
F:\SFML-master\lib\libsfml-graphics-s-d.a(Texture.cpp.obj)||In function `ZN2sf7Texture6updateERKNS_6WindowEjj':|
F:\SFML-master\src\SFML\Graphics\Texture.cpp|400|undefined reference to `glBindTexture@8'|
F:\SFML-master\src\SFML\Graphics\Texture.cpp|401|undefined reference to `glCopyTexSubImage2D@32'|
F:\SFML-master\lib\libsfml-graphics-s-d.a(Texture.cpp.obj)||In function `ZN2sf7Texture9setSmoothEb':|
F:\SFML-master\src\SFML\Graphics\Texture.cpp|422|undefined reference to `glBindTexture@8'|
F:\SFML-master\src\SFML\Graphics\Texture.cpp|423|undefined reference to `glTexParameteri@12'|
F:\SFML-master\src\SFML\Graphics\Texture.cpp|424|undefined reference to `glTexParameteri@12'|
F:\SFML-master\lib\libsfml-graphics-s-d.a(Texture.cpp.obj)||In function `ZN2sf7Texture11setRepeatedEb':|
F:\SFML-master\src\SFML\Graphics\Texture.cpp|451|undefined reference to `glBindTexture@8'|
F:\SFML-master\src\SFML\Graphics\Texture.cpp|452|undefined reference to `glTexParameteri@12'|
F:\SFML-master\src\SFML\Graphics\Texture.cpp|453|undefined reference to `glTexParameteri@12'|
F:\SFML-master\lib\libsfml-graphics-s-d.a(Texture.cpp.obj)||In function `ZN2sf7Texture4bindEPKS0_NS0_14CoordinateTypeE':|
F:\SFML-master\src\SFML\Graphics\Texture.cpp|474|undefined reference to `glBindTexture@8'|
F:\SFML-master\src\SFML\Graphics\Texture.cpp|500|undefined reference to `glMatrixMode@4'|
F:\SFML-master\src\SFML\Graphics\Texture.cpp|501|undefined reference to `glLoadMatrixf@4'|
F:\SFML-master\src\SFML\Graphics\Texture.cpp|504|undefined reference to `glMatrixMode@4'|
F:\SFML-master\src\SFML\Graphics\Texture.cpp|510|undefined reference to `glBindTexture@8'|
F:\SFML-master\src\SFML\Graphics\Texture.cpp|513|undefined reference to `glMatrixMode@4'|
F:\SFML-master\src\SFML\Graphics\Texture.cpp|514|undefined reference to `glLoadIdentity@0'|
F:\SFML-master\src\SFML\Graphics\Texture.cpp|517|undefined reference to `glMatrixMode@4'|
F:\SFML-master\lib\libsfml-graphics-s-d.a(Texture.cpp.obj)||In function `ZN2sf7Texture14getMaximumSizeEv':|
F:\SFML-master\src\SFML\Graphics\Texture.cpp|528|undefined reference to `glGetIntegerv@8'|
F:\SFML-master\lib\libsfml-graphics-s-d.a(Texture.cpp.obj)||In function `ZN2sf7Texture12getValidSizeEj':|
F:\SFML-master\src\SFML\Graphics\Texture.cpp|559|undefined reference to `__GLEW_ARB_texture_non_power_of_two'|
F:\SFML-master\lib\libsfml-graphics-s-d.a(RenderTarget.cpp.obj)||In function `ZN2sf12RenderTarget5clearERKNS_5ColorE':|
F:\SFML-master\src\SFML\Graphics\RenderTarget.cpp|96|undefined reference to `glClearColor@16'|
F:\SFML-master\src\SFML\Graphics\RenderTarget.cpp|97|undefined reference to `glClear@4'|
F:\SFML-master\lib\libsfml-graphics-s-d.a(RenderTarget.cpp.obj)||In function `ZN2sf12RenderTarget4drawEPKNS_6VertexEjNS_13PrimitiveTypeERKNS_12RenderStatesE':|
F:\SFML-master\src\SFML\Graphics\RenderTarget.cpp|266|undefined reference to `glVertexPointer@16'|
F:\SFML-master\src\SFML\Graphics\RenderTarget.cpp|267|undefined reference to `glColorPointer@16'|
F:\SFML-master\src\SFML\Graphics\RenderTarget.cpp|268|undefined reference to `glTexCoordPointer@16'|
F:\SFML-master\src\SFML\Graphics\RenderTarget.cpp|277|undefined reference to `glDrawArrays@12'|
F:\SFML-master\lib\libsfml-graphics-s-d.a(RenderTarget.cpp.obj)||In function `ZN2sf12RenderTarget12pushGLStatesEv':|
F:\SFML-master\src\SFML\Graphics\RenderTarget.cpp|296|undefined reference to `glGetError@0'|
F:\SFML-master\src\SFML\Graphics\RenderTarget.cpp|306|undefined reference to `glPushClientAttrib@4'|
F:\SFML-master\src\SFML\Graphics\RenderTarget.cpp|307|undefined reference to `glPushAttrib@4'|
F:\SFML-master\src\SFML\Graphics\RenderTarget.cpp|309|undefined reference to `glMatrixMode@4'|
F:\SFML-master\src\SFML\Graphics\RenderTarget.cpp|310|undefined reference to `glPushMatrix@0'|
F:\SFML-master\src\SFML\Graphics\RenderTarget.cpp|311|undefined reference to `glMatrixMode@4'|
F:\SFML-master\src\SFML\Graphics\RenderTarget.cpp|312|undefined reference to `glPushMatrix@0'|
F:\SFML-master\src\SFML\Graphics\RenderTarget.cpp|313|undefined reference to `glMatrixMode@4'|
||More errors follow but not being shown.|
||Edit the max errors limit in compiler options...|
||=== Build failed: 50 error(s), 31 warning(s) (0 minute(s), 16 second(s)) ===|

J'ai essayé de tester quelques trucs n'ayant pas vraiment changé quoi que ce soit.

Bon j'ai peut être mal cherché je ne sais pas :S
En espérant que vous pouvez me guider, je vous remercie d'avance :)

4
Graphique / [Résolu]Bug graphique SFML2.0
« le: Avril 28, 2014, 01:25:15 am »
Bonsoir

Je fais appel à vous suite à un problème auquel je n'avais encore jamais eu affaire et je dois avouer que je sèche un peu, je suis depuis un long moment déjà, afin de m’entraîner en train de concevoir un moteur MMORPG 2D, tout fonctionne bien, ayant avancé j'ai décidé de le faire tester à plus grande échelle à plusieurs personnes en même temps afin de voir l'efficacité du serveur, bref tout fonctionne parfaitement bien pour tout le monde excepté une personne qui voit mon application s'afficher très étrangement c'est le moins que l'on puisse dire !

Voici à quoi ressemble l'application en temps normal :


Voici les différentes formes d'affichage après plusieurs exécution sur le même pc :

Première Exécution :


Seconde Exécution :


Troisième Exécution (l’arrière plan est le premiers draw comme si la map n’était pas dessiné):


Quatrième Execution:


Une cinquième exécution à était effectué avec un build sans vertexArray inutilisé au cas ou et compilé en Release obtenant la même chose que la première exécution..

Il semblerait que l'objet map qui est un dérive de sf::Drawable et sf::Transformable contenant plusieur VertexArray ne s'affiche pas correctement, le menu au lancement du moteur s'affiche correctement et l'HUD aussi.

Pour dessiner je dérive la méthode draw() dans ma classe :


///~ Dans l'objet
void Mapping::draw(sf::RenderTarget& target, sf::RenderStates states) const
{
    states.transform *= getTransform();
    states.texture = m_tileset;

    target.draw(m_tableauVertex1, states);
    target.draw(m_tableauVertex2, states);
    target.draw(m_tableauVertex3, states);
}


///~ Dans la boucle principale

        screen.clear();
            //Different screen.draw();
           
            screen.draw(*m_openedMap); //Dans ma classe principale m_openedMap est un pointeur

            //Different screen.draw();
        screen.display();

 

Le moteur est compilé avec SFML 2.0, ayant était compilé par moi même.

Je sais de plus que le matériel utilisé par cette ordinateur est une carte graphique ATI Radeon HD 5670 ainsi qu'un processeur Intel Core 2 duo tournant sur Windows XP Pro.

Six autres ordinateurs ont testé en même temps le moteur sans problème je sais que parmi ces cinq : Il y avait un Windows 8 Nvidia GTX760 Intel Core I7, un Windows 7 Nvidia GTX660 intel core i7, un Windows 7 Nvidia GTX560, ainsi que un Windows XP, pour le reste je ne connais pas leur configuration.

Voila je ne sais pas du tout de quoi cela peut venir, je précise de plus que cet ordinateur à déjà réussis à faire tourner sans problème ce moteur dans l'une de ses versions précédente, et qu'il sait faire tourner des jeux, notamment utilisant le moteur Source sans problèmes au dernière nouvelles.

Ma question est donc est-ce que ce problème peut il venir de SFML, comme par exemple les vertexArray constituant le tilemapping ou est ce un problème touchant l'ordinateur dont il est question ?

Si un supplément d'information vous est nécessaire je vous le fournirai dans la mesure du possible :P

Je vous remercie d'avance d'avoir pris le temps de lire ce topic  :) !
En vous souhaitant une excellente nuit !

5
Réseau / [Résolu] Détecter connexion perdu
« le: Avril 03, 2014, 10:13:46 pm »
Bonsoir !

Actuellement en train de construire deux applications serveur/client, certains problèmes peuvent avoir lieu comme par exemple la déconnexion inattendu du client (ou dans l'autre sens le serveur).
Dans SFML 1.6 dés qu'une de ces déconnexion avait lieu, il me semble que le sélecteur détecté une action.

J'ai fais le tour des méthodes pour les sf::TcpSocket sans trouver mon bonheur.
Ma question est donc pour SFML 2.0, y a t'il un moyen de détecter une déconnexion d'un socket ?

Merci beaucoup pour vos réponses et bonne soirée.

6
Réseau / [Résolu]Socket UDP et les Selecteurs
« le: Juillet 24, 2013, 10:02:39 pm »
Bien le Bonsoir !
Je cherche a utiliser un sélecteur avec des sockets UDP, mais je ne trouve pas d'exemple ou de tutoriel à ce sujet et par ce fait je ne suis pas certains dans ma façon de faire. J'ai effectué quelques testes mais je suis bloquer à un endroit. En effet pour un sélecteur gérant des sockets TCP nous avons sf::TcpListener, mais avec UDP nous n'avons pas de connexion et donc pas ce même genre d'outil. Ma question est comment peut on récupérer un nouveau socket UDP dans un sf::selector ou alors pouvez vous me rediriger s'il existe vers un tutoriel l'expliquant ou peut être dans une partie de la doc que je n'aurai pas vu.
Merci beaucoup et Bonne soirée ;)

7
EDIT : Ma résolution de problème à avancé je reformule ma question ci bas

Bonjour !
J'utilise actuellement les sockets UDP dans la communication de coordonnées, et je rencontre un problème.
Pour tester, j'ai deux applications, une serveur envoyant en permanence un paquet, et un client recevant ce paquet, en local tout fonctionne sans soucis le serveur envoie le client reçois et affiche le reçus, cepedant par Internet je ne reçois rien, le client attend.  J'utilise deux pc avec deux connexion internet différentes, côté serveur le port utiliser est bien ouvert en UDP.
J'utilise le port 35566.

Note : Une connexion en TCP fonctionne très bien que ce soit en local ou que se soit par internet.

Voici le code de mes deux applications de test :
Serveur :
/* Includes et namespaces */
int main()
{
    UdpSocket socket; //Socket UDP
    IpAddress ip = IP_CLIENT; //IP Client
    unsigned short port = 35566; //Port utilisé <OUVERT SUR LE ROUTEUR>

    Packet paquet;
    string mot("Bonjour");
    paq << mot;

    while(1)
    {
        socket.send(paquet,ip,port); //Envoie
        cout  << "Envoie : " << mot << endl;
    }

    return EXIT_SUCCESS;
}

Client :
/* Includes et namespaces */
int main()
{
    UdpSocket socket; //Socket UDP
    IpAddress ip = "IP_SERVEUR"; //IP du serveur
    unsigned short port = 35566; //Port

    socket.bind(35566);

    Packet paquet;
    string mot;

    while(1)
    {
        paquet.clear();

        if(socket.receive(paquet,ip,port) == sf::Socket::Done) //Reçus
        {
          paquet >> mot;
          cout << "Recus : " <<  mot << endl; //Affichage du reçus <Normalement "Bonjour">
        }

    }

    return EXIT_SUCCESS;
}

Un grand merci pour vos réponses !
Bonne soirée

EDIT :
Après essais et aide, j'ai eu l'occasion d'ouvrir les ports utiliser côter client, ça fonctionne. Apparament mon code serais plus un code client / client .
Citer
( le client ne se connecte pas au serveur, "ton serveur" envoie le paquet à l'adresse d' un client et si le port du client n'est pas ouvert, il ne le passera pas)

Ma question serait plus du genre : Aurait il un moyen moyen de communiquer sans ouvrir le port côter client ?

8
Graphique / Taille Font
« le: Juin 09, 2013, 01:07:34 pm »
Bonjour a tous !
Je viens a l'instant de passer de SFML 1.6 à SFML 2.0 et j'ai une question :
En effet dans la version précédente on pouvait/devait  avec un sf::Font lors de l'ouverture du fichier font donnée la taille en pixel de la grandeur de la police à charger. Pour après former une chaîne de caractère avec cette même taille. On obtenait donc une chaîne de taille correct "bien afficher". Dans SFML 2.0 on ne doit plus donné une taille a charger avec sf::Font (La taille correct serait charger automatiquement en fonction de la chaîne de caractère) cependant pour un texte en arial, de 10 pixel, l’écriture n'est pas belle elle est disons "pixeliser" sur SFML 1.6 j'obtenais le même résultat dans le cas ou je ne donné pas de taille a la déclaration de la police.

Ma question est : peut on donner un effet de flou sur les Fonts afin de "lisser" le rendu de celle ci. Ou y a t'il une manière de donnée manuellement la taille de la police (je n'ai pas trouver de method dans la doc afin de faire cela, mais il se peut que je l'ai louper)

Merci beaucoup pour vos réponse ;)

Pages: [1]