internal unsafe void MarshalTo(Interop.DeviceCreateInfo *pointer) { pointer->SType = StructureType.DeviceCreateInfo; pointer->Next = null; //QueueCreateInfos if (this.QueueCreateInfos != null) { var fieldPointer = (Interop.DeviceQueueCreateInfo *)Interop.HeapUtil.AllocateAndClear <Interop.DeviceQueueCreateInfo>(this.QueueCreateInfos.Length); for (int index = 0; index < this.QueueCreateInfos.Length; index++) { this.QueueCreateInfos[index].MarshalTo(&fieldPointer[index]); } pointer->QueueCreateInfos = fieldPointer; } else { pointer->QueueCreateInfos = null; } pointer->EnabledLayerNames = this.EnabledLayerNames == null ? null : Interop.HeapUtil.MarshalTo(this.EnabledLayerNames); pointer->EnabledExtensionNames = this.EnabledExtensionNames == null ? null : Interop.HeapUtil.MarshalTo(this.EnabledExtensionNames); pointer->EnabledFeatures = (PhysicalDeviceFeatures *)Interop.HeapUtil.Allocate <PhysicalDeviceFeatures>(); *pointer->EnabledFeatures = this.EnabledFeatures; pointer->QueueCreateInfoCount = (uint)(this.QueueCreateInfos?.Length ?? 0); pointer->EnabledLayerCount = (uint)(this.EnabledLayerNames?.Length ?? 0); pointer->EnabledExtensionCount = (uint)(this.EnabledExtensionNames?.Length ?? 0); pointer->Flags = this.Flags; }
internal DeviceCreateInfo(Interop.DeviceCreateInfo* ptr) { m = ptr; Initialize (); }
public DeviceCreateInfo() { m = (Interop.DeviceCreateInfo*) Interop.Structure.Allocate (typeof (Interop.DeviceCreateInfo)); Initialize (); }