示例#1
0
 public void Dispose()
 {
     if (com != null)
     {
         com.Dispose();
         com = null;
     }
 }
示例#2
0
 public void Dispose()
 {
     if (com != null)
     {
         com.Dispose();
         com = null;
     }
 }
示例#3
0
        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;
            }
        }
示例#4
0
        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;
            }
        }
示例#5
0
        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;
            }
        }