bonjour a tous, je debute en directx et pour apprendre le fonctionnement je regarde les tortuo ki sont fournis avec le sdk. L'un d'entre eux, (le 2eme) affiche un triangle immobile. pour apprendre je suis en train d'essayer d'en placer un 2eme a cote
voici une partie du programme ki affiche un triangle et ki marche :
VOID* PointerTriangle1;
if( FAILED( BufferTriangle1->Lock( 0, sizeof(triangle1), (void**)&PointerTriangle1, 0 ) ) ) { return E_FAIL; }
memcpy( PointerTriangle1, triangle1, sizeof(triangle1) );
BufferTriangle1->Unlock();
voici ce ke j'ai modifie ( aucun probleme lors de la compilation mais lors de l'execution )
VOID* PointerTriangle1;
VOID* PointerTriangle2; //rajou
if( FAILED( BufferTriangle1->Lock( 0, sizeof(triangle1), (void**)&PointerTriangle1, 0 ) ) ) { return E_FAIL; }
if( FAILED( BufferTriangle2->Lock( 0, sizeof(triangle2), (void**)&PointerTriangle2, 0 ) ) ) { return E_FAIL; } //rajou
memcpy( PointerTriangle1, triangle1, sizeof(triangle1) );
memcpy( PointerTriangle2, triangle2, sizeof(triangle2) ); //rajou
BufferTriangle1->Unlock();
BufferTriangle2->Unlock(); //rajou
l'erreur ne se produit pas si j'ignore cette instruction :
if( FAILED( BufferTriangle2->Lock( 0, sizeof(triangle2), (void**)&PointerTriangle2, 0 ) ) ) { return E_FAIL; } //rajou
mais bien entendu sans cette instruction je n'ai qu'un triangle
je ne comprend pas pourkoi je ne peut pas faire un lock 2 foisa la suite, j'ai pourtant ete sur la documentation msdn.
merci !
Adeon 