private void init() { try { var usages = new REIGN_D3DDECLUSAGE[ElementCount]; var types = new REIGN_D3DDECLTYPE[ElementCount]; var usageIndicies = new int[ElementCount]; var offsets = new int[ElementCount]; var methods = new REIGN_D3DDECLMETHOD[ElementCount]; var streams = new int[ElementCount]; int i = 0; foreach(BufferLayoutElement element in Elements) { switch (element.Usage) { case BufferLayoutElementUsages.Position: usages[i] = REIGN_D3DDECLUSAGE.POSITION; break; case BufferLayoutElementUsages.Color: usages[i] = REIGN_D3DDECLUSAGE.COLOR; break; case BufferLayoutElementUsages.UV: usages[i] = REIGN_D3DDECLUSAGE.TEXCOORD; break; case BufferLayoutElementUsages.Normal: usages[i] = REIGN_D3DDECLUSAGE.NORMAL; break; case BufferLayoutElementUsages.Index: usages[i] = REIGN_D3DDECLUSAGE.BLENDINDICES; break; case BufferLayoutElementUsages.IndexClassic: usages[i] = REIGN_D3DDECLUSAGE.BLENDINDICES; break; default: Debug.ThrowError("BufferLayoutDesc", "Unsuported ElementUsage"); break; } switch (element.Type) { case BufferLayoutElementTypes.Float: types[i] = REIGN_D3DDECLTYPE.FLOAT1; break; case BufferLayoutElementTypes.Vector2: types[i] = REIGN_D3DDECLTYPE.FLOAT2; break; case BufferLayoutElementTypes.Vector3: types[i] = REIGN_D3DDECLTYPE.FLOAT3; break; case BufferLayoutElementTypes.Vector4: types[i] = REIGN_D3DDECLTYPE.FLOAT4; break; case BufferLayoutElementTypes.RGBAx8: types[i] = REIGN_D3DDECLTYPE.D3DCOLOR; break; default: Debug.ThrowError("BufferLayoutDesc", "Unsuported ElementType"); break; } usageIndicies[i] = element.UsageIndex; offsets[i] = element.ByteOffset; methods[i] = REIGN_D3DDECLMETHOD.DEFAULT; streams[i] = element.StreamIndex; ++i; } com = new BufferLayoutDescCom(ElementCount, usages, types, usageIndicies, offsets, methods, streams); } catch (Exception e) { Dispose(); throw e; } }
private void init() { try { var usages = new REIGN_D3DDECLUSAGE[ElementCount]; var types = new REIGN_D3DDECLTYPE[ElementCount]; var usageIndicies = new int[ElementCount]; var offsets = new int[ElementCount]; var methods = new REIGN_D3DDECLMETHOD[ElementCount]; var streams = new int[ElementCount]; int i = 0; foreach (BufferLayoutElement element in Elements) { switch (element.Usage) { case BufferLayoutElementUsages.Position: usages[i] = REIGN_D3DDECLUSAGE.POSITION; break; case BufferLayoutElementUsages.Color: usages[i] = REIGN_D3DDECLUSAGE.COLOR; break; case BufferLayoutElementUsages.UV: usages[i] = REIGN_D3DDECLUSAGE.TEXCOORD; break; case BufferLayoutElementUsages.Normal: usages[i] = REIGN_D3DDECLUSAGE.NORMAL; break; case BufferLayoutElementUsages.Index: usages[i] = REIGN_D3DDECLUSAGE.BLENDINDICES; break; case BufferLayoutElementUsages.IndexClassic: usages[i] = REIGN_D3DDECLUSAGE.BLENDINDICES; break; default: Debug.ThrowError("BufferLayoutDesc", "Unsuported ElementUsage"); break; } switch (element.Type) { case BufferLayoutElementTypes.Float: types[i] = REIGN_D3DDECLTYPE.FLOAT1; break; case BufferLayoutElementTypes.Vector2: types[i] = REIGN_D3DDECLTYPE.FLOAT2; break; case BufferLayoutElementTypes.Vector3: types[i] = REIGN_D3DDECLTYPE.FLOAT3; break; case BufferLayoutElementTypes.Vector4: types[i] = REIGN_D3DDECLTYPE.FLOAT4; break; case BufferLayoutElementTypes.RGBAx8: types[i] = REIGN_D3DDECLTYPE.D3DCOLOR; break; default: Debug.ThrowError("BufferLayoutDesc", "Unsuported ElementType"); break; } usageIndicies[i] = element.UsageIndex; offsets[i] = element.ByteOffset; methods[i] = REIGN_D3DDECLMETHOD.DEFAULT; streams[i] = element.StreamIndex; ++i; } com = new BufferLayoutDescCom(ElementCount, usages, types, usageIndicies, offsets, methods, streams); } catch (Exception e) { Dispose(); throw e; } }