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

C# Discussion :

C# + DirectX + Visual Studio 2012


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 198
    Par défaut C# + DirectX + Visual Studio 2012
    Bonjour,

    Y-a-t-il un moyen de programmer DirectX avec du C# sous visual studio 2012 ?

    J'ai trouvé des tutos (video) que j'ai suivi avec VS2010, mais je n'ai aucun exemple qui fonctionne.

    La compilation fonctionne, mais quand j'execute j'ai un message qui dit que l'application a cessé de fonctionné, avec nom d'évènement du problème CLR20r3. Après je ne peux que "fermer" le programme.

    Aucune erreur n'est signalé pas VS, du coup ben comme je découvre DirectX, je ne sais pas ce qui va pas.

    Je mets le code que j'ai essayé au cas où:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using Microsoft.DirectX;
    using Microsoft.DirectX.Direct3D;
     
    namespace Simple_fenetre_directx_3
    {
        public partial class Form1 : Form
        {
            private Device device = null;
     
            public Form1()
            {
                InitializeComponent();
                InitializeDevice();
            }
     
            private void InitializeDevice()
            {
                PresentParameters pp = new PresentParameters();
                pp.Windowed = true;
                pp.SwapEffect = SwapEffect.Discard;
                device = new Device(0, DeviceType.Reference, this, CreateFlags.SoftwareVertexProcessing, pp);
            }
     
            protected override void OnPaint(PaintEventArgs e)
            {
                device.Clear(ClearFlags.Target, Color.CornflowerBlue, 0, 1);
                device.Present();
            }
     
        }
    }
    Bref, si quelqu'un a un lien qui amène sur un tuto qui fonctionne pour démarrer avec C# + DirectX + VS2012, je suis preneur ! ...

  2. #2
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 198
    Par défaut
    C'est du DirectX direct que je voudrai tester.

    J'ai vu un tuto sous VS2010, ou le gars ne faisait qu'insérer les références de DirectX (DirectX et Direct3D), pas faisable sous VS2012 ?

  4. #4
    Membre confirmé

    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juillet 2009
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Juillet 2009
    Messages : 62
    Par défaut
    Pourquoi ne veux tu pas utiliser SharpDX ?

    Car comme indiqué sur leur site :

    SharpDX is an open-source project delivering the full DirectX API under the .Net platform, allowing the development of high performance game, 2D and 3D graphics rendering as well as realtime sound application.

    SharpDX is built with a custom tool called SharpGen able to generate automatically a .NET API directly from the DirectX SDK headers, thus allowing a tight mapping with the native API while taking advantages of the great strength of the .Net ecosystem.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 198
    Par défaut
    Simplement parce que si demain ou dans 3 mois, 1 an ou 5 ans le projet SharpDX est abandonné comme il y en a eu beaucoup d'autres, j'aurai passé du temps à bosser dessus pour rien. La dernière news date du 16 Septembre 2013 soit 4 mois, et le 28 Août ils annoncent qu'ils ferment le forum après 1 an parce que ca leur prend trop de temps, et qu'ils ne bossent pas que sur SharpDX, mais aussi d'autres projets externes. Pour la faire court, je suis plutôt sceptique quand à l'avenir de SharpDX.

    Je cherche une solution pérenne, je me suis mis au C# que j'aime beaucoup, et la seule chose qu'il me manque, c'est une solution pour dév des petits jeux/editeur de level, etc .. dans un environnement que je vais utiliser couramment et surtout une solution qui ne sera pas abandonné à court terme, dans 6 mois ou 2 ans ou 4 ans.

    Donc, pour revenir au sujet initial, est-il possible "d'attaquer" du directx avec C# + VS2012 (ou VS2013, je vais l'avoir bientôt...) en direct ? Comme je disais, j'ai trouvé des tutos en vidéos sous VS2010, mais rien sous VS2012 qui fonctionne.

    Une solution ? ....

  6. #6
    Membre Expert
    Avatar de PixelJuice
    Homme Profil pro
    Ingénieur .NET & Game Designer
    Inscrit en
    Janvier 2014
    Messages
    661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur .NET & Game Designer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 661
    Par défaut
    Installer le Windows 8 SDK pourrait résoudre le problème , vu que Microsoft a inclut le SDK DirectX pour Visual studio 2012 dedans (d’après ce que j'ai lu il n'y a pas très longtemps , mais je ne garantis rien.

    Si c'est déjà fait alors je ne sais pas désolé .

    Pour en revenir aux technologies "mortes" , je ne vois pas le problème ,il y a des tas de gens , même commerciaux , qui utilisent des frameworks / moteurs / etc , qui ne sont pu a jour , quel est donc le soucis ? Personnellement j'utilise XNA (que je te conseille fortement , il est idéal pour débuter et il permet de faire des jeux de qualité commerciale) et il n'est plus officiellement a jour , mais il y a déjà tout ce qui faut pour m'aider a faire un jeu.

  7. #7
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 532
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 532
    Par défaut
    Citation Envoyé par Unkof Voir le message
    Simplement parce que si demain ou dans 3 mois, 1 an ou 5 ans le projet SharpDX est abandonné comme il y en a eu beaucoup d'autres, j'aurai passé du temps à bosser dessus pour rien. La dernière news date du 16 Septembre 2013 soit 4 mois, et le 28 Août ils annoncent qu'ils ferment le forum après 1 an parce que ca leur prend trop de temps, et qu'ils ne bossent pas que sur SharpDX, mais aussi d'autres projets externes. Pour la faire court, je suis plutôt sceptique quand à l'avenir de SharpDX.

    .
    tu as parfaitement raison ,les solutions tierces ( comme SharpDX ou SDL.. ),c'est à éviter parce que comme tu l'écris si la couche logicielle est abandonnée il faut refaire tout le travail...
    C'est comme les entreprises qui veulent migrer leur projet de Delphi ou VB6 vers dotNET ça coûte une fortune.

    Ce que tu as intérêt à faire c'est des classes qui font abstraction des accès matériels( son,affichage..) comme ça si tu veux faire évoluer ton jeu , il n'y pas beaucoup de code à réecrire.

    Maintenant pour répondre à ta question as-tu essayé de compiler avec une version du Framework antérieure comme par exemple .NET 1.0 ou .NET 2.0 ?
    Ce qu'il est possible de faire c'est si tu as les sources de Sharp DX de juste reprendre les parties d'affichage..

  8. #8
    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
    Par défaut
    Bonjour.

    Citation Envoyé par Unkof Voir le message
    Simplement parce que si demain ou dans 3 mois, 1 an ou 5 ans le projet SharpDX est abandonné comme il y en a eu beaucoup d'autres, j'aurai passé du temps à bosser dessus pour rien. La dernière news date du 16 Septembre 2013 soit 4 mois, et le 28 Août ils annoncent qu'ils ferment le forum après 1 an parce que ca leur prend trop de temps, et qu'ils ne bossent pas que sur SharpDX, mais aussi d'autres projets externes. Pour la faire court, je suis plutôt sceptique quand à l'avenir de SharpDX.

    Je cherche une solution pérenne, je me suis mis au C# que j'aime beaucoup, et la seule chose qu'il me manque, c'est une solution pour dév des petits jeux/editeur de level, etc .. dans un environnement que je vais utiliser couramment et surtout une solution qui ne sera pas abandonné à court terme, dans 6 mois ou 2 ans ou 4 ans.
    Désolé pour le HS.

    Personnellement, je ne te trouve pas cohérent.

    Je me suis posé les mêmes questions, mais je n'arrive pas aux mêmes conclusions.

    Il y a eu C++ managed (abandonné).
    Il y a eu XNA version 1.0/2.0/3.0.
    Il y a eu xna 4.0, une refonte du XNA précédent, donc tout à revoir niveau code (en cours d'abandon).
    Il y a des projets externes SharpDX, SlimDX, etc... Mais à l'avenir incertain si on t'écoute. Mais globalement j'adhère sur ce fait. Avec un petit bémol pour SlimDX, parce que je connais une boîte commerciale qui n'aimerai pas que cette technologie disparaisse.
    Il y a Microsoft.DirectX (visiblement, tu galères à l'utiliser...).
    Il y a l'interop COM (plutôt stable aujourd'hui mais délicat à cause du Garbage Collector et de l'interaction COM).

    Bref, plein de façon de faire du DirectX en C#, mais on peut se poser la question du pourquoi "plein de façon", bizarre, non...

    DirectX c'est du C++. Alors pourquoi ne pas choisir le C++. A l'heure actuelle, c'est certainement le choix le plus pérenne. Enfin c'est mon avis.

    Pour un projet type jeux vidéo, le C# n'apporte pas grand chose en terme de productivité. Par exemple lorsque tu passes ton temps à optimiser un shader, à optimiser l'IA, à optimiser la physique, le C# n'apporte rien de plus. Et c'est bien sur ces points que tu passes beaucoup de temps. Evidemment si c'est pour développer un jeu de belote, ça doit même pouvoir se faire dans presque tous les langages.

    On voit que la technologie DirectX en C# se cherche, et lorsque l'on voit toutes les variantes, on se dit qu'elle ne s'est pas trouvée. Et s'il elle ne s'est pas trouvée, alors on ne peut pas présumé de sa pérennité.

Discussions similaires

  1. Visual Studio 2012 sortira le 12 septembre
    Par Hinault Romaric dans le forum Visual Studio
    Réponses: 15
    Dernier message: 05/02/2013, 10h47
  2. Réponses: 0
    Dernier message: 16/08/2012, 10h05
  3. Réponses: 23
    Dernier message: 15/06/2012, 21h52
  4. Visual Studio 2012 : quoi de neuf dans la Release Candidate ?
    Par Hinault Romaric dans le forum Visual Studio
    Réponses: 23
    Dernier message: 11/06/2012, 09h37
  5. Visual Studio 2012 Release Candidate disponible
    Par Hinault Romaric dans le forum Visual Studio
    Réponses: 3
    Dernier message: 03/06/2012, 11h25

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