Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1668 connectés 

 


Dernière réponse
Sujet : [C++] Problème avec un membre d'une class
chrisbk edit : bon ben rien :D

 

[edtdd]--Message édité par chrisbk--[/edtdd]


Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
chrisbk edit : bon ben rien :D

 

[edtdd]--Message édité par chrisbk--[/edtdd]

Alload En fait ça marche ce que j'avais fais, l'erreur venait d'autre part... J'avais oublié de mettre à zéro un membre de ma class dans le créateur.
:)
 
Quel ane je suis desfois :D
Alload Je n'avais pas fais gaffe que LPDIRECT3DVERTEXBUFFER8 n'était qu'un pointeur, cela doit surement venir de ça. Mais alors je ne sais pas comment règler le problème, comment remplir le buffer de ma class grâce à un pointeur sur un buffer temporaire?
Alload Voilà le bout du code qui peut être interessant pour trouver le problème:
 
LPDIRECT3DVERTEXBUFFER8 lpVBuffer = NULL;
 
  g_lpD3DDevice->CreateVertexBuffer( 3 * pModels[i].nFaces * sizeof(SVertex), 0, D3DFVF_CUSTOM,
           D3DPOOL_DEFAULT, &lpVBuffer);
.....
Remplissage de lpVBuffer;
.....
 
  CObject object;
  object.SetMaterial(pMaterials[pModels[i].nMatRef].material);
  object.SetnFaces(pModels[i].nFaces);
  object.SetVBuffer(lpVBuffer);
 
  pFrame->AddObject(object);
 
  lpVBuffer->Release();
LeGreg

Alload a écrit a écrit :

Voilà, je voudrais copier un vertex buffer existant (Direct3D) dans un vertex buffer membre de ma class.
Voilà la variable et la fonction publique de celui ci:
LPDIRECT3DVERTEXBUFFER8 m_lpVBuffer;
public:
void SetVBuffer(LPDIRECT3DVERTEXBUFFER8 lpVBuffer) {m_lpVBuffer = lpVBuffer;}
Donc quand je veux l'initialiser dans ma class, je crée un vertex buffer que j'initialise avec les sommets que je veux, puis je fais:
Création d'un vertex buffer lpVBuffer puis je l'initialise;
object.SetVBuffer(lpVBuffer);
Le problème, c'est que quand j'essaie d'afficher mon objet, rien ne s'affiche à l'écran, mais si j'essaie d'afficher le vertex buffer utilisé pour initialiser ma class là l'objet s'affiche...
Je comprends plus rien...  




 
Ca ne m'a pas l'air d'etre un probleme lie a ta classe.
Tu dois surement faire un truc que D3D n'aime pas..
ou fais-tu tes release()? une fois que tu as copie ton pointeur
dans ton nouvel objet qui se charge de le releaser?
 
Le type LPDIRECT3DVERTEXBUFFER8 est juste un pointeur,
donc le simple fait de l'affecter n'a aucun effet dessus.
 
A mon avis il nous manque du code pour qu'on puisse juger de la nature de ton probleme.
 
LEGREG

Alload Voilà, je voudrais copier un vertex buffer existant (Direct3D) dans un vertex buffer membre de ma class.
 
Voilà la variable et la fonction publique de celui ci:
 
LPDIRECT3DVERTEXBUFFER8 m_lpVBuffer;
 
public:
void SetVBuffer(LPDIRECT3DVERTEXBUFFER8 lpVBuffer) {m_lpVBuffer = lpVBuffer;}
 
 
Donc quand je veux l'initialiser dans ma class, je crée un vertex buffer que j'initialise avec les sommets que je veux, puis je fais:
 
Création d'un vertex buffer lpVBuffer puis je l'initialise;
object.SetVBuffer(lpVBuffer);
 
Le problème, c'est que quand j'essaie d'afficher mon objet, rien ne s'affiche à l'écran, mais si j'essaie d'afficher le vertex buffer utilisé pour initialiser ma class là l'objet s'affiche...
 
Je comprends plus rien...

Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR