private void init() { Desc = new VitaBufferElement[ElementCount]; int i = 0; foreach (BufferLayoutElement element in Elements) { Desc[i] = new VitaBufferElement(); string usageIndex = element.UsageIndex.ToString(); switch (element.Usage) { case BufferLayoutElementUsages.Position: Desc[i].Usage = VitaBufferElementUsages.Position; Desc[i].Name = "Position" + usageIndex; break; case BufferLayoutElementUsages.Color: Desc[i].Usage = VitaBufferElementUsages.Color; Desc[i].Name = "Color" + usageIndex; break; case BufferLayoutElementUsages.UV: Desc[i].Usage = VitaBufferElementUsages.UV; Desc[i].Name = "Texcoord" + usageIndex; break; case BufferLayoutElementUsages.Normal: Desc[i].Usage = VitaBufferElementUsages.Normal; Desc[i].Name = "Normal" + usageIndex; break; case BufferLayoutElementUsages.Index: Desc[i].Usage = VitaBufferElementUsages.Index; Desc[i].Name = "BlendIndex" + usageIndex; break; case BufferLayoutElementUsages.IndexClassic: Desc[i].Usage = VitaBufferElementUsages.IndexClassic; Desc[i].Name = "BlendIndex" + usageIndex; break; default: Debug.ThrowError("BufferLayoutDesc", "Unsuported ElementUsage"); break; } switch (element.Type) { case BufferLayoutElementTypes.Float: Desc[i].Format = VitaBufferElementFormats.Single; break; case BufferLayoutElementTypes.Vector2: Desc[i].Format = VitaBufferElementFormats.Vector2f; break; case BufferLayoutElementTypes.Vector3: Desc[i].Format = VitaBufferElementFormats.Vector3f; break; case BufferLayoutElementTypes.Vector4: Desc[i].Format = VitaBufferElementFormats.Vector4f; break; case BufferLayoutElementTypes.RGBAx8: Desc[i].Format = VitaBufferElementFormats.Color; break; default: Debug.ThrowError("BufferLayoutDesc", "Unsuported ElementType"); break; } Desc[i].UsageIndex = element.UsageIndex; Desc[i].Offset = new IntPtr(element.ByteOffset); Desc[i].FloatCount = element.FloatCount; Desc[i].StreamIndex = (uint)element.StreamIndex; ++i; } }