// Copyright (c) Wojciech Figat. All rights reserved. #pragma once #include "RendererPass.h" #include "Engine/Graphics/GPUPipelineStatePermutations.h" /// /// Color Grading and Tone Mapping rendering service. Generates HDR LUT for PostFx pass. /// class ColorGradingPass : public RendererPass { private: int32 _use3D = -1; AssetReference _shader; GPUPipelineStatePermutationsPs<4> _psLut; public: /// /// Renders Look Up table with color grading parameters mixed in. /// /// The rendering context. /// Allocated temp render target with a rendered LUT - cached within Render Buffers, released automatically. GPUTexture* RenderLUT(RenderContext& renderContext); private: #if COMPILE_WITH_DEV_ENV uint64 _reloadedFrame = 0; void OnShaderReloading(Asset* obj); #endif public: // [RendererPass] String ToString() const override; bool Init() override; void Dispose() override; protected: // [RendererPass] bool setupResources() override; };