54 fvf_size(FVF!=0 ? Get_FVF_Vertex_Size(FVF) : vertex_size)
57 blend_offset=location_offset;
59 if ((FVF&D3DFVF_XYZ)==D3DFVF_XYZ) blend_offset+=3*
sizeof(
float);
60 normal_offset=blend_offset;
62 if ( ((FVF&D3DFVF_XYZB4)==D3DFVF_XYZB4) &&
63 ((FVF&D3DFVF_LASTBETA_UBYTE4)==D3DFVF_LASTBETA_UBYTE4) ) normal_offset+=3*
sizeof(
float)+
sizeof(
DWORD);
64 diffuse_offset=normal_offset;
66 if ((FVF&D3DFVF_NORMAL)==D3DFVF_NORMAL) diffuse_offset+=3*
sizeof(
float);
67 specular_offset=diffuse_offset;
69 if ((FVF&D3DFVF_DIFFUSE)==D3DFVF_DIFFUSE) specular_offset+=
sizeof(
DWORD);
70 texcoord_offset[0]=specular_offset;
72 if ((FVF&D3DFVF_SPECULAR)==D3DFVF_SPECULAR) texcoord_offset[0]+=
sizeof(
DWORD);
74 for (
unsigned int i=1; i<D3DDP_MAXTEXCOORD; i++)
76 texcoord_offset[i]=texcoord_offset[i-1];
78 if ((
int(FVF)&D3DFVF_TEXCOORDSIZE1(i-1))==D3DFVF_TEXCOORDSIZE1(i-1)) texcoord_offset[i]+=
sizeof(float);
79 else if ((
int(FVF)&D3DFVF_TEXCOORDSIZE2(i-1))==D3DFVF_TEXCOORDSIZE2(i-1)) texcoord_offset[i]+=2*
sizeof(float);
80 else if ((
int(FVF)&D3DFVF_TEXCOORDSIZE3(i-1))==D3DFVF_TEXCOORDSIZE3(i-1)) texcoord_offset[i]+=3*
sizeof(float);
81 else if ((
int(FVF)&D3DFVF_TEXCOORDSIZE4(i-1))==D3DFVF_TEXCOORDSIZE4(i-1)) texcoord_offset[i]+=4*
sizeof(float);