In multiple parts (framebuffer and shader) the render areas/viewport could be copied in an array of 16 structs, when only one is needed. This PR will use builder patters so we don't over-allocate. Would spend less CPU cycles when constructing render info, render passes/framebuffers, shaders. Cleanup was part of !129062 Pull Request: https://projects.blender.org/blender/blender/pulls/130515