// Copyright (c) 2012-2023 Wojciech Figat. All rights reserved. #pragma once #include "MaterialShader.h" /// /// Represents material that can be used to render post-process effects. /// class PostFxMaterialShader : public MaterialShader { private: struct Cache { GPUPipelineState* Default = nullptr; FORCE_INLINE void Release() { SAFE_DELETE_GPU_RESOURCE(Default); } }; private: Cache _cache; public: /// /// Init /// /// Material resource name PostFxMaterialShader(const StringView& name) : MaterialShader(name) { } public: // [MaterialShader] void Bind(BindParameters& params) override; void Unload() override; protected: // [MaterialShader] bool Load() override; };