text: #pragma once
  
  
  //[-------------------------------------------------------]
  //[ Includes                                              ]
  //[-------------------------------------------------------]
  #include "Resource/CompositorNode/Pass/ICompositorInstancePass.h"
  
  
  //[-------------------------------------------------------]
  //[ Forward declarations                                  ]
  //[-------------------------------------------------------]
  namespace RendererRuntime
  {
  	class CompositorResourcePassClear;
  }
  
  
  //[-------------------------------------------------------]
  //[ Namespace                                             ]
  //[-------------------------------------------------------]
  namespace RendererRuntime
  {
  
  
  	//[-------------------------------------------------------]
  	//[ Classes                                               ]
  	//[-------------------------------------------------------]
  	class CompositorInstancePassClear final : public ICompositorInstancePass
  	{
  
  
  	//[-------------------------------------------------------]
  	//[ Friends                                               ]
  	//[-------------------------------------------------------]
  		friend class CompositorPassFactory;	// The only one allowed to create instances of this class
  
  
  	//[-------------------------------------------------------]
  	//[ Protected virtual RendererRuntime::ICompositorInstancePass methods ]
  	//[-------------------------------------------------------]
  	protected:
  		virtual void onFillCommandBuffer(const Renderer::IRenderTarget* renderTarget, const CompositorContextData& compositorContextData, Renderer::CommandBuffer& commandBuffer) override;
  
  
  	//[-------------------------------------------------------]
  	//[ Private methods                                       ]
  	//[-------------------------------------------------------]
  	private:
  		CompositorInstancePassClear(const CompositorResourcePassClear& compositorResourcePassClear, const CompositorNodeInstance& compositorNodeInstance);
  
  		inline virtual ~CompositorInstancePassClear() override
  		{
  			// Nothing here
  		}
  
  		explicit CompositorInstancePassClear(const CompositorInstancePassClear&) = delete;
  		CompositorInstancePassClear& operator=(const CompositorInstancePassClear&) = delete;
  
  
  	};
  
  
  //[-------------------------------------------------------]
  //[ Namespace                                             ]
  //[-------------------------------------------------------]
  } // RendererRuntime
  