#pragma once #include "PassElement.hpp" #include class CWLSurfaceResource; class CTexture; class CSyncTimeline; class CTexPassElement : public IPassElement { public: struct SRenderData { SP tex; CBox box; float a = 1.F; float blurA = 1.F; CRegion damage; int round = 0; float roundingPower = 2.0f; bool flipEndFrame = false; std::optional replaceProjection; CBox clipBox; bool blur = false; std::optional ignoreAlpha; }; CTexPassElement(const SRenderData& data); virtual ~CTexPassElement() = default; virtual void draw(const CRegion& damage); virtual bool needsLiveBlur(); virtual bool needsPrecomputeBlur(); virtual std::optional boundingBox(); virtual CRegion opaqueRegion(); virtual void discard(); virtual const char* passName() { return "CTexPassElement"; } private: SRenderData m_data; };