text: //========= Copyright Valve Corporation, All rights reserved. ============//
  //
  // Purpose: Exposes interfaces to the engine which allow the client to setup their own render targets
  //          during the proper period of material system's init.
  //
  // $NoKeywords: $
  //=============================================================================//
  
  #ifndef ICLIENTRENDERTARGETS_H
  #define ICLIENTRENDERTARGETS_H
  #ifdef _WIN32
      #pragma once
  #endif
  
  #include "interface.h"      // For base interface
  
  class IMaterialSystem;
  class IMaterialSystemHardwareConfig;
  
  //---------------------------------------------------------------------------------------------------
  // Purpose: Exposes interfaces to the engine which allow the client to setup their own render targets
  //          during the proper period of material system's init.
  //---------------------------------------------------------------------------------------------------
  abstract_class IClientRenderTargets
  {
  public:
      // Pass the material system interface to the client-- Their Material System singleton has not been created
      // at the time they receive this call.
      virtual void InitClientRenderTargets( IMaterialSystem* pMaterialSystem, IMaterialSystemHardwareConfig* pHardwareConfig ) = 0;
  
      // Call shutdown on every created refrence-- Clients keep track of this themselves
      // and should add shutdown code to this function whenever they add a new render target.
      virtual void ShutdownClientRenderTargets( void ) = 0;
  
  };
  
  #define CLIENTRENDERTARGETS_INTERFACE_VERSION "ClientRenderTargets001"
  
  extern IClientRenderTargets * g_pClientRenderTargets;
  
  #endif // ICLIENTRENDERTARGETS_H
  