Ersteinmal vielen dank für deine Anwort! Das hat mir schoneinmal ein wenig geholfen. Leider habe ich noch eine weitere kleine Frage:
In einer Schleife den Texturpuffer durchlaufen und dein Array füllen
Wie komm ich daran? Die Informationen in LockRect werden ja scheinbar in D3DLOCKED_RECT gespeichert (
laut msdn ?!)
Desweiteren habe ich ein recht vielversprechendes code-stückchen gefunden, wo unteranderem beschrieben wird wie man die Farbe der Pixel erhält:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
|
unsigned int readPixel(LPDIRECT3DTEXTURE9 pTexture, UINT x, UINT y)
{
D3DLOCKED_RECT rect;
ZeroMemory(&rect, sizeof(D3DLOCKED_RECT));
pTexture->LockRect(0, &rect, NULL, D3DLOCK_READONLY);
unsigned char *bits = (unsigned char *)rect.pBits;
unsigned int pixel = (unsigned int)&bits[rect.Pitch * y + 4 * x];
pTexture->UnlockRect(0);
return pixel;
}
|
wobei ich nicht ganz verstehe, was das hier macht...bzw eher WIE es das macht.
|
C-/C++-Quelltext
|
1
|
unsigned int pixel = (unsigned int)&bits[rect.Pitch * y + 4 * x];
|
Pitch ist ja wohl der Abstand, wann die nächste Zeile los geht?! und die 4 bezieht sich auf Bytes? Ich fische wirklich gerade ein wenig im Trüben. Vielleicht kann mir ja jemand erleuchtung verschaffen