Changeset 2304 for GTP/trunk/App/Demos/Illum/pathmap/FlexVertex.cpp
- Timestamp:
- 04/01/07 00:02:16 (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
GTP/trunk/App/Demos/Illum/pathmap/FlexVertex.cpp
r2197 r2304 2 2 #include ".\flexvertex.h" 3 3 4 unsigned int FlexVertex::posByteOffset(0); 5 unsigned int FlexVertex::normalByteOffset(12); 6 unsigned int FlexVertex::diffuseByteOffset(24); 7 unsigned int FlexVertex::specularByteOffset(28); 8 unsigned int FlexVertex::texByteOffset[16] = { 32, 40, 48, 56, 64, 72, 80, 88, 9 96, 104, 112, 120, 128, 136, 144, 152}; 10 unsigned int FlexVertex::nTex = 2; 4 FlexFormat* FlexVertex::format = NULL; 11 5 12 void FlexVertex::setFormat(D3DVERTEXELEMENT9* decl) 6 void FlexVertex::setFormat(FlexFormat* format) 7 { 8 FlexVertex::format = format; 9 } 10 11 FlexFormat::FlexFormat() 12 : 13 posByteOffset(0), 14 normalByteOffset(12), 15 diffuseByteOffset(24), 16 specularByteOffset(28), 17 nTex(2) 18 { 19 unsigned int ii[16] = {32, 40, 48, 56, 64, 72, 80, 88, 96, 104, 112, 120, 128, 136, 144, 152}; 20 for(int iu=0; iu<16; iu++) 21 texByteOffset[iu] = ii[iu]; 22 } 23 24 void FlexVertexArray::setFormat(D3DVERTEXELEMENT9* decl) 13 25 { 14 26 int i=0; 15 nTex = 0;27 format.nTex = 0; 16 28 while(decl[i].Type != D3DDECLTYPE_UNUSED) 17 29 { 18 30 if(decl[i].Usage == D3DDECLUSAGE_POSITION) 19 posByteOffset = decl[i].Offset;31 format.posByteOffset = decl[i].Offset; 20 32 if(decl[i].Usage == D3DDECLUSAGE_NORMAL) 21 normalByteOffset = decl[i].Offset;33 format.normalByteOffset = decl[i].Offset; 22 34 if(decl[i].Usage == D3DDECLUSAGE_COLOR) 23 35 { 24 36 if(decl[i].UsageIndex == 0) 25 diffuseByteOffset = decl[i].Offset;37 format.diffuseByteOffset = decl[i].Offset; 26 38 if(decl[i].UsageIndex == 1) 27 specularByteOffset = decl[i].Offset;39 format.specularByteOffset = decl[i].Offset; 28 40 } 29 41 if(decl[i].Usage == D3DDECLUSAGE_TEXCOORD) 30 42 { 31 texByteOffset[decl[i].UsageIndex] = decl[i].Offset;32 if(decl[i].UsageIndex >= nTex)33 nTex = decl[i].UsageIndex+1;43 format.texByteOffset[decl[i].UsageIndex] = decl[i].Offset; 44 if(decl[i].UsageIndex >= format.nTex) 45 format.nTex = decl[i].UsageIndex+1; 34 46 } 35 47 i++; 36 48 } 49 FlexVertex::setFormat(&format); 37 50 }
Note: See TracChangeset
for help on using the changeset viewer.