private static unsafe Span <byte> CreateBlob(out ID3DBlob *ppBlob, UIntPtr size)
        {
            ID3DBlob *p;

            ThrowIfFailed(D3DCompiler.D3DCreateBlob(size, &p));

            ppBlob = p;

            return(new Span <byte>(ppBlob->GetBufferPointer(), (int)ppBlob->GetBufferSize()));
        }