Exemple #1
0
        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);
        }