port from perforce

This commit is contained in:
2026-04-18 22:31:51 +02:00
commit 8d0ab5b7cc
8409 changed files with 3972376 additions and 0 deletions

View File

@@ -0,0 +1,53 @@
#pragma once
#include "BasisParameterCollection.h"
#include "IShaderParameterCollection.h"
#include "../Commands/CommandUserBase.h"
struct IEngine;
class ShaderParameterCollection
: public IShaderParameterCollection
, public CommandUserBase
{
static const unsigned char SetShaderParameterCollectionCommandType = 0;
static const unsigned char SetFollowingShaderParameterCollectionCommandType = 1;
public:
ShaderParameterCollection(IEngine& argEngine, unsigned char argBasePriority = 4);
virtual ~ShaderParameterCollection();
virtual void Uninitialize();
// IShaderParameterCollection
virtual bool get_IsPreconditionForFollowingShaders() const;
virtual void set_IsPreconditionForFollowingShaders(bool argValue);
virtual void SetParameter(const string8& argParameterName,IShaderParameter* ar_Parameter_);
virtual void SetParameter(const string8& argParameterName, ITexture& argParameter, ParameterBindType::Enumeration argParamNameType = ParameterBindType::BindBySemantic);
virtual void SetParameter(const string8& argParameterName, float* af_Parameter_, ParameterBindType::Enumeration argParamNameType = ParameterBindType::BindBySemantic);
virtual void SetParameter(const string8& argParameterName, float argParameter, ParameterBindType::Enumeration argParamNameType = ParameterBindType::BindBySemantic);
virtual void SetParameter(const string8& argParameterName, D3DXVECTOR4* ar_Parameter_, ParameterBindType::Enumeration argParamNameType = ParameterBindType::BindBySemantic);
virtual void SetParameter(const string8& argParameterName, const D3DXVECTOR4& argParameter, ParameterBindType::Enumeration argParamNameType = ParameterBindType::BindBySemantic);
virtual void SetParameter(const string8& argParameterName, D3DXVECTOR3* ar_Parameter_, ParameterBindType::Enumeration argParamNameType = ParameterBindType::BindBySemantic);
virtual void SetParameter(const string8& argParameterName, const D3DXVECTOR3& argParameter, ParameterBindType::Enumeration argParamNameType = ParameterBindType::BindBySemantic);
virtual void SetParameter(const string8& argParameterName, D3DXMATRIX* argParameter, ParameterBindType::Enumeration argParamNameType = ParameterBindType::BindBySemantic);
virtual void SetParameter(const string8& argParameterName, const D3DXMATRIX& argParameter, ParameterBindType::Enumeration argParamNameType = ParameterBindType::BindBySemantic);
virtual void SetParameter(const string8& argParameterName, bool* ab_Parameter_, ParameterBindType::Enumeration argParamNameType = ParameterBindType::BindBySemantic);
virtual void SetParameter(const string8& argParameterName, bool argParameter, ParameterBindType::Enumeration argParamNameType = ParameterBindType::BindBySemantic);
virtual void RemoveParameter(const string8& argParameterName);
protected:
// ICommandUser
virtual CommandExecuteResult::Enumeration ExecuteCommand(unsigned char argCommandType, ICommandBuffer& argCurrentBuffer, uint32 argCurrentPositon);
virtual bool get_IsPreconditionForNextCommands() const { return m_IsPreconditionForFollowingShaders; }
virtual string8 get_UserName() const { return "ShaderParameterCollection"; }
void UseOnShader(IShader& argShader);
protected:
IEngine& m_Engine;
BasisShaderParameterCollection m_BasisShaderParameterCollection;
bool m_IsPreconditionForFollowingShaders;
unsigned char m_BasePriority;
};