public void DestroyDebugReportCallbackEXT(IMgInstance instance, IMgAllocationCallbacks allocator) { if (mIsDisposed) { return; } var bInstance = (VkInstance)instance; Debug.Assert(bInstance != null); var bAllocator = (MgVkAllocationCallbacks)allocator; IntPtr allocatorPtr = bAllocator != null ? bAllocator.Handle : IntPtr.Zero; Interops.vkDestroyDebugReportCallbackEXT(bInstance.Handle, this.Handle, allocatorPtr); this.Handle = 0UL; mIsDisposed = true; }
public void DestroySurfaceKHR(IMgInstance instance, IMgAllocationCallbacks allocator) { }
public Result CreateInstance(MgInstanceCreateInfo createInfo, IMgAllocationCallbacks allocator, out IMgInstance instance) { instance = new GLInstance(mQueue, mEntrypoint); return(Result.SUCCESS); }
public Result CreateInstance(MgInstanceCreateInfo createInfo, IMgAllocationCallbacks allocator, out IMgInstance instance) { var allocatedItems = new List <IntPtr>(); try { uint enabledLayerCount; var ppEnabledLayerNames = VkInteropsUtility.CopyStringArrays(allocatedItems, createInfo.EnabledLayerNames, out enabledLayerCount); uint enabledExtensionCount; var ppEnabledExtensionNames = VkInteropsUtility.CopyStringArrays(allocatedItems, createInfo.EnabledExtensionNames, out enabledExtensionCount); var pApplicationInfo = IntPtr.Zero; if (createInfo.ApplicationInfo != null) { var acInfo = new VkApplicationInfo { sType = VkStructureType.StructureTypeApplicationInfo, pNext = IntPtr.Zero, apiVersion = createInfo.ApplicationInfo.ApiVersion, applicationVersion = createInfo.ApplicationInfo.ApplicationVersion, engineVersion = createInfo.ApplicationInfo.EngineVersion, pApplicationName = CopySingleString(allocatedItems, createInfo.ApplicationInfo.ApplicationName), pEngineName = CopySingleString(allocatedItems, createInfo.ApplicationInfo.EngineName), }; var destPtr = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(VkApplicationInfo))); allocatedItems.Add(destPtr); Marshal.StructureToPtr(acInfo, destPtr, false); pApplicationInfo = destPtr; } var ici = new VkInstanceCreateInfo { sType = VkStructureType.StructureTypeInstanceCreateInfo, pNext = IntPtr.Zero, enabledLayerCount = enabledLayerCount, ppEnabledLayerNames = ppEnabledLayerNames, enabledExtensionCount = enabledExtensionCount, ppEnabledExtensionNames = ppEnabledExtensionNames, pApplicationInfo = pApplicationInfo, }; var bAllocator = allocator as MgVkAllocationCallbacks; IntPtr allocatorPtr = bAllocator != null ? bAllocator.Handle : IntPtr.Zero; IntPtr handle = IntPtr.Zero; var result = Interops.vkCreateInstance(ref ici, allocatorPtr, ref handle); instance = new VkInstance(handle); return((Result)result); } finally { //foreach (var mem in allocatedItems) //{ // Marshal.FreeHGlobal(mem); //} } }
public Result CreateInstance(MgInstanceCreateInfo createInfo, IMgAllocationCallbacks allocator, out IMgInstance instance) { var semaphore = new AmtSemaphoreEntrypoint(); var presentQueue = mLocalDevice.CreateCommandQueue(mQuery.NoOfCommandBufferSlots); var queueRenderer = new AmtQueueRenderer(presentQueue); var queue = new AmtQueue(queueRenderer, semaphore, presentQueue); var device = new AmtDevice(mLocalDevice, mQuery, mGenerator, queue); var physicalDevice = new AmtPhysicalDevice(device); instance = new AmtInstance(physicalDevice); return(Result.SUCCESS); }