public void Dispose() { if (com != null) { com.Dispose(); com = null; } }
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; } }
private void init() { try { int count = Elements.Count; var semanticNames = new string[count]; var formats = new REIGN_DXGI_FORMAT[count]; var samanticIndicies = new uint[count]; var inputSlots = new uint[count]; var alignedByteOffsets = new uint[count]; uint i = 0; foreach (var element in Elements) { switch (element.Usage) { case BufferLayoutElementUsages.Position: semanticNames[i] = "POSITION"; break; case BufferLayoutElementUsages.Color: semanticNames[i] = "COLOR"; break; case BufferLayoutElementUsages.UV: semanticNames[i] = "TEXCOORD"; break; case BufferLayoutElementUsages.Normal: semanticNames[i] = "NORMAL"; break; case BufferLayoutElementUsages.Index: semanticNames[i] = "BLENDINDICES"; break; case BufferLayoutElementUsages.IndexClassic: semanticNames[i] = "BLENDINDICES"; break; default: Debug.ThrowError("BufferLayoutDesc", "Unsuported ElementUsage"); break; } switch (element.Type) { case BufferLayoutElementTypes.Float: formats[i] = REIGN_DXGI_FORMAT.R32_FLOAT; break; case BufferLayoutElementTypes.Vector2: formats[i] = REIGN_DXGI_FORMAT.R32G32_FLOAT; break; case BufferLayoutElementTypes.Vector3: formats[i] = REIGN_DXGI_FORMAT.R32G32B32_FLOAT; break; case BufferLayoutElementTypes.Vector4: formats[i] = REIGN_DXGI_FORMAT.R32G32B32A32_FLOAT; break; case BufferLayoutElementTypes.RGBAx8: formats[i] = REIGN_DXGI_FORMAT.R8G8B8A8_UNORM; break; default: Debug.ThrowError("BufferLayoutDesc", "Unsuported ElementType"); break; } samanticIndicies[i] = (uint)element.UsageIndex; inputSlots[i] = (uint)element.StreamIndex; alignedByteOffsets[i] = (uint)element.ByteOffset; ++i; } com = new BufferLayoutDescCom(count, semanticNames, formats, samanticIndicies, inputSlots, alignedByteOffsets); } catch (Exception e) { Dispose(); throw e; } }