@@ -20,6 +20,46 @@ std::shared_ptr<Texture> CompositePass::getResult() {
2020}
2121
2222void CompositePass::render (
23+ [[maybe_unused]] InstanceRenderer &instance_renderer,
24+ [[maybe_unused]] Scene &scene,
25+ Context &ctx,
26+ const Assets &assets,
27+ [[maybe_unused]] const Camera &camera,
28+ [[maybe_unused]] UniformSetter &setter
29+ ) {
30+
31+ ctx.disable (Capabilities::DepthTest);
32+ ctx.disable (Capabilities::Blending);
33+
34+ {
35+ ctx.setViewPort (getResult ()->getSize ());
36+ framebuffer.clear ();
37+
38+ auto & shader = assets.shaders .get (" composite" );
39+
40+ shader.setUniform (" lightened" , renderer.getPass <TranslucentPass>().getResult ());
41+
42+ {
43+ shader.setUniform (" outline" , renderer.getPass <OutlinePass>().getResult ())
44+ .setUniform (" tone_mapping_exposure" , tone_mapping_exposure)
45+ .setUniform (" gamma" , gamma);
46+ }
47+
48+ shader.use ();
49+
50+ assets.meshes .at (" quad" )->draw ();
51+ }
52+ }
53+
54+ void CompositePass::onFramebufferChange (glm::uvec2 size) {
55+ framebuffer.onFramebufferChange (size);
56+ }
57+
58+ CompositeWithBloomPass::CompositeWithBloomPass (Renderer& renderer)
59+ : CompositePass {renderer} {
60+ }
61+
62+ void CompositeWithBloomPass::render (
2363 [[maybe_unused]] InstanceRenderer &instance_renderer,
2464 [[maybe_unused]] Scene &scene,
2565 Context &ctx,
@@ -34,7 +74,7 @@ void CompositePass::render(
3474 ctx.setViewPort (getResult ()->getSize ());
3575 framebuffer.clear ();
3676
37- auto & shader = assets.shaders .get (" composite " );
77+ auto & shader = assets.shaders .get (" composite_with_bloom " );
3878
3979 shader.setUniform (" lightened" , renderer.getPass <TranslucentPass>().getResult ());
4080
@@ -55,7 +95,3 @@ void CompositePass::render(
5595 assets.meshes .at (" quad" )->draw ();
5696 }
5797}
58-
59- void CompositePass::onFramebufferChange (glm::uvec2 size) {
60- framebuffer.onFramebufferChange (size);
61- }
0 commit comments