UgRenderer

High-level swapchain renderer managing per-frame synchronization

It

Renderer state: swapchain, framebuffers, and render pass

struct It {
  UgSwapchain.It swapchain;
  UgFrameBuffer.It framebuffers;
  VkRenderPass renderPass;
};

create

Create a renderer for the given context

UgRenderer.It create(UgContext.It& ctx);

Parameters

  • ctx — Vulkan context

Returns — Initialized renderer object


destroy

Destroy the renderer and free all swapchain resources

U0 destroy(UgContext.It& ctx, UgRenderer.It& renderer);

Parameters

  • ctx — Vulkan context
  • renderer — Renderer to destroy

update

Recreate the swapchain and framebuffers after a resize

U0 update(UgContext.It& ctx, UgRenderer.It& renderer);

Parameters

  • ctx — Vulkan context
  • renderer — Renderer to update

begin

Begin the render pass for the current frame

U0 begin(UgRenderer.It& renderer, UgCommandBuffer.It& cmd);

Parameters

  • renderer — Active renderer
  • cmd — Command buffer to record into

end

End the render pass

U0 end(UgCommandBuffer.It& cmd);

Parameters

  • cmd — Command buffer to record into

setViewport

Set the viewport and scissor to the current swapchain extent

U0 setViewport(UgContext.It& ctx, UgRenderer.It& renderer, UgCommandBuffer.It& cmd);

Parameters

  • ctx — Vulkan context
  • renderer — Active renderer
  • cmd — Command buffer to record into

submit

Submit the recorded command buffer to the graphics queue

U0 submit(UgContext.It& ctx, UgRenderer.It& renderer, UgCommandBuffer.It& cmd, UgFence.It& fence);

Parameters

  • ctx — Vulkan context
  • renderer — Active renderer
  • cmd — Command buffer to submit
  • fence — Fence to signal when the submission completes

present

Present the current swapchain image

VkResult present(UgContext.It& ctx, UgRenderer.It& renderer);

Parameters

  • ctx — Vulkan context
  • renderer — Active renderer

Returns — VkResult — VK_SUCCESS or an out-of-date/suboptimal code


aquire

Acquire the next swapchain image for rendering

VkResult aquire(UgContext.It& ctx, UgRenderer.It& renderer);

Parameters

  • ctx — Vulkan context
  • renderer — Active renderer

Returns — VkResult — VK_SUCCESS or an out-of-date code