diff options
| author | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
|---|---|---|
| committer | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
| commit | 3bf9df6b2785fa6d951086978a3e66f49427166a (patch) | |
| tree | 2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /public/movieobjects/dmeshader.h | |
| download | archived-source-engine-2018-hl2-src-master.tar.xz archived-source-engine-2018-hl2-src-master.zip | |
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 |