IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SDL Discussion :

déplacer une image sans la blitter


Sujet :

SDL

  1. #1
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 266
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 266
    Points : 6 688
    Points
    6 688
    Billets dans le blog
    2
    Par défaut déplacer une image sans la blitter
    Salut tout le monde,

    voilà le défi que je vous propose:
    -> créer une fenêtre SDL
    -> y coller (blit) une image de votre choix
    -> implémenter un mécanisme quelconque pour faire bouger cette image (avec les touches clavier, ou un timer, ou ce que vous voulez)
    -> faire bouger cette image dans la fenêtre sans utiliser de blit (fonction SDL_BlitSurface)

    Pour ma part, je n'y arrive pas. Et à vrai dire, je ne sais même pas si c'est possible.

    En fait, la raison de cette question est la suivante: le principal problème de la SDL c'est que le blit est trop lent (et ce, d'autant plus lorsqu'on utilise la transparence). Et effectivement, là je suis sur une appli où ça pose problème. Si on arrivait à faire bouger notre image de fond sans faire de blit, je pense que ça devrait pouvoir résoudre notre problème.

  2. #2
    Expert confirmé
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 537
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 537
    Points : 5 222
    Points
    5 222
    Par défaut
    à mon avis, ce n'est pas possible de déplacer un sprite sans faire de blit
    si tu te trouves dans une situation où la SDL montre ses limites en terme de rapidité d'affichage, les seules options qui me viennent à l'esprit sont :
    - écrire ta propre méthode de blit optimisée au poil (pas certain que ça soit plus rapide que la SDL)
    - passer sur une autre bibliothèque qui utilise mieux le hardware comme la SFML qui se sert d'OpenGL pour le rendu

  3. #3
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 266
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 266
    Points : 6 688
    Points
    6 688
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par shenron666 Voir le message
    - écrire ta propre méthode de blit optimisée au poil (pas certain que ça soit plus rapide que la SDL)
    Je n'ai pas les compétences pour faire ça. Ca a l'air de rien, mais c'est vraiment pas simple. Déjà rien que faire ma propre version, je ne suis vraiment pas sûr d'y arriver... alors mieux que la SDL

    Citation Envoyé par shenron666 Voir le message
    - passer sur une autre bibliothèque qui utilise mieux le hardware comme la SFML qui se sert d'OpenGL pour le rendu
    Pas d'autre propositions?

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 923
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 923
    Points : 220 590
    Points
    220 590
    Billets dans le blog
    128
    Par défaut
    Ce que tu demande est très étonnant. Bref il se peux que tu en ai besoin, mais peut être que tu peux optimiser ton code actuel ? ( enfin ... bon c'est une idée ... )

    Si vraiment le déplacement d'une texture sans blit t'interesse, je pense qu'il faudrait arriver à avoir un pointeur sur les pixels de la fenêtre.
    Et après si tu veux un scrolling de ton background il faut tout déplacer. Mais le problème c'est que la SDL offre cette possibilité d'acceder à l'ecran , mais avec quelque contrainte , et de mémoire c'est super lent ... ( ou je suis super nul ... )

    Donc je ne pense pas que tu puisse faire beaucoup mieux. ( ou alors je veux aussi la solution )

  5. #5
    Rédacteur

    Avatar de loka
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    2 672
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 672
    Points : 5 509
    Points
    5 509
    Par défaut
    Tu parles de blit trop lent, pourquoi ?

    -> image trop grosse ? tu peux voir pour la découper

    -> "animation" de déplacement fait avec les blit répétés qui prend trop de ressources (et donc deviens lent) ?

    Tu peux essayer de voir avec des bibliothèques annexe à SDL comme SDL_anim (pas essayé), SDL_oglblit (qui passe par OpenGL pour être plus rapide comme le fait SFML).
    Tu peux passer par OpenGL (qui s'interface très bien avec SDL).

    En esperant que ça puisse t'aider

  6. #6
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 266
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 266
    Points : 6 688
    Points
    6 688
    Billets dans le blog
    2
    Par défaut
    Merci loka

    En fait, je ne sais pas trop d'où vient mon problème de "saccade" de mon background. Il n'est pas gros et je tourne à 20 fps.

    Du coup, j'ai commencé à fouiner du côté d'openGL, mais maintenant, si je n'ai plus de problème d'affichage, j'ai de sérieux problèmes d'interfaçage de bibliothèques.

    Je suis en train d'essayer d'intégrer une "sous-fenêtre" IrrLicht dans une fenêtre SFML... spô gagné

  7. #7
    Rédacteur

    Avatar de loka
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    2 672
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 672
    Points : 5 509
    Points
    5 509
    Par défaut
    Ah oui

    Pour intégrer une sous fenêtre Irrlich dans une fenêtre SFML... Je pense qu'il va te falloir voir avec laurent (l'ancien responsable qui a créé SFML).

Discussions similaires

  1. Afficher une image sans URL dans un forum
    Par Vanesse dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 2
    Dernier message: 01/03/2006, 18h55
  2. [Image] Connaitre les dimensions d'une image sans la charger
    Par FredN dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 16/01/2006, 13h06
  3. Réponses: 7
    Dernier message: 19/12/2005, 09h54
  4. [J2ME][MIDlet]rafraichir une image sans toucher au form?
    Par noobiewan kenobi dans le forum Java ME
    Réponses: 1
    Dernier message: 05/09/2005, 10h54
  5. Afficher une image sans passer par les textures
    Par Black_Daimond dans le forum DirectX
    Réponses: 3
    Dernier message: 09/05/2003, 20h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo