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 40 41 42 43 44 45 46 47 48 49 50
|
//tableau pour création de la texture
int *tableau = new int[TEXSZ*TEXSZ];
for(int i=0;i<TEXSZ*TEXSZ;i++)
tableau[i]=i*2;
D3DLOCKED_RECT rect2;
BYTE *ptr2;
// creation de la texture
g_pD3DDevice->CreateTexture(TEXSZ,TEXSZ,0,0,D3DFMT_A8R8G8B8,D3DPOOL_MANAGED,&g_pTexture2,NULL);
g_pTexture2->LockRect(0,&rect2,NULL,0);
ptr2 = (BYTE *)rect2.pBits;
int compteur = 0;
for(UINT u=0;u<TEXSZ;u++) { // pour chaque ligne de la texture
for(UINT v=0;v<TEXSZ;v++) { // pour chaque texel de la ligne
memset(ptr2, tableau[compteur], sizeof(int));
compteur++;
ptr2 += sizeof(int);
}
}
g_pTexture2->UnlockRect(0);
//COPIE DE LA TEXTURE DANS UN TABLEAU
//tableau de destination
int *tableau2 = new int[TEXSZ*TEXSZ];
for(int j=0;i<TEXSZ*TEXSZ;i++)
tableau2[j]=0;
//fichier pour sauvegarder les valeurs
FILE *pFile;
pFile=fopen("EnterSurface.txt","wt");
D3DLOCKED_RECT rect3;
BYTE *ptr3;
// creation de la texture
g_pTexture2->LockRect(0,&rect3,NULL,0);
ptr3 = (BYTE *)rect3.pBits;
compteur = 0;
for(UINT u=0;u<TEXSZ;u++) { // pour chaque ligne de la texture
for(UINT v=0;v<TEXSZ;v++) { // pour chaque texel de la ligne
memcpy(tableau2,ptr3, sizeof(int));
fprintf(pFile,"(%d,%d) : %d\n",u,v,tableau2[compteur]);
compteur++;
ptr3 += sizeof(int);
}
}
g_pTexture2->UnlockRect(0); |
Partager