#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; CRegion damage; int round = 0; float roundingPower = 2.0f; bool flipEndFrame = false; std::optional replaceProjection; CBox clipBox; }; 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 data; };