public void UpdateRaw(ReadOnlySpan <byte> data, int pitch) { using var mapped = _device.Map(this); if (mapped.RowPitch == pitch) { data.CopyTo(mapped.Data); } else { var dest = mapped.Data; var rowWidth = Math.Min(pitch, mapped.RowPitch); for (var y = 0; y < mSize.Height; ++y) { var srcRow = data.Slice(y * pitch, rowWidth); var destRow = dest.Slice(y * mapped.RowPitch, rowWidth); srcRow.CopyTo(destRow); } } }