diff options
Diffstat (limited to 'public/movieobjects/dmeshader.h')
| -rw-r--r-- | public/movieobjects/dmeshader.h | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/public/movieobjects/dmeshader.h b/public/movieobjects/dmeshader.h new file mode 100644 index 0000000..f8bee53 --- /dev/null +++ b/public/movieobjects/dmeshader.h @@ -0,0 +1,53 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// A class representing a shader +// +//============================================================================= + +#ifndef DMESHADER_H +#define DMESHADER_H +#ifdef _WIN32 +#pragma once +#endif + +#include "datamodel/dmelement.h" + + +//----------------------------------------------------------------------------- +// Forward declarations +//----------------------------------------------------------------------------- +class IShader; + + +//----------------------------------------------------------------------------- +// A class representing a material +//----------------------------------------------------------------------------- +class CDmeShader : public CDmElement +{ + DEFINE_ELEMENT( CDmeShader, CDmElement ); + +public: + void SetShaderName( const char *pShaderName ); + const char *GetShaderName() const; + + // Resolve + virtual void Resolve(); + +private: + // Finds a shader + IShader *FindShader(); + + // Remove all shader parameters that don't exist in the new shader + void RemoveUnusedShaderParams( IShader *pShader ); + + // Add all shader parameters that don't currently exist + void AddNewShaderParams( IShader *pShader ); + + // Add attribute for shader parameter + CDmAttribute* AddAttributeForShaderParameter( IShader *pShader, int nIndex ); + + IShader *m_pShader; + CDmAttributeVarString m_ShaderName; +}; + +#endif // DMESHADER_H |