#include "IShaderParameterCollection.h" struct ID3D10EffectVariable; struct IShader; struct IInternalShader; struct IShaderParameter; class BasisShaderParameterCollection { public: BasisShaderParameterCollection(); ~BasisShaderParameterCollection(); void UseParametersOnShader(IShader& argShader); void SetShaderParameter(const string8& argParameterName, IShaderParameter& argParameter); void RemoveShaderParameter(const string8& argParameterName); void RemoveAllShaderParameters(); protected: struct ShaderParameterPair { ShaderParameterPair(IShaderParameter& argShaderParameter, ID3D10EffectVariable* ar_EffectVariable_) : Parameter(&argShaderParameter) , TargetVariable(ar_EffectVariable_) {} IShaderParameter* Parameter; ID3D10EffectVariable* TargetVariable; }; typedef std::map tk_StringToShaderParameter; typedef std::vector tk_ShaderParameterPairs; typedef std::map tk_ShaderToShaderParameter; tk_ShaderToShaderParameter m_ShaderToParameterMap; tk_StringToShaderParameter m_ParameterMap; };