die Sache mit der Reihenfolge:
was in der Zeile
|
C-/C++-Quelltext
|
1
|
const DWORD VERTEX::dwFVF = D3DFVF_XYZ | D3DFVF_DIFFUSE | D3DFVF_TEX1
|
passiert, ist doch das folgende:
Man nehme das DWORD VERTEX::dwFVF (32bit) und schreibt da verodert (|) verschiedene Masken rein,im obigen Fall:
|
C-/C++-Quelltext
|
1
2
3
|
D3DFVF_XYZ = 0x00000002
D3DFVF_DIFFUSE = 0x00000040
D3DFVF_BLA = 0x00000100
|
das ergibt verodert 0x00000142, egal in welcher Reihenfolge. Sie ist nur so gewählt, damit sie konform zur Reihenfolge in der struct ist,
d.h. Nibble 0 stellt die erste Variable in der struct dar, Nibble 1 die zweite, Nibble 2 die dritte.
In welcher Reihenfolge die Masken in das DWORD reingeodert werden ist dabei völlig egal.
Die Reihenfolge spielt meiner Meinung nach nur in der Definition der struct für das Vertexformat eine Rolle:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
|
struct VERTEX
{
tbVector3 vPosition;
DWORD cColor;
tbVector2 vTexture;
static const DWORD dwFVF;
};
|
so isses ok, und
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
|
struct VERTEX
{
tbVector3 vPosition;
tbVector2 vTexture;
DWORD cColor;
static const DWORD dwFVF;
};
|
so eben nicht.
Bitte korrigiert mich, wenn ich falsch liege...
mfg.matmaxx