27 #ifndef _ShaderFFPTextureStage_
28 #define _ShaderFFPTextureStage_
31 #ifdef RTSHADER_SYSTEM_BUILD_CORE_SHADERS
66 virtual const String& getType ()
const;
71 virtual int getExecutionOrder ()
const;
76 virtual void updateGpuProgramsParams (Renderable* rend, Pass* pass,
const AutoParamDataSource* source,
const LightList* pLightList);
81 virtual void copyFrom (
const SubRenderState& rhs);
86 virtual bool preAddToRenderState (RenderState* renderState, Pass* srcPass, Pass* dstPass);
96 TextureUnitState* mTextureUnitState;
97 const Frustum* mTextureProjector;
98 unsigned short mTextureSamplerIndex;
111 typedef vector<TextureUnitParams>::type TextureUnitParamsList;
112 typedef TextureUnitParamsList::iterator TextureUnitParamsIterator;
113 typedef TextureUnitParamsList::const_iterator TextureUnitParamsConstIterator;
122 void setTextureUnitCount (
size_t count);
127 size_t getTextureUnitCount ()
const {
return mTextureUnitParamsList.size(); }
134 void setTextureUnit (
unsigned short index, TextureUnitState* textureUnitState);
139 virtual bool resolveParameters (ProgramSet* programSet);
144 bool resolveUniformParams (TextureUnitParams* textureUnitParams, ProgramSet* programSet);
149 bool resolveFunctionsParams (TextureUnitParams* textureUnitParams, ProgramSet* programSet);
154 virtual bool resolveDependencies (ProgramSet* programSet);
159 virtual bool addFunctionInvocations (ProgramSet* programSet);
165 bool addVSFunctionInvocations(TextureUnitParams* textureUnitParams, Function* vsMain);
170 bool addPSFunctionInvocations(TextureUnitParams* textureUnitParams, Function* psMain,
int& internalCounter);
172 void addPSArgumentInvocations(Function* psMain,
177 const ColourValue& colourValue,
179 bool isAlphaArgument,
180 const int groupOrder,
181 int& internalCounter);
183 void addPSBlendInvocations(Function* psMain,
188 const LayerBlendModeEx& blendMode,
189 const int groupOrder,
190 int& internalCounter,
201 bool needsTextureMatrix (TextureUnitState* textureUnitState);
205 TextureUnitParamsList mTextureUnitParamsList;
221 class _OgreRTSSExport FFPTexturingFactory :
public SubRenderStateFactory
228 virtual const String& getType ()
const;
233 virtual SubRenderState* createInstance (ScriptCompiler* compiler, PropertyAbstractNode* prop, Pass* pass);
238 virtual void writeInstance (MaterialSerializer* ser, SubRenderState* subRenderState, Pass* srcPass, Pass* dstPass);
246 virtual SubRenderState* createInstanceImpl ();
float Real
Software floating point type.
HashedVector< Light * > LightList
TexCoordCalcMethod
Enum describing the ways to generate texture coordinates.
SharedPtr< Parameter > ParameterPtr
GpuConstantType
Enumeration of the types of constant we may encounter in programs.
LayerBlendSource
List of valid sources of values for blending operations used in TextureUnitState::setColourOperation ...
SharedPtr< UniformParameter > UniformParameterPtr