#pragma once #include "Resource.h" struct PingPongBufferDescription { PingPongBufferDescription() { LoopCount = 0; TextureWidth = 0; TextureHeight = 0; TextureFormat = DataFormat::Unknown; } uint32 LoopCount; string16 ShaderFileName; string8 ShaderTechniqueA; string8 ShaderTechniqueB; string8 PreProcessShaderTechnique; uint32 TextureWidth; uint32 TextureHeight; DataFormat::Enumeration TextureFormat; }; struct ITexture; struct IRenderCommandNode; interface IPingPongBuffer { virtual ~IPingPongBuffer() {} virtual ITexture& get_InputTexture() const = 0; virtual void set_InputTexture(ITexture& argTexture) = 0; virtual ITexture& get_OutputTexture() const = 0; virtual const PingPongBufferDescription& get_Descriptor() const = 0; virtual void set_Descriptor(const PingPongBufferDescription& argValue) = 0; virtual IRenderCommandNode& get_RootNode() const = 0; virtual IRenderCommandNode& get_PreProcessNode() const = 0; };