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 :

[debutant] [VB .net] Comprendre vertexBuffer ?


Sujet :

DirectX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    ld
    ld est déconnecté
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 1
    Par défaut [debutant] [VB .net] Comprendre vertexBuffer ?
    Salut à tous,

    j'ai un bout de code qui marche mais je ne comprends pas comment ! Ca dessine un triangle (classique dans un tuto de debutant... :-))


    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
     
    Public Sub MakeVerts()
       VertBuf = New VertexBuffer(GetType(CustomVertex.TransformedColored), 3, Dev, 0, CustomVertex.TransformedColored.Format, Pool.Default)
     
       Dim verts() As CustomVertex.TransformedColored
       verts = CType(VertBuf.Lock(0, 0), CustomVertex.TransformedColored())
     
       verts(0).X = 150
       verts(0).Y = 50
       verts(0).Z = 0.5F
       verts(0).Rhw = 1
       verts(0).Color = System.Drawing.Color.Red.ToArgb()
     
       verts(1).X = 250
       verts(1).Y = 250
       verts(1).Z = 0.5F
       verts(1).Rhw = 1
       verts(1).Color = System.Drawing.Color.Blue.ToArgb()
     
       verts(2).X = 50
       verts(2).Y = 250
       verts(2).Z = 0.5F
       verts(2).Rhw = 1
       verts(2).Color = System.Drawing.Color.Green.ToArgb()
     
       VertBuf.Unlock()
    End Sub
    Ce que je ne pige pas c'est comment VertBuf récupère ce qui a été stocké dans verts : une fois qu'on est sorti de cette méthode, verts n'existe plus, et nulle part on n'a dit de recopier verts dans VertBuf !!??
    D'ailleurs quand j'observe VertBuf avec le débuger, pas de trace des coordonnées ??
    Vraiment je pige rien.

    D'ailleurs c'est peut-être plus un pb de vb.net que de directX

    Merci d'avance de vos réponses...

    PS : quelqu'un connait-il des tutos, un forum (même anglais) où l'on cause de directX avec VB Net ? Désolé, mais sur ce forum c'est plutôt c# ou c++ qui sont le plus souvent employés. Et moi, je n'ai pas le choix, je dois bossé en vb.net...

  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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    verts = CType(VertBuf.Lock(0, 0), CustomVertex.TransformedColored())
    Lorsque tu appelles Lock, celui-ci va te renvoyer dans verts l'adresse de la mémoire occupée par le vertex buffer. Ainsi, remplir verts par la suite reviendra exactement à écrire dans le vertex buffer.

    Ici il ne faut pas voir verts comme un tableau que tu crées et que tu détruis à la fin de la fonction, mais comme une variable qui va stocker l'adresse mémoire de ton vertex buffer et qui te permettra donc d'accéder à son contenu indirectement.

  3. #3
    Membre expérimenté Avatar de ShadowTzu
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Juin 2005
    Messages
    243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Saône (Franche Comté)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Juin 2005
    Messages : 243
    Par défaut
    il y a une autre manière de remplir un vb, beaucoup plus .. parlant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    VertBuf = New VertexBuffer(GetType(CustomVertex.TransformedColored), 3, Dev, Usage.None, CustomVertex.TransformedColored.Format, Pool.Default)
    Dim verts() As CustomVertex.TransformedColored
     
    verts(0).X = 150
    '[...]
    VertBuf.SetData(verts, 0, LockFlags.None)

Discussions similaires

  1. Debutant VB.net ayant besoin d'aide
    Par iLc00 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 19/07/2006, 23h47
  2. [Debutant][VB.net] Extraction dans 1 chaine
    Par Tatouine dans le forum Windows Forms
    Réponses: 3
    Dernier message: 22/06/2006, 17h17
  3. [Debutant][VB.net] Probleme d'ouverture d'une fichier excel
    Par Tatouine dans le forum Windows Forms
    Réponses: 4
    Dernier message: 22/06/2006, 12h42
  4. [Debutant] vb.net couleur d'une colonne flexgrid
    Par bestsimo2 dans le forum Windows Forms
    Réponses: 8
    Dernier message: 04/06/2005, 18h27
  5. [Debutant VC++.net] Obtenir un pointeur sur objet
    Par SteelBox dans le forum MFC
    Réponses: 6
    Dernier message: 17/06/2004, 18h36

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