Counter Strike : Global Offensive Source Code
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.

50 lines
1.4 KiB

  1. //========= Copyright � 1996-2013, Valve Corporation, All rights reserved. ============//
  2. //
  3. // Purpose:
  4. //
  5. // $NoKeywords: $
  6. //=============================================================================//
  7. #ifndef IVISUALSDATAPROCESSOR_H
  8. #define IVISUALSDATAPROCESSOR_H
  9. #include "refcount.h"
  10. class KeyValues;
  11. class CUtlBuffer;
  12. //
  13. // Visuals Data Interface
  14. //
  15. // This abstracts the visuals data processing so that the main composite texture code
  16. // can be used for weapons, clothing, or whatever.
  17. // You need to implement one of these for use with CCompositeTexture.
  18. //
  19. class IVisualsDataCompare
  20. {
  21. public:
  22. virtual void FillCompareBlob() = 0;
  23. virtual const CUtlBuffer &GetCompareBlob() const = 0;
  24. virtual bool Compare( const CUtlBuffer &pOther ) = 0;
  25. };
  26. class IVisualsDataProcessor : public CRefCounted<>
  27. {
  28. public:
  29. IVisualsDataProcessor() {}
  30. virtual KeyValues *GenerateCustomMaterialKeyValues() = 0;
  31. virtual KeyValues *GenerateCompositeMaterialKeyValues( int nMaterialParamId ) = 0;
  32. virtual IVisualsDataCompare *GetCompareObject() = 0;
  33. virtual bool HasCustomMaterial() const = 0;
  34. virtual const char* GetOriginalMaterialName() const = 0;
  35. virtual const char* GetOriginalMaterialBaseName() const = 0;
  36. virtual const char* GetPatternVTFName() const = 0;
  37. virtual void Refresh() = 0;
  38. protected:
  39. virtual ~IVisualsDataProcessor() {}
  40. };
  41. #endif // IVISUALSDATAPROCESSOR_H