Team Fortress 2 Source Code as on 22/4/2020
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

41 lines
1.6 KiB

  1. //========= Copyright Valve Corporation, All rights reserved. ============//
  2. //
  3. // Purpose: Exposes interfaces to the engine which allow the client to setup their own render targets
  4. // during the proper period of material system's init.
  5. //
  6. // $NoKeywords: $
  7. //=============================================================================//
  8. #ifndef ICLIENTRENDERTARGETS_H
  9. #define ICLIENTRENDERTARGETS_H
  10. #ifdef _WIN32
  11. #pragma once
  12. #endif
  13. #include "interface.h" // For base interface
  14. class IMaterialSystem;
  15. class IMaterialSystemHardwareConfig;
  16. //---------------------------------------------------------------------------------------------------
  17. // Purpose: Exposes interfaces to the engine which allow the client to setup their own render targets
  18. // during the proper period of material system's init.
  19. //---------------------------------------------------------------------------------------------------
  20. abstract_class IClientRenderTargets
  21. {
  22. public:
  23. // Pass the material system interface to the client-- Their Material System singleton has not been created
  24. // at the time they receive this call.
  25. virtual void InitClientRenderTargets( IMaterialSystem* pMaterialSystem, IMaterialSystemHardwareConfig* pHardwareConfig ) = 0;
  26. // Call shutdown on every created refrence-- Clients keep track of this themselves
  27. // and should add shutdown code to this function whenever they add a new render target.
  28. virtual void ShutdownClientRenderTargets( void ) = 0;
  29. };
  30. #define CLIENTRENDERTARGETS_INTERFACE_VERSION "ClientRenderTargets001"
  31. extern IClientRenderTargets * g_pClientRenderTargets;
  32. #endif // ICLIENTRENDERTARGETS_H