Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: [Résolu][SFML2] bug avec RenderTexture?  (Lu 5304 fois)

0 Membres et 1 Invité sur ce sujet

nours59

  • Newbie
  • *
  • Messages: 15
    • Voir le profil
[Résolu][SFML2] bug avec RenderTexture?
« le: Juin 02, 2012, 03:25:46 pm »
Bonjour  :)

Je me permets de créer un post car je n'ai pas réussi à trouver un sujet en rapport avec mon erreur...

En fait le souci que je rencontre se présente dès que j'utilise un RenderTexture pour afficher à l'écran. Je vous montre le code que j'ai réalisé pour tester:
#include <SFML/Graphics.hpp>
#include <string>
#include <iostream>

int main(int argc, char* argv[])
{
    sf::RenderWindow app(sf::VideoMode(800, 600, 32), "test");

    sf::Texture texture;
    texture.loadFromFile("tileTest2.png");
    sf::Sprite sprite;
    sprite.setTexture(texture);

    sf::RenderTexture rendertxt;
    rendertxt.create(160, 80);

    while(app.isOpen())
    {
        rendertxt.clear();
        rendertxt.draw(sprite);
        rendertxt.display();

        sf::Event m_event;
        while(app.pollEvent(m_event))
            if(m_event.type == sf::Event::Closed) app.close();

        app.clear();

        sf::Sprite sprite2;
        sprite2.setTexture(rendertxt.getTexture());

        app.draw(sprite2);

        app.display();
    }
    return EXIT_SUCCESS;
}
 

Avec ce code, j'obtiens une image complètement décalée:



J'ai testé l'affichage du tout premier Sprite sans passer par le RenderTexture, et j'obtiens mon image complète qui est composée de 8 tiles, en position [0,0] comme cela doit se produire normalement...

J'ai déjà tenté les setPosition, setTextureRect, etc etc, car au départ je pensais que j'avais mal fait quelque chose, mais cela ne change visiblement pas grand chose...

Pour informations, je travaille avec la RC de SFML2, et je dispose d'une carte ATI Radeon HD 6490, qui travaille avec openGL version 9 je crois (je ne sais plus où retrouver l'info  :P ).

J'ai remarqué que les cartes ATI posaient pas mal de problèmes sur le bug tracker, serait-ce la cause?
Sinon, quelqu'un aurait-il une idée d'où ce problème viendrait?

Merci d'avance.
« Modifié: Juin 08, 2012, 02:53:23 pm par nours59 »

nours59

  • Newbie
  • *
  • Messages: 15
    • Voir le profil
Re : [SFML2] bug avec RenderTexture?
« Réponse #1 le: Juin 07, 2012, 03:22:35 pm »
Je me permets de faire remonter le sujet

J'aurais vraiment aimé avoir un avis sur le problème...
D'autre part je me suis rendu compte de ma boulette: ma carte graphique n'est pas une ATI mais une AMD  ;D

J'ai tenté la MAJ des pilotes mais cela n'a strictement rien changé...

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : [SFML2] bug avec RenderTexture?
« Réponse #2 le: Juin 07, 2012, 03:41:58 pm »
Citer
D'autre part je me suis rendu compte de ma boulette: ma carte graphique n'est pas une ATI mais une AMD
C'est pareil ::)

Sinon, quel est ton OS ?
Laurent Gomila - SFML developer

Cpl.Bator

  • Hero Member
  • *****
  • Messages: 540
    • Voir le profil
Re : [SFML2] bug avec RenderTexture?
« Réponse #3 le: Juin 07, 2012, 06:21:19 pm »
essaye avec une texture de 192x192 ?
les cartes pourries n'aiment pas les textures qui ne sont pas "carré"

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : [SFML2] bug avec RenderTexture?
« Réponse #4 le: Juin 07, 2012, 07:03:40 pm »
Dans ce cas autant taper dans les puissances de 2 (128, 256, ...) ;)
Laurent Gomila - SFML developer

nours59

  • Newbie
  • *
  • Messages: 15
    • Voir le profil
Re : [SFML2] bug avec RenderTexture?
« Réponse #5 le: Juin 07, 2012, 08:19:06 pm »
Je suis sous windows 7 (sp1), sur un pc HP DV6 (avec un core i5, 4Go RAM et la carte graphique sus-citée) et je bosse avec code::blocks (svn 7932, mais je ne pense pas que le fait que j'utilise les nightly builds en lieu et place de la version 10.05 influerait; dites moi si je me trompe).

J'ai tenté de passer le projet sur un pc qui est sous ubuntu, mais impossible de faire fonctionner SFML, j'ai droit à un beau message d'erreur "INTEL_DO_FLUSH_LOCKED failed" à l'exécution...
je suis maudit je crois  :'(

Pour ce qui est des textures, ce sont en fait des tiles de 40*40px. J'ai juste essayé d'afficher le tileSet sans le découper et cela donne la même chose...
Voici ce que j'obtiens quand je "créé" une map avec le RenderTexture:



Au risque de me répéter, quand je ne passe pas par un RenderTexture, je n'ai pas le pb, tout s'affiche correctement

Merci en tout cas de vous être penchés sur le sujet  ;)
« Modifié: Juin 07, 2012, 08:34:45 pm par nours59 »

Cpl.Bator

  • Hero Member
  • *****
  • Messages: 540
    • Voir le profil
Re : [SFML2] bug avec RenderTexture?
« Réponse #6 le: Juin 07, 2012, 08:45:19 pm »
as tu essayer comme laurent à dit , puissance de 2 ? 16x16, 32x32, 64x64, etc...


edit:

pour ton "INTEL_DO_FLUSH_LOCKED failed" , pb de drivers.

nours59

  • Newbie
  • *
  • Messages: 15
    • Voir le profil
Re : [SFML2] bug avec RenderTexture?
« Réponse #7 le: Juin 08, 2012, 07:56:21 am »
En effet cela fonctionne sans pb quand je mets les dimensions en puissance de 2  :o
Mais pourquoi donc?

Je ne me vois pas vraiment changer tout mon tileSet pour corriger un souci de ce genre...

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : [SFML2] bug avec RenderTexture?
« Réponse #8 le: Juin 08, 2012, 08:10:53 am »
C'est un bug complexe, mais il sera corrigé tôt ou tard (dans SFML 2.1 si possible).
Laurent Gomila - SFML developer

Cpl.Bator

  • Hero Member
  • *****
  • Messages: 540
    • Voir le profil
Re : [SFML2] bug avec RenderTexture?
« Réponse #9 le: Juin 08, 2012, 08:35:54 am »
C'est surtout une limitation hardware.

@Laurent , comment veut tu corriger cela ?
si la carte de supporte pas se genre d’extension , tu veut faire des textures qui deviennent carrés au chargement ?



Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : [SFML2] bug avec RenderTexture?
« Réponse #10 le: Juin 08, 2012, 08:38:28 am »
Citer
@Laurent , comment veut tu corriger cela ?
si la carte de supporte pas se genre d’extension , tu veut faire des textures qui deviennent carrés au chargement ?
sf::Texture le gère déjà (c'est pas dur d'avoir une texture interne en puissance de deux tout en montrant à l'utilisateur les bonnes dimensions), donc a priori y a pas de raison pour que sf::RenderTexture ne puisse pas le gérer.
Laurent Gomila - SFML developer

nours59

  • Newbie
  • *
  • Messages: 15
    • Voir le profil
Re : [SFML2] bug avec RenderTexture?
« Réponse #11 le: Juin 08, 2012, 02:52:48 pm »
ok, j'éviterai donc d'utiliser les RenderTexture jusqu'à la prochaine MAJ
Merci en tout cas d'avoir éclairé ma lanterne  ;D

Raitosan

  • Full Member
  • ***
  • Messages: 221
    • Voir le profil
    • E-mail
Re : [Résolu][SFML2] bug avec RenderTexture?
« Réponse #12 le: Mars 17, 2013, 04:43:04 pm »
RenderTexture à l'abscisse d'inverser par rapport à d'habitude, ça viendrais peut être de là le décalage non?
J'ai aussi u ce problème car j'avais oublier d'inverser les coordonnées.

Edit: Perso, ça m'inverse carrement l'image en y
« Modifié: Mars 17, 2013, 04:55:56 pm par Raitosan »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : [Résolu][SFML2] bug avec RenderTexture?
« Réponse #13 le: Mars 17, 2013, 05:03:25 pm »
Normalement ça n'inverse l'image que si tu oublies d'appeler renderTexture.display(). Sinon, c'est un bug qu'il faut me rapporter.
Laurent Gomila - SFML developer

Raitosan

  • Full Member
  • ***
  • Messages: 221
    • Voir le profil
    • E-mail
Re : [Résolu][SFML2] bug avec RenderTexture?
« Réponse #14 le: Mars 17, 2013, 05:39:16 pm »
Ah voila, avec le display c'est nickel :)
Merci Laurent!