/// <summary> /// /// </summary> public unsafe void UnregisterObjects(ArrayProxy <SharpVk.NVidia.Experimental.ObjectEntryType>?objectEntryTypes, ArrayProxy <uint>?objectIndices) { try { SharpVk.NVidia.Experimental.ObjectEntryType *marshalledObjectEntryTypes = default(SharpVk.NVidia.Experimental.ObjectEntryType *); uint *marshalledObjectIndices = default(uint *); if (objectEntryTypes.IsNull()) { marshalledObjectEntryTypes = null; } else { if (objectEntryTypes.Value.Contents == ProxyContents.Single) { marshalledObjectEntryTypes = (SharpVk.NVidia.Experimental.ObjectEntryType *)(Interop.HeapUtil.Allocate <SharpVk.NVidia.Experimental.ObjectEntryType>()); *(SharpVk.NVidia.Experimental.ObjectEntryType *)(marshalledObjectEntryTypes) = objectEntryTypes.Value.GetSingleValue(); } else { var fieldPointer = (SharpVk.NVidia.Experimental.ObjectEntryType *)(Interop.HeapUtil.AllocateAndClear <SharpVk.NVidia.Experimental.ObjectEntryType>(Interop.HeapUtil.GetLength(objectEntryTypes.Value)).ToPointer()); for (int index = 0; index < (uint)(Interop.HeapUtil.GetLength(objectEntryTypes.Value)); index++) { fieldPointer[index] = objectEntryTypes.Value[index]; } marshalledObjectEntryTypes = fieldPointer; } } if (objectIndices.IsNull()) { marshalledObjectIndices = null; } else { if (objectIndices.Value.Contents == ProxyContents.Single) { marshalledObjectIndices = (uint *)(Interop.HeapUtil.Allocate <uint>()); *(uint *)(marshalledObjectIndices) = objectIndices.Value.GetSingleValue(); } else { var fieldPointer = (uint *)(Interop.HeapUtil.AllocateAndClear <uint>(Interop.HeapUtil.GetLength(objectIndices.Value)).ToPointer()); for (int index = 0; index < (uint)(Interop.HeapUtil.GetLength(objectIndices.Value)); index++) { fieldPointer[index] = objectIndices.Value[index]; } marshalledObjectIndices = fieldPointer; } } SharpVk.Interop.NVidia.Experimental.VkObjectTableNVXUnregisterObjectsDelegate commandDelegate = commandCache.GetCommandDelegate <SharpVk.Interop.NVidia.Experimental.VkObjectTableNVXUnregisterObjectsDelegate>("vkUnregisterObjectsNVX", "device"); Result methodResult = commandDelegate(this.parent.handle, this.handle, (uint)(Interop.HeapUtil.GetLength(objectEntryTypes)), marshalledObjectEntryTypes, marshalledObjectIndices); if (SharpVkException.IsError(methodResult)) { throw SharpVkException.Create(methodResult); } } finally { Interop.HeapUtil.FreeAll(); } }
/// <summary> /// /// </summary> public unsafe void UnregisterObjects(SharpVk.NVidia.Experimental.ObjectEntryType[] objectEntryTypes, uint[] objectIndices) { try { SharpVk.NVidia.Experimental.ObjectEntryType *marshalledObjectEntryTypes = default(SharpVk.NVidia.Experimental.ObjectEntryType *); uint *marshalledObjectIndices = default(uint *); if (objectEntryTypes != null) { var fieldPointer = (SharpVk.NVidia.Experimental.ObjectEntryType *)(Interop.HeapUtil.AllocateAndClear <SharpVk.NVidia.Experimental.ObjectEntryType>(objectEntryTypes.Length).ToPointer()); for (int index = 0; index < (uint)(objectEntryTypes.Length); index++) { fieldPointer[index] = objectEntryTypes[index]; } marshalledObjectEntryTypes = fieldPointer; } else { marshalledObjectEntryTypes = null; } if (objectIndices != null) { var fieldPointer = (uint *)(Interop.HeapUtil.AllocateAndClear <uint>(objectIndices.Length).ToPointer()); for (int index = 0; index < (uint)(objectIndices.Length); index++) { fieldPointer[index] = objectIndices[index]; } marshalledObjectIndices = fieldPointer; } else { marshalledObjectIndices = null; } SharpVk.Interop.NVidia.Experimental.VkObjectTableNVXUnregisterObjectsDelegate commandDelegate = commandCache.GetCommandDelegate <SharpVk.Interop.NVidia.Experimental.VkObjectTableNVXUnregisterObjectsDelegate>("vkUnregisterObjectsNVX", "instance"); Result methodResult = commandDelegate(this.parent.handle, this.handle, (uint)(objectEntryTypes?.Length ?? 0), marshalledObjectEntryTypes, marshalledObjectIndices); if (SharpVkException.IsError(methodResult)) { throw SharpVkException.Create(methodResult); } } finally { Interop.HeapUtil.FreeAll(); } }