internal static unsafe void SetUnorderedAccessViews(this ID3D11DeviceContext context, int startSlot, ID3D11UnorderedAccessView[] unorderedAccessViews, int[] uavInitialCounts) { IntPtr *unorderedAccessViewsOut_ = (IntPtr *)0; if (unorderedAccessViews != null) { IntPtr *unorderedAccessViewsOut__ = stackalloc IntPtr[unorderedAccessViews.Length]; unorderedAccessViewsOut_ = unorderedAccessViewsOut__; for (int i = 0; i < unorderedAccessViews.Length; i++) { unorderedAccessViewsOut_[i] = (unorderedAccessViews[i] == null) ? IntPtr.Zero : unorderedAccessViews[i].NativePointer; } } fixed(void *puav = uavInitialCounts) context.SetUnorderedAccessViewsKeepRTV(startSlot, unorderedAccessViews != null ? unorderedAccessViews.Length : 0, (IntPtr)unorderedAccessViewsOut_, (IntPtr)puav); }