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

DirectX Discussion :

[VC++6][DX9] Problème de thread lors d'un blit ...


Sujet :

DirectX

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2002
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 14
    Points : 13
    Points
    13
    Par défaut [RESOLU][VC++6][DX9] Problème de thread lors d'un blit ...
    Salut !

    Voilà mon but est de faire un petit moteur 2D pour utilisation personnelle. J'ai créé un header contenant deux classes. Une qui représente un "set" de surfaces (des ensembles contenant plusieurs surfaces pour la gestion des sprites) et une autre qui est la classe du moteur 2D.
    Je crée donc ma nouvelle classe principale dans mon programme, jusque là sans problèmes. Je crée un set de surfaces, ok, et je charge un bitmap dans une surface offscreen sans problème.

    C'est lors de la copie de l'offscreen vers l'écran que ca foire :
    - J'accède à ma surface via une fonction de la classe de set de surface
    - Je prends la taille, la position, etc.
    - J'effectue un BltFast sur la surface primaire

    Et la si je lance mon programmeje vois rien. Si je mets un message d'erreur si échec du blitting il apparait et si je précise le message d'erreur, il me dit "Access to this surface is being refused because the surface is already locked by another thread."

    Si quelqu'un pouvait m'aider ce serait vraiment trop cool, et en même temps (vous allez p-e rire) qqn pourrait m'expliquer ce qu'est exactement un "thread" ? J'ai pas cette notion et ca me joue parfois des tours.

    Merci beaucoup
    GranDjouff

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 22
    Points : 26
    Points
    26
    Par défaut
    Difficile à dire sans voir le code source mais je suppose que tu veux dire par:
    J'accède à ma surface via une fonction de la classe de set de surface
    Si tu lock la surface, as-tu bien pensé à la Unlock après ? C'est peut-être pour ça que tu ne peut pas faire de Blt après.

    Essaye également de passer le flag: DDBLTFAST_WAIT à la fonction BltFast.

    Thread: Processus léger, correspondant à l'exécution d'un petit programme, ou d'une routine d'un programme plus gros, indépendamment de celui-ci (la definition est obtenu de ce site: http://www.tout-savoir.net/lexique.php?rub=definition&code=7461).

    Voila, bonne chance.

  3. #3
    Membre à l'essai
    Inscrit en
    Août 2002
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 14
    Points : 13
    Points
    13
    Par défaut
    Merci beaucoup, mais ce n'était pas ca.

    J'ai tout recommencé, réécris entièrement mon programme et ca fonctionne. J'arrive à afficher plusieurs surfaces en même temps mais j'ai juste un dernier petit problème : le scintillement ! Quand je bouge ma souris ou que j'appuye sur une touche l'écran scintille. Je vais tenter de tirer ca au clair.

    Merci de ta réponse quand même, je saurais au moins ce qu'est un thread dorénavant ...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de pile lors de l'exécution de threads
    Par cueffic dans le forum Linux
    Réponses: 7
    Dernier message: 29/11/2008, 17h54
  2. problème de cache lors du chargement d'applet
    Par ellocin dans le forum Applets
    Réponses: 4
    Dernier message: 05/04/2007, 12h31
  3. [MFC] Problème de Threads + Timers
    Par Invité dans le forum MFC
    Réponses: 8
    Dernier message: 30/11/2005, 10h51
  4. Problème avec OpenEx lors d'un enregistrement
    Par jessy82 dans le forum MFC
    Réponses: 1
    Dernier message: 05/04/2005, 19h44
  5. Réponses: 9
    Dernier message: 04/03/2005, 13h58

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