Cogs.Core
HighlightRegionRenderTask.cpp
1#include "ExtensionRegistry.h"
2
3#include "Renderer/Renderer.h"
4#include "Renderer/RenderStates.h"
5#include "Renderer/RenderTarget.h"
6
7#include "HighlightRegionSystem.h"
8#include "HighlightRegionRenderer.h"
9#include "HighlightRegionRenderTask.h"
10
11
12void Cogs::Core::HighlightRegionRenderTask::apply(RenderTaskContext* renderContext)
13{
14 RenderTarget* renderTarget = output.get(RenderResourceType::RenderTarget)->renderTarget;
15 if (!renderTarget) return;
16
17 RenderList* renderList = input.get(RenderResourceType::RenderList)->renderList;
18 if (!renderList) return;
19
20 RenderTexture* colorTexture = nullptr;
21 if (RenderTaskResource* resource = input.get(RenderResourceType::RenderTexture, "Color"); resource) colorTexture = resource->renderTexure;
22 if (!colorTexture) return;
23
24 RenderTexture* depthTexture = nullptr;
25 if (RenderTaskResource* resource = input.get(RenderResourceType::RenderTexture, "Depth"); resource) depthTexture = resource->renderTexure;
26 if (!depthTexture) return;
27
28 HighlightRegionSystem* hrSystem = ExtensionRegistry::getExtensionSystem<HighlightRegionSystem>(renderContext->context);
29 if (!hrSystem || !hrSystem->renderer) return;
30
31 hrSystem->renderer->render(renderContext, renderTarget, renderList, colorTexture, depthTexture);
32}