VisuTwin Canvas
C++ 3D Engine — Metal Backend
Loading...
Searching...
No Matches
renderPassUpdateClustered.cpp
Go to the documentation of this file.
1// SPDX-License-Identifier: Apache-2.0
2// Copyright 2025-2026 Arnis Lektauers
3//
4// Created by Arnis on 12.09.2025.
5//
6
8
9namespace visutwin::canvas
10{
11 RenderPassUpdateClustered::RenderPassUpdateClustered(const std::shared_ptr<GraphicsDevice>& device, Renderer* renderer,
12 ShadowRenderer* shadowRenderer, ShadowRendererLocal* shadowRendererLocal, LightTextureAtlas* lightTextureAtlas) :
14 {
15 (void)renderer;
16 (void)lightTextureAtlas;
17 _cookiesRenderPass = std::make_shared<RenderPassCookieRenderer>(device);
18 _shadowRenderPass = std::make_shared<RenderPassShadowLocalClustered>(device, shadowRenderer, shadowRendererLocal);
19 }
20
21 void RenderPassUpdateClustered::update(FrameGraph* frameGraph, bool shadowsEnabled, bool cookiesEnabled,
22 const std::vector<Light*>& lights, const std::vector<Light*>& localLights) {
23 _frameGraph = frameGraph;
24
25 if (_cookiesRenderPass) {
26 _cookiesRenderPass->setEnabled(cookiesEnabled);
27 }
28 if (cookiesEnabled && _cookiesRenderPass) {
29 _cookiesRenderPass->update(lights);
30 if (_frameGraph) {
31 _frameGraph->addRenderPass(_cookiesRenderPass);
32 }
33 }
34
35 if (_shadowRenderPass) {
36 _shadowRenderPass->setEnabled(shadowsEnabled);
37 }
38 if (shadowsEnabled && _shadowRenderPass) {
39 _shadowRenderPass->update(localLights);
40 if (_frameGraph) {
41 _frameGraph->addRenderPass(_shadowRenderPass);
42 }
43 }
44 }
45}
std::shared_ptr< GraphicsDevice > device() const
Definition renderPass.h:124
RenderPass(const std::shared_ptr< GraphicsDevice > &device)
Definition renderPass.h:66
RenderPassUpdateClustered(const std::shared_ptr< GraphicsDevice > &device, Renderer *renderer, ShadowRenderer *shadowRenderer, ShadowRendererLocal *shadowRendererLocal, LightTextureAtlas *lightTextureAtlas)
void update(FrameGraph *frameGraph, bool shadowsEnabled, bool cookiesEnabled, const std::vector< Light * > &lights, const std::vector< Light * > &localLights)