public void Destroy() { DestroySwapStuff(); mPipeLayout.Dispose(); foreach (Semaphore sem in mImageAvail) { sem.Dispose(); } foreach (Semaphore sem in mRenderFinished) { sem.Dispose(); } foreach (Fence f in mInFlight) { f.Dispose(); } foreach (KeyValuePair <string, ShaderModule> sm in mShaders) { sm.Value.Dispose(); } mImageAvail.Clear(); mRenderFinished.Clear(); mInFlight.Clear(); mShaders.Clear(); }
public void Build() { DescriptorSetLayout?.Dispose(); PipelineLayout?.Dispose(); //UsingSamplers?.DisposeRange(); DescriptorPool?.Dispose(); RenderPass?.Dispose(); Pipeline?.Dispose(); DescriptorSetLayout = VKHelper.CreateDescriptorSetLayout(Graphics, DescriptorItems); PipelineLayout = VKHelper.CreatePipelineLayout(Graphics, DescriptorSetLayout); DescriptorPool = VKHelper.CreateDescriptorPool(Graphics, DescriptorItems); DescriptorSet = VKHelper.CreateDescriptorSet(DescriptorPool, DescriptorSetLayout, DescriptorItems, out UsingSamplers); RenderPass = VKHelper.CreateRenderPass(Graphics, ClearDepthOnBeginPass); Pipeline = VKHelper.CreateGraphicsPipeline(Graphics, PipelineLayout, RenderPass, Shaders, DepthTest, DepthWrite, Instancing, InstanceInfoType, BlendMode, PrimitiveType, PrimitiveRenderMode, PrimitiveCullMode, LineWidth, ViewportPos, ViewportSize); }
public void Dispose() { pipeline?.Dispose(); pipelineLayout?.Dispose(); inputBlock?.Free(); vertModule.Dispose(); fragModule.Dispose(); }
private void RecreateSwapChain() { device.WaitIdle(); commandPool.FreeCommandBuffers(commandBuffers); foreach (var frameBuffer in frameBuffers) { frameBuffer.Dispose(); } frameBuffers = null; pipeline.Dispose(); pipeline = null; pipelineLayout.Dispose(); pipelineLayout = null; foreach (var imageView in swapChainImageViews) { imageView.Dispose(); } swapChainImageViews = null; renderPass.Dispose(); renderPass = null; swapChain.Dispose(); swapChain = null; CreateSwapChain(); CreateImageViews(); CreateRenderPass(); CreateGraphicsPipeline(); CreateFrameBuffers(); CreateCommandBuffers(); }
public void Dispose() { if (_disposed) { return; } Output.Dispose(); Inputs.ForEach(input => input.Dispose()); _descriptorPool.Dispose(); _pipeline.Dispose(); _pipelineLayout.Dispose(); _descriptorSetLayout.Dispose(); _commandPool.Dispose(); _fence.Dispose(); _disposed = true; }
public void Cleanup() { /* * Clean up all Vulkan Resources. */ bufferMemory.Dispose(); buffer.Dispose(); computeShaderModule.Dispose(); descriptorPool.Dispose(); descriptorSetLayout.Dispose(); pipelineLayout.Dispose(); foreach (Pipeline pipeline in pipelines) { pipeline.Dispose(); } commandPool.Dispose(); device.Dispose(); instance.Dispose(); }