Files
bluflame/aiwaz/Aiwaz/Resources/ShaderParameterCollection/BasisParameterCollection.h
2026-04-18 22:31:51 +02:00

39 lines
1.1 KiB
C++

#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<string8, IShaderParameter*> tk_StringToShaderParameter;
typedef std::vector<ShaderParameterPair> tk_ShaderParameterPairs;
typedef std::map<IInternalShader*, tk_ShaderParameterPairs> tk_ShaderToShaderParameter;
tk_ShaderToShaderParameter m_ShaderToParameterMap;
tk_StringToShaderParameter m_ParameterMap;
};