delta-client icon indicating copy to clipboard operation
delta-client copied to clipboard

Implement off-screen rendering for future expansion.

Open gracien-app opened this issue 3 years ago • 1 comments

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

gracien-app avatar Oct 15 '22 15:10 gracien-app

Oh, and I commented on the upscaling factor of 0 thing as well

stackotter avatar Oct 17 '22 00:10 stackotter