This PR updates the tutorial to use dynamic state for viewport and scissor rectangles. This simplifies things a lot and no longer requires e.g. pipelines and render passes to be recreated with the swap chain on window resize.
Update chapter "Fixed function":
Better wording on baked state in pipeline state objects
Moved dynamic state paragraph to the top and also slightly reworded it
Updated the viewport and scissor state chapter with dynamic state and why it's better to use this instead of baking it
Update chapter "Command buffers"
Added viewport and scissor setup to command buffer recording
Update chapter "Swapchain recreation"
With dynamic state for viewport and scissor, it's no longer required to recreate pipeline and render pass when the swapchain is recreated
Update all code files that had viewport and scissor state baked into the pipeline to use dynamic state instead and set viewport and scissor at command buffer creation
Update all code files after the swap chain chapter to no longer recreate the render pass and pipeline when the swap chain was recreated
This PR updates the tutorial to use dynamic state for viewport and scissor rectangles. This simplifies things a lot and no longer requires e.g. pipelines and render passes to be recreated with the swap chain on window resize.