- switch (FVF & 0xe)
You should use D3DFVF_POSITION_MASK instead of 0xe here.
- texture = FVF >> 16;
- for (i = 0; i < ((FVF&D3DFVF_TEXCOUNT_MASK) >> D3DFVF_TEXCOUNT_SHIFT); i++)
- {
switch (texture & 3){case D3DFVF_TEXTUREFORMAT1:size = size + sizeof(FLOAT);break;case D3DFVF_TEXTUREFORMAT2:size = size + sizeof(FLOAT) * 2;break;case D3DFVF_TEXTUREFORMAT3:size = size + sizeof(FLOAT) * 3;break;case D3DFVF_TEXTUREFORMAT4:size = size + sizeof(FLOAT) * 4;break;default:break;}texture = texture >> 2;- }
It's not completely obvious where you get the different shifts and masks here, a comment wouldn't hurt.