28#ifndef _ShaderExIntegratedPSSM3_
29#define _ShaderExIntegratedPSSM3_
32#ifdef RTSHADER_SYSTEM_BUILD_EXT_SHADERS
49#define SGX_LIB_INTEGRATEDPSSM "SGXLib_IntegratedPSSM"
50#define SGX_FUNC_COMPUTE_SHADOW_COLOUR3 "SGX_ComputeShadowFactor_PSSM3"
51#define SGX_FUNC_APPLYSHADOWFACTOR_DIFFUSE "SGX_ApplyShadowFactor_Diffuse"
52#define SGX_FUNC_MODULATE_SCALAR "SGX_ModulateScalar"
62 typedef vector<Real>::type SplitPointList;
70 virtual const String& getType()
const;
75 virtual int getExecutionOrder()
const;
80 virtual void updateGpuProgramsParams(Renderable* rend, Pass* pass,
const AutoParamDataSource* source,
const LightList* pLightList);
85 virtual void copyFrom(
const SubRenderState& rhs);
91 virtual bool preAddToRenderState(
const RenderState* renderState, Pass* srcPass, Pass* dstPass);
101 void setSplitPoints(
const SplitPointList& newSplitPoints);
114 unsigned int mTextureSamplerIndex;
128 typedef vector<ShadowTextureParams>::type ShadowTextureParamsList;
129 typedef ShadowTextureParamsList::iterator ShadowTextureParamsIterator;
130 typedef ShadowTextureParamsList::const_iterator ShadowTextureParamsConstIterator;
140 virtual bool resolveParameters(ProgramSet* programSet);
145 virtual bool resolveDependencies(ProgramSet* programSet);
150 virtual bool addFunctionInvocations(ProgramSet* programSet);
155 bool addVSInvocation(Function* vsMain,
const int groupOrder,
int& internalCounter);
160 bool addPSInvocation(Program* psProgram,
const int groupOrder,
int& internalCounter);
169 ShadowTextureParamsList mShadowTextureParamsList;
198class _OgreRTSSExport IntegratedPSSM3Factory :
public SubRenderStateFactory
205 virtual const String& getType()
const;
210 virtual SubRenderState* createInstance(ScriptCompiler* compiler, PropertyAbstractNode* prop, Pass* pass, SGScriptTranslator* translator);
218 virtual SubRenderState* createInstanceImpl();
SharedPtr< Parameter > ParameterPtr
SharedPtr< UniformParameter > UniformParameterPtr
float Real
Software floating point type.