delta-client
delta-client copied to clipboard
Implement off-screen rendering for future expansion.
Description
This PR implements a new type of renderer which is responsible for managing render target textures and render pass descriptor used for off-screen rendering. It's render() function uses off-screen render target texture as source for on-screen rendering, and performs such pass using a full sized quad onto which texture is rendered.
All features (rescaling window) are still fully functional due to updateRenderTarget(). Profiler indicates significant improvement in encoding times and reduction of FPS fluctuation. Rendering is no longer limited by fetching view's render pass descriptor for the drawable.
Additional (off-screen) render pass performance impact is negligible (if any).
Type of change
- [x] New feature (non-breaking change which adds functionality)
Checklist:
- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my own code
- [x] I have commented my code, particularly in hard-to-understand areas
- [x] I have made corresponding changes to the documentation comments
- [x] My changes generate no new warnings
Oh, and I commented on the upscaling factor of 0 thing as well