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

Framework .NET Discussion :

[.NET] Dessiner en .NET


Sujet :

Framework .NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 55
    Par défaut [.NET] Dessiner en .NET
    Bonjour,

    Petite question sur la philosophie du dessin avec .NET

    Je programme habituellement sur MacOS, et sur ce dernier, l'élément de base pour le dessin est une vue (NSView) qui permet d'accéder à la couche graphique et de dessiner. Sous-classée en NSOpenGLView, on peut y faire de l'OpenGL. En fait, on crée une toujours une sous-classe personnelle de NSView et on redéfinit sa méthode drawRect:, méthode qui est appelée automatiquement à chaque fois que la vue doit être rafraîchie.

    Comme je n'ai jamais utilisé les MFC, ni GDI+, je suis un peu perdu dans .NET pour faire la même chose.
    Mes recherches m'amènent à penser que le système est assez semblable : on peut récupérer le graphic context d'un System::Forms::Control et dessiner dedans. Je pourrais donc par exemple dessiner ce que je veux dans une PictureBox.
    Ce qui m'étonne, c'est qu'il ne semble pas exister de contrôle "neutre" qui n'a que pour vocation d'être utilisé comme zone de dessin. Le PictureBox est-il un choix pertinent ?
    De plus, je ne comprends pas où intervient DirectX là dedans.
    Comment puis-je en .NET avoir une zone de dessin DirectX (pour le 2D ou 3D) qui ne soit pas une fenêtre entière mais juste une portion de cette fenêtre ?

    Merci

    +
    Pierre

    [Edit]
    En glanant des infos supplémentaires, j'ai l'impression que GDI+ correspond à Quartz pour MacOS (API de dessin 2D) et n'est aucunement reliée à DirectX. Mais je suis toujours avide d'explications sur le rôle de DirectX dans une interface graphique.

  2. #2
    Membre éprouvé
    Inscrit en
    Avril 2007
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 77
    Par défaut
    Bonjour,
    je ne crois pas qu'il existe de composant dédié au dessin. Cependant, un panel me parait indiqué pour tes besoins (zone que tu place où tu veux et qui n'apparait pas s'il n'y a rien de dessiné dedans).
    Le dessin dans un Graphics (Graphics.Draw...()) n'utilise pas DirectX. Mais si tu veux utiliser DirectX, tu peux le faire dans un control (donc directement dans une fenetre, ou dans un panel...)

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 55
    Par défaut
    Citation Envoyé par clochettes Voir le message
    Bonjour,
    je ne crois pas qu'il existe de composant dédié au dessin. Cependant, un panel me parait indiqué pour tes besoins (zone que tu place où tu veux et qui n'apparait pas s'il n'y a rien de dessiné dedans).
    Le dessin dans un Graphics (Graphics.Draw...()) n'utilise pas DirectX. Mais si tu veux utiliser DirectX, tu peux le faire dans un control (donc directement dans une fenetre, ou dans un panel...)
    OK pour le Panel.
    Je suis en train de lire une doc de GDI+, donc je comprends comment mieux comment ça fonctionne. Par contre, je ne sais pas comment s'utilise DirectX. On récupère un contexte aussi ?

  4. #4
    Membre éprouvé
    Inscrit en
    Avril 2007
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 77
    Par défaut
    Pour "dessiner" avec DirectX, tu utilise un Device. Lorsque tu crée ce Device, tu lui indique un Control. C'est dans ce Control que seront affichés les éléments de ta scène. Pour plus d'info, je te conseille ce tuto :
    http://funkydata.developpez.com/csha.../presentation/

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 55
    Par défaut
    Citation Envoyé par clochettes Voir le message
    Pour "dessiner" avec DirectX, tu utilise un Device. Lorsque tu crée ce Device, tu lui indique un Control. C'est dans ce Control que seront affichés les éléments de ta scène. Pour plus d'info, je te conseille ce tuto :
    http://funkydata.developpez.com/csha.../presentation/
    Ok, merci !
    Je suis en C++/CLI, mais je pense que ça reste valable et que ça s'adapte facilement.

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 103
    Par défaut
    il te faut les extensions managées pour DirectX deja.

    Ensuite en ce qui concerne le control... panel n'est pas obligatoire. En réalité la seule chose qui fait qu'un panel a de l'intéret c'est que c'est avant tout un conteneur... mais tu peux dériver directement de UserControl... le principe reste exactement le meme.

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    comment s'utilise DirectX
    Il te faut le DirectX SDK, qui inclut le support .NET depuis sa version 9

Discussions similaires

  1. Réponses: 0
    Dernier message: 29/10/2009, 16h22
  2. Réponses: 6
    Dernier message: 04/11/2008, 09h51
  3. [VS .NET] Dessiner un graphique
    Par joujoukinder dans le forum Visual Studio
    Réponses: 2
    Dernier message: 15/05/2005, 20h12
  4. [VB.NET] Dessiner plusieurs rectangles.
    Par Emcy dans le forum Windows Forms
    Réponses: 9
    Dernier message: 23/03/2005, 16h57

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