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 :

Directx dans une WinForm


Sujet :

DirectX

  1. #1
    Membre averti
    Homme Profil pro
    Technicien Qualité Logiciel
    Inscrit en
    Janvier 2010
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien Qualité Logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 44
    Par défaut Directx dans une WinForm
    Bonjour à tous,

    Ma question va peut être vous paraître bête, mais je voulais savoir s'il était possible d'inclure un composant Directx dans une WinForm.

    Pour vous donnez un exemple, je me suis amusé à créer un éditeur de carte en 2D, que je l'ai réalisé en VB.net.

    Aujourd'hui je voudrais utiliser Directx pour la partie graphique, car actuellement j'utilise le GUI, donc je me suis intéressé à Directx en lisant des tutos et en faisant des exercices.

    Donc voilà, est-il possible d'avoir une WinForm qui va me permettre d'avoir tous les outils de l'éditeur, puis dans cette form une "image" gérer en Directx ??
    Car pour l'instant je sais juste créer une fenêtre Directx et afficher des sprites ou dessiner des formes à l'intérieur.

    Je vous remercie.
    Cryo.

  2. #2
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 30
    Par défaut
    Réponse courte: Oui

    :p

    Réponse longue, mais peut être incorrecte (c'est la méthode que j'utilise actuellement)

    Toutes tes fonctions / variables directx tu les balances dans une classe qui hérite de Windows.Form.Panel (par exemple)

    Ensuite pour la description de ta SwapChain:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    var description = new SwapChainDescription()
    {
           ....
                    OutputHandle = Handle,
                    IsWindowed = false,
           ....
     };
    Ta classe MyPanel devra avoir une fonction Draw qui sera appelée pour dessiner l'affichage

    Et quelque part dans ton application, tu dois avoir une boucle Application.(...) je crois ... dedans tu fais appel a ta fonction Draw()
    Du genre pour moi avec SlimDX:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    MessagePump.Run(this, () =>
    {
    	MyPanel.Draw();
    });
    J'ai fait ça un peu en bidouillant, donc je sais pas si c'est efficace ni sémantiquement correct, mais ça fonctionne ...

  3. #3
    Membre averti
    Homme Profil pro
    Technicien Qualité Logiciel
    Inscrit en
    Janvier 2010
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien Qualité Logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 44
    Par défaut
    Bonjour qventura,

    Je vous remercie de votre réponse et encore plus pour votre exemple car du coup en effet ça fonctionne nikel comme ça.

    Bonne journée.

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 30
    Par défaut
    Attention tout de même !
    Chez moi mon petit logiciel (de merde, on peut le dire) me bouffe 50% de ma charge CPU ... Soit le total sur un des coeur du processeur en fait !
    Doit y'avoir un petit problème dans ce que je fais En tout cas heureux d'avoir pu aider

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Joueur
    Inscrit en
    Novembre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Joueur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2011
    Messages : 3
    Par défaut Directx dans une WinForm
    Il faut télécharger sur le site de Microsoft le SDK de DirectX for Managed ou quelque chose comme ça. Ensuite, cliquer-droit sur le projet et aller sur référence. Là, il faut cliquer sur Ajouter un nouvelle référence. Dans l'onglet .NET, cliquer sur Microsoft.DirectX ou quelque chose comme ça et faire OK.

    Et voilà !

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

Discussions similaires

  1. Exécuter un logiciel dans une WinForm
    Par molo2003 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 13/10/2008, 15h58
  2. Réponses: 2
    Dernier message: 30/04/2008, 15h29
  3. réalisation de courbes dans une winform avec vb.net
    Par terminal001 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 29/03/2008, 01h05
  4. VLC dans une Winform
    Par goddet dans le forum Windows Forms
    Réponses: 2
    Dernier message: 18/12/2007, 15h36
  5. [C#]Edition de fichiers office dans une winform
    Par cyrille_naert dans le forum Windows Forms
    Réponses: 2
    Dernier message: 02/01/2007, 16h50

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