コード例 #1
0
ファイル: Pipeline.cs プロジェクト: acaly/LightDx
        public unsafe VertexDataProcessor <T> CreateVertexDataProcessor <T>()
            where T : unmanaged
        {
            if (_disposed)
            {
                throw new ObjectDisposedException("Pipeline");
            }
            var layoutDecl = VertexDataProcessor <T> .CreateLayoutFromType(0);

            using (var layout = new ComScopeGuard())
            {
                fixed(InputElementDescription *d = layoutDecl)
                {
                    Device.CreateInputLayout(_device.DevicePtr, d, (uint)layoutDecl.Length,
                                             Blob.GetBufferPointer(_signatureBlob), Blob.GetBufferSize(_signatureBlob), out layout.Ptr).Check();
                }

                return(new VertexDataProcessor <T>(_device, layout.Move()));
            }
        }