protected Framebuffer CreateFramebuffer(RenderPass renderPass, ImageData imageData) { var attachments = new[] { imageData.View }; var createInfo = new FramebufferCreateInfo(renderPass, attachments, imageData.Width, imageData.Height, 1); return(device.CreateFramebuffer(createInfo)); }
void CreateFramebuffers() { var swap_chain_images = GetSwapChain.Images; Vulkan.Framebuffers = new Framebuffer[swap_chain_images.Length]; for (int i = 0; i < swap_chain_images.Length; ++i) { ImageView view = swap_chain_images[i].View; var framebuffer_create_info = new FramebufferCreateInfo { sType = StructureType.FramebufferCreateInfo, // VkStructureType sType pNext = IntPtr.Zero, // const void *pNext flags = 0, // VkFramebufferCreateFlagBits flags renderPass = Vulkan.RenderPass, // VkRenderPass renderPass attachmentCount = 1, // uint32_t attachmentCount pAttachments = &view, // const VkImageView *pAttachments width = 300, // uint32_t width height = 300, // uint32_t height layers = 1 // uint32_t layers }; vk.CreateFramebuffer(GetDevice, ref framebuffer_create_info, (AllocationCallbacks *)0, out Vulkan.Framebuffers[i]).CheckError(); } }
Framebuffer CreateFramebuffer(RenderPass renderPass, ImageData imageData) { // Render passes operate in conjunction with framebuffers, which represent a collection // of specific memory attachments that a render pass instance uses. var attachments = new[] { imageData.View }; var createInfo = new FramebufferCreateInfo(renderPass, attachments, imageData.Width, imageData.Height, 1); return(device.CreateFramebuffer(createInfo)); }
public void CreateFramebuffer() { var renderPassCreateInfo = new RenderPassCreateInfo( new[] { new SubpassDescription() } ); using (RenderPass renderPass = Device.CreateRenderPass(renderPassCreateInfo)) { var framebufferCreateInfo = new FramebufferCreateInfo(null, 2, 2); using (renderPass.CreateFramebuffer(framebufferCreateInfo)) { } using (renderPass.CreateFramebuffer(framebufferCreateInfo, CustomAllocator)) { } } }
private Framebuffer[] CreateFramebuffers(Image[] images, SurfaceFormatKhr surfaceFormat) { var displayViews = new ImageView[images.Length]; for (var i = 0; i < images.Length; i++) { var viewCreateInfo = new ImageViewCreateInfo { Image = images[i], ViewType = ImageViewType.View2D, Format = surfaceFormat.Format, Components = new ComponentMapping { R = ComponentSwizzle.R, G = ComponentSwizzle.G, B = ComponentSwizzle.B, A = ComponentSwizzle.A }, SubresourceRange = new ImageSubresourceRange { AspectMask = ImageAspectFlags.Color, LevelCount = 1, LayerCount = 1 } }; displayViews[i] = _device.CreateImageView(viewCreateInfo); } var framebuffers = new Framebuffer [images.Length]; for (var i = 0; i < images.Length; i++) { var frameBufferCreateInfo = new FramebufferCreateInfo { Layers = 1, RenderPass = _renderPass, Attachments = new[] { displayViews[i] }, Width = _surfaceCapabilities.CurrentExtent.Width, Height = _surfaceCapabilities.CurrentExtent.Height }; framebuffers[i] = _device.CreateFramebuffer(frameBufferCreateInfo); } return(framebuffers); }
private void CreateFramebuffers() { framebuffers = new Framebuffer[backBuffers.Length]; for (int i = 0; i < backBuffers.Length; i++) { var attachment = backBufferViews[i]; var createInfo = new FramebufferCreateInfo { StructureType = StructureType.FramebufferCreateInfo, RenderPass = renderPass, AttachmentCount = 1, Attachments = new IntPtr(&attachment), Width = (uint)form.ClientSize.Width, Height = (uint)form.ClientSize.Height, Layers = 1 }; framebuffers[i] = device.CreateFramebuffer(ref createInfo); } }
protected void CreateFrameBuffers() { framebuffers = new Framebuffer[bufferSize]; for (int i = 0; i < bufferSize; i++) { ImageView[] attachments = { imageViews[i] }; var frameBufferInfo = new FramebufferCreateInfo { RenderPass = renderPass, AttachmentCount = 1, Attachments = attachments, Width = extent.Width, Height = extent.Height, Layers = 1 }; framebuffers[i] = device.CreateFramebuffer(frameBufferInfo); } }
private void CreateFrameBuffers() { vkSwapChainFramebuffers = new Framebuffer[vkSwapChainImageViews.Length]; for (int i = 0; i < vkSwapChainImageViews.Length; i++) { var attachments = new ImageView[] { vkSwapChainImageViews[i] }; var frameBufferInfo = new FramebufferCreateInfo() { RenderPass = vkRenderPass, AttachmentCount = 1, Attachments = attachments, Width = vkSwapChainExtent.Width, Height = vkSwapChainExtent.Height, Layers = 1, }; vkSwapChainFramebuffers[i] = vkDevice.CreateFramebuffer(frameBufferInfo); } }
public unsafe Auto <DisposableFramebuffer> Create(Vk api, CommandBufferScoped cbs, Auto <DisposableRenderPass> renderPass) { ImageView *attachments = stackalloc ImageView[_attachments.Length]; for (int i = 0; i < _attachments.Length; i++) { attachments[i] = _attachments[i].Get(cbs).Value; } var framebufferCreateInfo = new FramebufferCreateInfo() { SType = StructureType.FramebufferCreateInfo, RenderPass = renderPass.Get(cbs).Value, AttachmentCount = (uint)_attachments.Length, PAttachments = attachments, Width = Width, Height = Height, Layers = Layers }; api.CreateFramebuffer(_device, framebufferCreateInfo, null, out var framebuffer).ThrowOnError(); return(new Auto <DisposableFramebuffer>(new DisposableFramebuffer(api, _device, framebuffer), null, _attachments)); }
public unsafe Framebuffer(Api api, SwapChain swapChain, DepthBuffer depthBuffer, ImageView imageView, RenderPass renderPass) { (_api, _imageView, _renderPass) = (api, imageView, renderPass); var attachments = new Silk.NET.Vulkan.ImageView[] { imageView.VkImageView, depthBuffer.ImageView.VkImageView }; fixed(Silk.NET.Vulkan.ImageView *attachmentsPtr = &attachments[0]) { var framebufferInfo = new FramebufferCreateInfo(); framebufferInfo.SType = StructureType.FramebufferCreateInfo; framebufferInfo.RenderPass = renderPass.VkRenderPass; framebufferInfo.AttachmentCount = (uint)attachments.Length; framebufferInfo.PAttachments = attachmentsPtr; framebufferInfo.Width = swapChain.Extent.Width; framebufferInfo.Height = swapChain.Extent.Height; framebufferInfo.Layers = 1; Util.Verify(_api.Vk.CreateFramebuffer( _api.Vk.CurrentDevice.Value, framebufferInfo, default, out _vkFramebuffer), $"{nameof(Framebuffer)}: Failed to create framebuffer");
internal static unsafe extern Result vkCreateFramebuffer(Device device, FramebufferCreateInfo* createInfo, AllocationCallbacks* allocator, Framebuffer* framebuffer);
public unsafe Framebuffer CreateFramebuffer(ref FramebufferCreateInfo createInfo, AllocationCallbacks* allocator = null) { Framebuffer framebuffer; fixed (FramebufferCreateInfo* __createInfo__ = &createInfo) { vkCreateFramebuffer(this, __createInfo__, allocator, &framebuffer).CheckError(); } return framebuffer; }