#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; bool flipEndFrame = false; SP syncTimeline; int64_t syncPoint = 0; std::optional replaceProjection; }; 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; };