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 :

Utiliser une image DirectX avec GDI?


Sujet :

DirectX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Septembre 2006
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 28
    Par défaut Utiliser une image DirectX avec GDI?
    Bonjour
    Je souhaite généré une image (2D/3D) en utilisant un renderer DirectX puis rajouter les overlays (par exemple: texte, lignes, etc...) en utilisant GDI (pour limiter le problème de pixelisation des polices si j'effectuais l'ensemble avec DirectX), dans le but d'imprimer le tout (en utilisant l'API de Windows).
    La difficulté principale vient du fait que j'aimerai effectué ce rendu DirectX dans une résolution supérieure à celle de mon écran (RenderTarget?) afin de pouvoir obtenir une qualité. Qqn peut-il me conseiller, je ne suis pas encore à l'aise avec DirectX. Merci d'avance

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Il faut effectivement que tu crées une render target de la taille voulue. Il n'y a rien de vraiment compliqué, et la doc est suffisamment bavarde à ce sujet.

  3. #3
    Membre averti
    Inscrit en
    Septembre 2006
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 28
    Par défaut
    Merci. Oui, j'ai deja trouve de la doc concernant un Rendertarget, mais pas sur comment faire l'interface entre ce Rendertarget et une entrée utilisable pour GDI. Si qqn un pseudocode (ou même des mots clefs, qui puissent me faire avancer). Merci pour cette aide si rapide.

  4. #4
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Si c'est pour imprimer je suppose que tu n'as plus besoin de DirectX une fois ton rendu effectué ? Donc le plus simple serait peut-être de récupérer la contenu de la render target en mémoire et de gérer comme bon te semble ensuite, non ?

    Dans le cas contraire, il y a IDirect3DSurface9::GetDC qui pourrait t'intéresser.

  5. #5
    Membre averti
    Inscrit en
    Septembre 2006
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 28
    Par défaut
    Citation Envoyé par Laurent Gomila
    Si c'est pour imprimer je suppose que tu n'as plus besoin de DirectX une fois ton rendu effectué ? Donc le plus simple serait peut-être de récupérer la contenu de la render target en mémoire et de gérer comme bon te semble ensuite, non ?
    Tout a fait. Pour avoir une qualité d'impression suffisante, il faut que j'effectue le rendering dans une RenderTarget ayant une résolution assez élevée (ex: 2000 x 2000). Une fois cela fini, je transfere le contenu dans un buffer géré par GDI, j'y rajoute mes informations et j'envoie à l'impression. Si j'ajoute les informations directement avec DIRECTX, alors je vais avoir un problème pour l'impression du texte, donc la résolution ne sera pas adapté. Alors qu'avec GDI, ce problème est évité (l'impression d'une primitive texte est gérée directement, afin de s'adapter à la taille et résolution de l'impression).
    Donc tout cela, c'est ce que je veux faire. Sauf que je n'arrive pas (encore) à trouver comment gérer cela entre DirectX et GDI.

  6. #6
    Inactif  

    Homme Profil pro
    Ingénieur test de performance
    Inscrit en
    Décembre 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur test de performance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 986

  7. #7
    Membre averti
    Inscrit en
    Septembre 2006
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 28
    Par défaut
    Citation Envoyé par moldavi
    Merci. Je l'avais déjà lu. Il ne traite qu'indirectement de ce qui m'intéresse (pas de mélange entre DirectX et GDI et on travaille toujours avec une résolution égale à celle de l'écran).

  8. #8
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Je suppose donc que le plus simple, si tu disposes déjà de ce qu'il faut côté GDI pour recevoir ton image, sera de récupérer le HDC de ta render target et d'en faire un blit vers ton HDC perso (ou bien de faire la copie à la main).
    Qu'est-ce qui te pose problème exactement ?

Discussions similaires

  1. Utiliser une image de marqueurs avec cvWatershed
    Par SteveM dans le forum OpenCV
    Réponses: 0
    Dernier message: 09/11/2009, 16h14
  2. Réponses: 6
    Dernier message: 15/11/2007, 12h31
  3. Utiliser une image pour un événement avec swing/awt
    Par Tavarez59 dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 23/03/2007, 09h39
  4. Réponses: 7
    Dernier message: 24/01/2007, 10h09
  5. Charger et afficher une image jpg avec les mfc
    Par glop - pas glop dans le forum MFC
    Réponses: 3
    Dernier message: 11/02/2004, 18h59

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