Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Cleanup PostPorcessManager rendering
- the main goal of this change was to move some state changes outside of loops, usually with mip generation. - for instance bindPostProcessDesciptorSet() must now be issued manually (and can be done outside the loop) - we also don't set the scissor for each pass - we also move prepareMaterial() outside of getPipelineState(), it's now done in PostProcessMaterial::getMaterial(). - We use PostProcessVariant instead of uint8_t everywhere In the end we have three drawing helpers: - commitAndRenderFullScreenQuad() which updates a material instance, binds the corresponding material and draws a full screen quad. - renderFullScreenQuad() which just renders a full screen quad. - renderFullScreenQuadWithScissor() which does the same but scisorred Additionally, we have the following helpers for getting materials and instances: - PostProcessMaterial::getMaterial(): which returns the FMaterial - PostProcessMaterial::getMaterialInstance(): which is now a helper returning a material instance from a PostProcessMaterial or FMaterial Most of the change is pluming through these API changes.
- Loading branch information