ruby-ogre 0.0.3-x86-linux → 0.0.4-x86-linux

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. data/Rakefile +7 -8
  2. data/bindings/ogre/interface/ogre_all.i +1 -0
  3. data/bindings/ogre/interface/ogre_wrap.cpp +591 -46
  4. data/bindings/ogre/interface/ogre_wrap.o +0 -0
  5. data/bindings/ogrebites/interface/ogrebites_wrap.o +0 -0
  6. data/bindings/procedural/interface/procedural_wrap.o +0 -0
  7. data/deps/include/OGRE/OgreAny.h +23 -1
  8. data/deps/include/OGRE/OgreBillboardChain.h +5 -1
  9. data/deps/include/OGRE/OgreBillboardParticleRenderer.h +2 -0
  10. data/deps/include/OGRE/OgreConfigDialog.h +0 -2
  11. data/deps/include/OGRE/OgreDynLib.h +1 -7
  12. data/deps/include/OGRE/OgreErrorDialog.h +0 -2
  13. data/deps/include/OGRE/OgreHeaderSuffix.h +3 -3
  14. data/deps/include/OGRE/OgreInstanceBatch.h +4 -0
  15. data/deps/include/OGRE/OgreInstanceManager.h +5 -0
  16. data/deps/include/OGRE/OgreIteratorRange.h +13 -2
  17. data/deps/include/OGRE/OgreParticleSystem.h +2 -0
  18. data/deps/include/OGRE/OgreParticleSystemRenderer.h +4 -0
  19. data/deps/include/OGRE/OgrePlatform.h +5 -28
  20. data/deps/include/OGRE/OgrePrerequisites.h +1 -1
  21. data/deps/include/OGRE/OgreProfiler.h +102 -59
  22. data/deps/include/OGRE/OgreProgressiveMesh.h +2 -2
  23. data/deps/include/OGRE/OgreRenderSystem.h +18 -1
  24. data/deps/include/OGRE/OgreRoot.h +1 -1
  25. data/deps/include/OGRE/OgreSearchOps.h +0 -5
  26. data/deps/include/OGRE/OgreSimpleRenderable.h +1 -1
  27. data/deps/include/OGRE/OgreStdHeaders.h +2 -2
  28. data/deps/include/OGRE/OgreStringConverter.h +5 -0
  29. data/deps/include/OGRE/OgreTimer.h +1 -1
  30. data/deps/include/OGRE/OgreUTFString.h +0 -2
  31. data/deps/include/OGRE/OgreWindowEventUtilities.h +3 -1
  32. data/deps/include/OGRE/OgreWorkQueue.h +2 -2
  33. data/deps/include/OGRE/RTShaderSystem/OgreShaderCGProgramProcessor.h +5 -5
  34. data/deps/include/OGRE/RTShaderSystem/OgreShaderCGProgramWriter.h +17 -15
  35. data/deps/include/OGRE/RTShaderSystem/OgreShaderExDualQuaternionSkinning.h +3 -3
  36. data/deps/include/OGRE/RTShaderSystem/OgreShaderExHardwareSkinning.h +5 -4
  37. data/deps/include/OGRE/RTShaderSystem/OgreShaderExHardwareSkinningTechnique.h +3 -3
  38. data/deps/include/OGRE/RTShaderSystem/OgreShaderExIntegratedPSSM3.h +50 -32
  39. data/deps/include/OGRE/RTShaderSystem/OgreShaderExLayeredBlending.h +13 -9
  40. data/deps/include/OGRE/RTShaderSystem/OgreShaderExLinearSkinning.h +7 -7
  41. data/deps/include/OGRE/RTShaderSystem/OgreShaderExNormalMapLighting.h +149 -95
  42. data/deps/include/OGRE/RTShaderSystem/OgreShaderExPerPixelLighting.h +91 -59
  43. data/deps/include/OGRE/RTShaderSystem/OgreShaderExTextureAtlasSampler.h +14 -9
  44. data/deps/include/OGRE/RTShaderSystem/OgreShaderFFPColour.h +33 -24
  45. data/deps/include/OGRE/RTShaderSystem/OgreShaderFFPFog.h +44 -30
  46. data/deps/include/OGRE/RTShaderSystem/OgreShaderFFPLighting.h +70 -45
  47. data/deps/include/OGRE/RTShaderSystem/OgreShaderFFPRenderStateBuilder.h +11 -10
  48. data/deps/include/OGRE/RTShaderSystem/OgreShaderFFPTexturing.h +73 -64
  49. data/deps/include/OGRE/RTShaderSystem/OgreShaderFFPTransform.h +8 -8
  50. data/deps/include/OGRE/RTShaderSystem/OgreShaderFunction.h +42 -35
  51. data/deps/include/OGRE/RTShaderSystem/OgreShaderFunctionAtom.h +38 -32
  52. data/deps/include/OGRE/RTShaderSystem/OgreShaderGLSLESProgramProcessor.h +9 -8
  53. data/deps/include/OGRE/RTShaderSystem/OgreShaderGLSLESProgramWriter.h +45 -36
  54. data/deps/include/OGRE/RTShaderSystem/OgreShaderGLSLProgramProcessor.h +9 -8
  55. data/deps/include/OGRE/RTShaderSystem/OgreShaderGLSLProgramWriter.h +26 -20
  56. data/deps/include/OGRE/RTShaderSystem/OgreShaderGenerator.h +211 -160
  57. data/deps/include/OGRE/RTShaderSystem/OgreShaderHLSLProgramProcessor.h +5 -5
  58. data/deps/include/OGRE/RTShaderSystem/OgreShaderHLSLProgramWriter.h +17 -15
  59. data/deps/include/OGRE/RTShaderSystem/OgreShaderMaterialSerializerListener.h +5 -3
  60. data/deps/include/OGRE/RTShaderSystem/OgreShaderParameter.h +86 -73
  61. data/deps/include/OGRE/RTShaderSystem/OgreShaderProgram.h +36 -30
  62. data/deps/include/OGRE/RTShaderSystem/OgreShaderProgramManager.h +38 -31
  63. data/deps/include/OGRE/RTShaderSystem/OgreShaderProgramProcessor.h +54 -43
  64. data/deps/include/OGRE/RTShaderSystem/OgreShaderProgramSet.h +18 -14
  65. data/deps/include/OGRE/RTShaderSystem/OgreShaderProgramWriter.h +10 -10
  66. data/deps/include/OGRE/RTShaderSystem/OgreShaderRenderState.h +28 -23
  67. data/deps/include/OGRE/RTShaderSystem/OgreShaderScriptTranslator.h +2 -1
  68. data/deps/include/OGRE/RTShaderSystem/OgreShaderSubRenderState.h +35 -32
  69. data/deps/include/OGRE/RenderSystems/GL/GL/wglew.h +2 -2
  70. data/deps/include/OGRE/RenderSystems/GL/GL/wglext.h +2 -2
  71. data/deps/include/OGRE/RenderSystems/GL/OgreGLRenderSystem.h +10 -1
  72. data/deps/include/OGRE/RenderSystems/GL/OgreGLTextureManager.h +2 -0
  73. data/deps/include/OGRE/Sample.h +5 -0
  74. data/deps/include/OGRE/SampleContext.h +13 -3
  75. data/deps/lib/OGRE/Plugin_BSPSceneManager.so +0 -0
  76. data/deps/lib/OGRE/Plugin_BSPSceneManager.so.1.8.1 +0 -0
  77. data/deps/lib/OGRE/Plugin_CgProgramManager.so +0 -0
  78. data/deps/lib/OGRE/Plugin_CgProgramManager.so.1.8.1 +0 -0
  79. data/deps/lib/OGRE/Plugin_OctreeSceneManager.so +0 -0
  80. data/deps/lib/OGRE/Plugin_OctreeSceneManager.so.1.8.1 +0 -0
  81. data/deps/lib/OGRE/Plugin_OctreeZone.so +0 -0
  82. data/deps/lib/OGRE/Plugin_OctreeZone.so.1.8.1 +0 -0
  83. data/deps/lib/OGRE/Plugin_PCZSceneManager.so +0 -0
  84. data/deps/lib/OGRE/Plugin_PCZSceneManager.so.1.8.1 +0 -0
  85. data/deps/lib/OGRE/Plugin_ParticleFX.so +0 -0
  86. data/deps/lib/OGRE/Plugin_ParticleFX.so.1.8.1 +0 -0
  87. data/deps/lib/OGRE/RenderSystem_GL.so +0 -0
  88. data/deps/lib/OGRE/RenderSystem_GL.so.1.8.1 +0 -0
  89. data/deps/lib/libOgreMain.so +0 -0
  90. data/deps/lib/libOgreMain.so.1.8.1 +0 -0
  91. data/deps/lib/libOgrePaging.so +0 -0
  92. data/deps/lib/libOgrePaging.so.1.8.1 +0 -0
  93. data/deps/lib/libOgreProcedural.so +0 -0
  94. data/deps/lib/libOgreRTShaderSystem.so +0 -0
  95. data/deps/lib/libOgreRTShaderSystem.so.1.8.1 +0 -0
  96. data/deps/lib/libOgreTerrain.so +0 -0
  97. data/deps/lib/libOgreTerrain.so.1.8.1 +0 -0
  98. data/deps/share/OGRE/media/materials/programs/DiffuseOneTexture.glsles +17 -0
  99. data/deps/share/OGRE/media/packs/profiler.zip +0 -0
  100. data/lib/ogre.so +0 -0
  101. data/lib/ogrebites.so +0 -0
  102. data/lib/procedural.so +0 -0
  103. data/lib/version.rb +1 -1
  104. data/sample/charactor/sinbad.rb +8 -4
  105. metadata +16 -4
@@ -62,27 +62,27 @@ public:
62
62
  /**
63
63
  @see SubRenderState::getType.
64
64
  */
65
- virtual const String& getType () const;
65
+ virtual const String& getType() const;
66
66
 
67
67
  /**
68
68
  @see SubRenderState::getType.
69
69
  */
70
- virtual int getExecutionOrder () const;
70
+ virtual int getExecutionOrder() const;
71
71
 
72
72
  /**
73
73
  @see SubRenderState::updateGpuProgramsParams.
74
74
  */
75
- virtual void updateGpuProgramsParams (Renderable* rend, Pass* pass, const AutoParamDataSource* source, const LightList* pLightList);
75
+ virtual void updateGpuProgramsParams(Renderable* rend, Pass* pass, const AutoParamDataSource* source, const LightList* pLightList);
76
76
 
77
77
  /**
78
78
  @see SubRenderState::copyFrom.
79
79
  */
80
- virtual void copyFrom (const SubRenderState& rhs);
80
+ virtual void copyFrom(const SubRenderState& rhs);
81
81
 
82
82
  /**
83
83
  @see SubRenderState::preAddToRenderState.
84
84
  */
85
- virtual bool preAddToRenderState (const RenderState* renderState, Pass* srcPass, Pass* dstPass);
85
+ virtual bool preAddToRenderState(const RenderState* renderState, Pass* srcPass, Pass* dstPass);
86
86
 
87
87
 
88
88
  static String Type;
@@ -94,12 +94,18 @@ protected:
94
94
  struct _OgreRTSSExport LightParams
95
95
  {
96
96
  Light::LightTypes mType; // Light type.
97
- UniformParameterPtr mPosition; // Light position.
98
- UniformParameterPtr mDirection; // Light direction.
99
- UniformParameterPtr mAttenuatParams; // Attenuation parameters.
100
- UniformParameterPtr mSpotParams; // Spot light parameters.
101
- UniformParameterPtr mDiffuseColour; // Diffuse colour.
102
- UniformParameterPtr mSpecularColour; // Specular colour.
97
+ // Light position.
98
+ UniformParameterPtr mPosition;
99
+ // Light direction.
100
+ UniformParameterPtr mDirection;
101
+ // Attenuation parameters.
102
+ UniformParameterPtr mAttenuatParams;
103
+ // Spot light parameters.
104
+ UniformParameterPtr mSpotParams;
105
+ // Diffuse colour.
106
+ UniformParameterPtr mDiffuseColour;
107
+ // Specular colour.
108
+ UniformParameterPtr mSpecularColour;
103
109
 
104
110
  };
105
111
 
@@ -114,85 +120,104 @@ protected:
114
120
  can be the vertex colour component. To establish such a link one should provide the matching flags to this
115
121
  sub render state.
116
122
  */
117
- void setTrackVertexColourType(TrackVertexColourType type) { mTrackVertexColourType = type; }
123
+ void setTrackVertexColourType(TrackVertexColourType type) { mTrackVertexColourType = type; }
118
124
 
119
125
  /**
120
126
  Return the current track per vertex type.
121
127
  */
122
- TrackVertexColourType getTrackVertexColourType() const { return mTrackVertexColourType; }
128
+ TrackVertexColourType getTrackVertexColourType() const { return mTrackVertexColourType; }
123
129
 
124
130
  /**
125
131
  Set the light count per light type that this sub render state will generate.
126
132
  @see ShaderGenerator::setLightCount.
127
133
  */
128
- void setLightCount (const int lightCount[3]);
134
+ void setLightCount(const int lightCount[3]);
129
135
 
130
136
  /**
131
137
  Get the light count per light type that this sub render state will generate.
132
138
  @see ShaderGenerator::getLightCount.
133
139
  */
134
- void getLightCount (int lightCount[3]) const;
140
+ void getLightCount(int lightCount[3]) const;
135
141
 
136
142
  /**
137
143
  Set the specular component state. If set to true this sub render state will compute a specular
138
144
  lighting component in addition to the diffuse component.
139
145
  @param enable Pass true to enable specular component computation.
140
146
  */
141
- void setSpecularEnable (bool enable) { mSpecularEnable = enable; }
147
+ void setSpecularEnable(bool enable) { mSpecularEnable = enable; }
142
148
 
143
149
  /**
144
150
  Get the specular component state.
145
151
  */
146
- bool getSpecularEnable () const { return mSpecularEnable; }
152
+ bool getSpecularEnable() const { return mSpecularEnable; }
147
153
 
148
154
  /**
149
155
  @see SubRenderState::resolveParameters.
150
156
  */
151
- virtual bool resolveParameters (ProgramSet* programSet);
157
+ virtual bool resolveParameters(ProgramSet* programSet);
152
158
 
153
159
  /**
154
160
  @see SubRenderState::resolveDependencies.
155
161
  */
156
- virtual bool resolveDependencies (ProgramSet* programSet);
162
+ virtual bool resolveDependencies(ProgramSet* programSet);
157
163
 
158
164
  /**
159
165
  @see SubRenderState::addFunctionInvocations.
160
166
  */
161
- virtual bool addFunctionInvocations (ProgramSet* programSet);
167
+ virtual bool addFunctionInvocations(ProgramSet* programSet);
162
168
 
163
169
 
164
170
  /**
165
171
  Internal method that adds global illumination component functions invocations.
166
172
  */
167
- bool addGlobalIlluminationInvocation (Function* vsMain, const int groupOrder, int& internalCounter);
173
+ bool addGlobalIlluminationInvocation(Function* vsMain, const int groupOrder, int& internalCounter);
168
174
 
169
175
  /**
170
176
  Internal method that adds per light illumination component functions invocations.
171
177
  */
172
- bool addIlluminationInvocation (LightParams* curLightParams, Function* vsMain, const int groupOrder, int& internalCounter);
178
+ bool addIlluminationInvocation(LightParams* curLightParams, Function* vsMain, const int groupOrder, int& internalCounter);
173
179
 
174
180
 
175
181
  // Attributes.
176
182
  protected:
177
- TrackVertexColourType mTrackVertexColourType; // Track per vertex colour type.
178
- bool mSpecularEnable; // Specular component enabled/disabled.
179
- LightParamsList mLightParamsList; // Light list.
180
- UniformParameterPtr mWorldViewMatrix; // World view matrix parameter.
181
- UniformParameterPtr mWorldViewITMatrix; // World view matrix inverse transpose parameter.
182
- ParameterPtr mVSInPosition; // Vertex shader input position parameter.
183
- ParameterPtr mVSInNormal; // Vertex shader input normal.
184
- ParameterPtr mVSDiffuse; // Vertex shader diffuse.
185
- ParameterPtr mVSOutDiffuse; // Vertex shader output diffuse colour parameter.
186
- ParameterPtr mVSOutSpecular; // Vertex shader output specular colour parameter.
187
- UniformParameterPtr mDerivedSceneColour; // Derived scene colour parameter.
188
- UniformParameterPtr mLightAmbientColour; // Ambient light colour parameter.
189
- UniformParameterPtr mDerivedAmbientLightColour; // Derived ambient light colour parameter.
190
- UniformParameterPtr mSurfaceAmbientColour; // Surface ambient colour parameter.
191
- UniformParameterPtr mSurfaceDiffuseColour; // Surface diffuse colour parameter.
192
- UniformParameterPtr mSurfaceSpecularColour; // Surface specular colour parameter.
193
- UniformParameterPtr mSurfaceEmissiveColour; // Surface emissive colour parameter.
194
- UniformParameterPtr mSurfaceShininess; // Surface shininess parameter.
195
- static Light msBlankLight; // Shared blank light.
183
+ // Track per vertex colour type.
184
+ TrackVertexColourType mTrackVertexColourType;
185
+ // Specular component enabled/disabled.
186
+ bool mSpecularEnable;
187
+ // Light list.
188
+ LightParamsList mLightParamsList;
189
+ // World view matrix parameter.
190
+ UniformParameterPtr mWorldViewMatrix;
191
+ // World view matrix inverse transpose parameter.
192
+ UniformParameterPtr mWorldViewITMatrix;
193
+ // Vertex shader input position parameter.
194
+ ParameterPtr mVSInPosition;
195
+ // Vertex shader input normal.
196
+ ParameterPtr mVSInNormal;
197
+ // Vertex shader diffuse.
198
+ ParameterPtr mVSDiffuse;
199
+ // Vertex shader output diffuse colour parameter.
200
+ ParameterPtr mVSOutDiffuse;
201
+ // Vertex shader output specular colour parameter.
202
+ ParameterPtr mVSOutSpecular;
203
+ // Derived scene colour parameter.
204
+ UniformParameterPtr mDerivedSceneColour;
205
+ // Ambient light colour parameter.
206
+ UniformParameterPtr mLightAmbientColour;
207
+ // Derived ambient light colour parameter.
208
+ UniformParameterPtr mDerivedAmbientLightColour;
209
+ // Surface ambient colour parameter.
210
+ UniformParameterPtr mSurfaceAmbientColour;
211
+ // Surface diffuse colour parameter.
212
+ UniformParameterPtr mSurfaceDiffuseColour;
213
+ // Surface specular colour parameter.
214
+ UniformParameterPtr mSurfaceSpecularColour;
215
+ // Surface emissive colour parameter.
216
+ UniformParameterPtr mSurfaceEmissiveColour;
217
+ // Surface shininess parameter.
218
+ UniformParameterPtr mSurfaceShininess;
219
+ // Shared blank light.
220
+ static Light msBlankLight;
196
221
 
197
222
  };
198
223
 
@@ -208,17 +233,17 @@ public:
208
233
  /**
209
234
  @see SubRenderStateFactory::getType.
210
235
  */
211
- virtual const String& getType () const;
236
+ virtual const String& getType() const;
212
237
 
213
238
  /**
214
239
  @see SubRenderStateFactory::createInstance.
215
240
  */
216
- virtual SubRenderState* createInstance (ScriptCompiler* compiler, PropertyAbstractNode* prop, Pass* pass, SGScriptTranslator* translator);
241
+ virtual SubRenderState* createInstance(ScriptCompiler* compiler, PropertyAbstractNode* prop, Pass* pass, SGScriptTranslator* translator);
217
242
 
218
243
  /**
219
244
  @see SubRenderStateFactory::writeInstance.
220
245
  */
221
- virtual void writeInstance (MaterialSerializer* ser, SubRenderState* subRenderState, Pass* srcPass, Pass* dstPass);
246
+ virtual void writeInstance(MaterialSerializer* ser, SubRenderState* subRenderState, Pass* srcPass, Pass* dstPass);
222
247
 
223
248
 
224
249
  protected:
@@ -226,7 +251,7 @@ protected:
226
251
  /**
227
252
  @see SubRenderStateFactory::createInstanceImpl.
228
253
  */
229
- virtual SubRenderState* createInstanceImpl ();
254
+ virtual SubRenderState* createInstanceImpl();
230
255
 
231
256
 
232
257
  };
@@ -51,8 +51,8 @@ class _OgreRTSSExport FFPRenderStateBuilder : public Singleton<FFPRenderStateBui
51
51
  {
52
52
  // Interface.
53
53
  public:
54
- FFPRenderStateBuilder ();
55
- ~FFPRenderStateBuilder ();
54
+ FFPRenderStateBuilder();
55
+ ~FFPRenderStateBuilder();
56
56
 
57
57
  /** Override standard Singleton retrieval.
58
58
  @remarks
@@ -69,7 +69,7 @@ public:
69
69
  but the implementation stays in this single compilation unit,
70
70
  preventing link errors.
71
71
  */
72
- static FFPRenderStateBuilder& getSingleton ();
72
+ static FFPRenderStateBuilder& getSingleton();
73
73
 
74
74
  /** Override standard Singleton retrieval.
75
75
  @remarks
@@ -86,26 +86,26 @@ public:
86
86
  but the implementation stays in this single compilation unit,
87
87
  preventing link errors.
88
88
  */
89
- static FFPRenderStateBuilder* getSingletonPtr ();
89
+ static FFPRenderStateBuilder* getSingletonPtr();
90
90
 
91
91
 
92
92
  /**
93
93
  Initialize the FFP builder instance.
94
94
  Return true upon success.
95
95
  */
96
- bool initialize ();
96
+ bool initialize();
97
97
 
98
98
  /**
99
99
  Finalize the FFP builder instance.
100
100
  */
101
- void finalize ();
101
+ void finalize();
102
102
 
103
103
  /**
104
104
  Build render state from the given pass that emulates the fixed function pipeline behaviour.
105
105
  @param sgPass The shader generator pass representation. Contains both source and destination pass.
106
106
  @param renderState The target render state that will hold the given pass FFP representation.
107
107
  */
108
- void buildRenderState (ShaderGenerator::SGPass* sgPass, TargetRenderState* renderState);
108
+ void buildRenderState(ShaderGenerator::SGPass* sgPass, TargetRenderState* renderState);
109
109
 
110
110
 
111
111
  // Protected types.
@@ -120,18 +120,19 @@ protected:
120
120
  /**
121
121
  Internal method that builds FFP sub render state.
122
122
  */
123
- void buildFFPSubRenderState (int subRenderStateOrder, const String& subRenderStateType,
123
+ void buildFFPSubRenderState(int subRenderStateOrder, const String& subRenderStateType,
124
124
  ShaderGenerator::SGPass* sgPass, TargetRenderState* renderState);
125
125
 
126
126
  /**
127
127
  Internal method that resolves the colour stage flags.
128
128
  */
129
- void resolveColourStageFlags (ShaderGenerator::SGPass* sgPass, TargetRenderState* renderState);
129
+ void resolveColourStageFlags(ShaderGenerator::SGPass* sgPass, TargetRenderState* renderState);
130
130
 
131
131
 
132
132
  // Attributes.
133
133
  protected:
134
- SubRenderStateFactoryList mFFPSubRenderStateFactoyList; // All factories needed by the FFP.
134
+ // All factories needed by the FFP.
135
+ SubRenderStateFactoryList mFFPSubRenderStateFactoyList;
135
136
 
136
137
  };
137
138
 
@@ -63,27 +63,27 @@ public:
63
63
  /**
64
64
  @see SubRenderState::getType.
65
65
  */
66
- virtual const String& getType () const;
66
+ virtual const String& getType() const;
67
67
 
68
68
  /**
69
69
  @see SubRenderState::getType.
70
70
  */
71
- virtual int getExecutionOrder () const;
71
+ virtual int getExecutionOrder() const;
72
72
 
73
73
  /**
74
74
  @see SubRenderState::updateGpuProgramsParams.
75
75
  */
76
- virtual void updateGpuProgramsParams (Renderable* rend, Pass* pass, const AutoParamDataSource* source, const LightList* pLightList);
76
+ virtual void updateGpuProgramsParams(Renderable* rend, Pass* pass, const AutoParamDataSource* source, const LightList* pLightList);
77
77
 
78
78
  /**
79
79
  @see SubRenderState::copyFrom.
80
80
  */
81
- virtual void copyFrom (const SubRenderState& rhs);
81
+ virtual void copyFrom(const SubRenderState& rhs);
82
82
 
83
83
  /**
84
84
  @see SubRenderState::preAddToRenderState.
85
85
  */
86
- virtual bool preAddToRenderState (const RenderState* renderState, Pass* srcPass, Pass* dstPass);
86
+ virtual bool preAddToRenderState(const RenderState* renderState, Pass* srcPass, Pass* dstPass);
87
87
 
88
88
  static String Type;
89
89
 
@@ -93,19 +93,32 @@ protected:
93
93
  // Per texture unit parameters.
94
94
  struct _OgreRTSSExport TextureUnitParams
95
95
  {
96
- TextureUnitState* mTextureUnitState; // Texture unit state.
97
- const Frustum* mTextureProjector; // Texture projector.
98
- unsigned short mTextureSamplerIndex; // Texture sampler index.
99
- GpuConstantType mTextureSamplerType; // Texture sampler index.
100
- GpuConstantType mVSInTextureCoordinateType; // Vertex shader input texture coordinate type.
101
- GpuConstantType mVSOutTextureCoordinateType; // Vertex shader output texture coordinates type.
102
- TexCoordCalcMethod mTexCoordCalcMethod; // Texture coordinates calculation method.
103
- UniformParameterPtr mTextureMatrix; // Texture matrix parameter.
104
- UniformParameterPtr mTextureViewProjImageMatrix; // Texture View Projection Image space matrix parameter.
105
- UniformParameterPtr mTextureSampler; // Texture sampler parameter.
106
- ParameterPtr mVSInputTexCoord; // Vertex shader input texture coordinates parameter.
107
- ParameterPtr mVSOutputTexCoord; // Vertex shader output texture coordinates parameter.
108
- ParameterPtr mPSInputTexCoord; // Pixel shader input texture coordinates parameter.
96
+ // Texture unit state.
97
+ TextureUnitState* mTextureUnitState;
98
+ // Texture projector.
99
+ const Frustum* mTextureProjector;
100
+ // Texture sampler index.
101
+ unsigned short mTextureSamplerIndex;
102
+ // Texture sampler index.
103
+ GpuConstantType mTextureSamplerType;
104
+ // Vertex shader input texture coordinate type.
105
+ GpuConstantType mVSInTextureCoordinateType;
106
+ // Vertex shader output texture coordinates type.
107
+ GpuConstantType mVSOutTextureCoordinateType;
108
+ // Texture coordinates calculation method.
109
+ TexCoordCalcMethod mTexCoordCalcMethod;
110
+ // Texture matrix parameter.
111
+ UniformParameterPtr mTextureMatrix;
112
+ // Texture View Projection Image space matrix parameter.
113
+ UniformParameterPtr mTextureViewProjImageMatrix;
114
+ // Texture sampler parameter.
115
+ UniformParameterPtr mTextureSampler;
116
+ // Vertex shader input texture coordinates parameter.
117
+ ParameterPtr mVSInputTexCoord;
118
+ // Vertex shader output texture coordinates parameter.
119
+ ParameterPtr mVSOutputTexCoord;
120
+ // Pixel shader input texture coordinates parameter.
121
+ ParameterPtr mPSInputTexCoord;
109
122
  };
110
123
 
111
124
  typedef vector<TextureUnitParams>::type TextureUnitParamsList;
@@ -119,92 +132,79 @@ protected:
119
132
  Set the number of texture units this texturing sub state has to handle.
120
133
  @param count The number of texture unit states.
121
134
  */
122
- void setTextureUnitCount (size_t count);
135
+ void setTextureUnitCount(size_t count);
123
136
 
124
137
  /**
125
138
  Return the number of texture units this sub state handle.
126
139
  */
127
- size_t getTextureUnitCount () const { return mTextureUnitParamsList.size(); }
140
+ size_t getTextureUnitCount() const { return mTextureUnitParamsList.size(); }
128
141
 
129
142
  /**
130
143
  Set texture unit of a given stage index.
131
144
  @param index The stage index of the given texture unit state.
132
145
  @param textureUnitState The texture unit state to bound the the stage index.
133
146
  */
134
- void setTextureUnit (unsigned short index, TextureUnitState* textureUnitState);
147
+ void setTextureUnit(unsigned short index, TextureUnitState* textureUnitState);
135
148
 
136
149
  /**
137
150
  @see SubRenderState::resolveParameters.
138
151
  */
139
- virtual bool resolveParameters (ProgramSet* programSet);
152
+ virtual bool resolveParameters(ProgramSet* programSet);
140
153
 
141
154
  /**
142
155
  Internal method that resolves uniform parameters of the given texture unit parameters.
143
156
  */
144
- bool resolveUniformParams (TextureUnitParams* textureUnitParams, ProgramSet* programSet);
157
+ bool resolveUniformParams(TextureUnitParams* textureUnitParams, ProgramSet* programSet);
145
158
 
146
159
  /**
147
160
  Internal method that resolves functions parameters of the given texture unit parameters.
148
161
  */
149
- bool resolveFunctionsParams (TextureUnitParams* textureUnitParams, ProgramSet* programSet);
162
+ bool resolveFunctionsParams(TextureUnitParams* textureUnitParams, ProgramSet* programSet);
150
163
 
151
164
  /**
152
165
  @see SubRenderState::resolveDependencies.
153
166
  */
154
- virtual bool resolveDependencies (ProgramSet* programSet);
167
+ virtual bool resolveDependencies(ProgramSet* programSet);
155
168
 
156
169
  /**
157
170
  @see SubRenderState::addFunctionInvocations.
158
171
  */
159
- virtual bool addFunctionInvocations (ProgramSet* programSet);
172
+ virtual bool addFunctionInvocations(ProgramSet* programSet);
160
173
 
161
174
 
162
175
  /**
163
176
  Internal method that adds vertex shader functions invocations.
164
177
  */
165
- bool addVSFunctionInvocations(TextureUnitParams* textureUnitParams, Function* vsMain);
178
+ bool addVSFunctionInvocations(TextureUnitParams* textureUnitParams, Function* vsMain);
166
179
 
167
180
  /**
168
181
  Internal method that adds pixel shader functions invocations.
169
182
  */
170
- bool addPSFunctionInvocations(TextureUnitParams* textureUnitParams, Function* psMain, int& internalCounter);
183
+ bool addPSFunctionInvocations(TextureUnitParams* textureUnitParams, Function* psMain, int& internalCounter);
171
184
 
172
185
  /**
173
186
  Adds the fragment shader code which samples the texel color in the texture
174
187
  */
175
- virtual void addPSSampleTexelInvocation(TextureUnitParams* textureUnitParams, Function* psMain,
188
+ virtual void addPSSampleTexelInvocation(TextureUnitParams* textureUnitParams, Function* psMain,
176
189
  const ParameterPtr& texel, int groupOrder, int& internalCounter);
177
190
 
178
- virtual void addPSArgumentInvocations(Function* psMain,
179
- ParameterPtr arg,
180
- ParameterPtr texel,
181
- int samplerIndex,
182
- LayerBlendSource blendSrc,
183
- const ColourValue& colourValue,
184
- Real alphaValue,
185
- bool isAlphaArgument,
186
- const int groupOrder,
187
- int& internalCounter);
188
-
189
- virtual void addPSBlendInvocations(Function* psMain,
190
- ParameterPtr arg1,
191
- ParameterPtr arg2,
192
- ParameterPtr texel,
193
- int samplerIndex,
194
- const LayerBlendModeEx& blendMode,
195
- const int groupOrder,
196
- int& internalCounter,
197
- int targetChannels);
191
+ virtual void addPSArgumentInvocations(Function* psMain, ParameterPtr arg, ParameterPtr texel,
192
+ int samplerIndex, LayerBlendSource blendSrc, const ColourValue& colourValue, Real alphaValue,
193
+ bool isAlphaArgument, const int groupOrder, int& internalCounter);
194
+
195
+ virtual void addPSBlendInvocations(Function* psMain, ParameterPtr arg1, ParameterPtr arg2,
196
+ ParameterPtr texel,int samplerIndex, const LayerBlendModeEx& blendMode,
197
+ const int groupOrder, int& internalCounter, int targetChannels);
198
198
 
199
199
  /**
200
200
  Determines the texture coordinates calculation method of the given texture unit state.
201
201
  */
202
- TexCoordCalcMethod getTexCalcMethod (TextureUnitState* textureUnitState);
202
+ TexCoordCalcMethod getTexCalcMethod(TextureUnitState* textureUnitState);
203
203
 
204
204
  /**
205
205
  Determines if the given texture unit state need to use texture transformation matrix..
206
206
  */
207
- bool needsTextureMatrix (TextureUnitState* textureUnitState);
207
+ bool needsTextureMatrix(TextureUnitState* textureUnitState);
208
208
 
209
209
  /**
210
210
  Determines whether a given texture unit needs to be processed by this srs
@@ -214,15 +214,24 @@ protected:
214
214
 
215
215
  // Attributes.
216
216
  protected:
217
- TextureUnitParamsList mTextureUnitParamsList; // Texture units list.
218
- UniformParameterPtr mWorldMatrix; // World matrix parameter.
219
- UniformParameterPtr mWorldITMatrix; // World inverse transpose matrix parameter.
220
- UniformParameterPtr mViewMatrix; // View matrix parameter.
221
- ParameterPtr mVSInputNormal; // Vertex shader input normal parameter.
222
- ParameterPtr mVSInputPos; // Vertex shader input position parameter.
223
- ParameterPtr mPSOutDiffuse; // Pixel shader output colour.
224
- ParameterPtr mPSDiffuse; // Pixel shader diffuse colour.
225
- ParameterPtr mPSSpecular; // Pixel shader specular colour.
217
+ // Texture units list.
218
+ TextureUnitParamsList mTextureUnitParamsList;
219
+ // World matrix parameter.
220
+ UniformParameterPtr mWorldMatrix;
221
+ // World inverse transpose matrix parameter.
222
+ UniformParameterPtr mWorldITMatrix;
223
+ // View matrix parameter.
224
+ UniformParameterPtr mViewMatrix;
225
+ // Vertex shader input normal parameter.
226
+ ParameterPtr mVSInputNormal;
227
+ // Vertex shader input position parameter.
228
+ ParameterPtr mVSInputPos;
229
+ // Pixel shader output colour.
230
+ ParameterPtr mPSOutDiffuse;
231
+ // Pixel shader diffuse colour.
232
+ ParameterPtr mPSDiffuse;
233
+ // Pixel shader specular colour.
234
+ ParameterPtr mPSSpecular;
226
235
  };
227
236
 
228
237
 
@@ -237,17 +246,17 @@ public:
237
246
  /**
238
247
  @see SubRenderStateFactory::getType.
239
248
  */
240
- virtual const String& getType () const;
249
+ virtual const String& getType() const;
241
250
 
242
251
  /**
243
252
  @see SubRenderStateFactory::createInstance.
244
253
  */
245
- virtual SubRenderState* createInstance (ScriptCompiler* compiler, PropertyAbstractNode* prop, Pass* pass, SGScriptTranslator* translator);
254
+ virtual SubRenderState* createInstance(ScriptCompiler* compiler, PropertyAbstractNode* prop, Pass* pass, SGScriptTranslator* translator);
246
255
 
247
256
  /**
248
257
  @see SubRenderStateFactory::writeInstance.
249
258
  */
250
- virtual void writeInstance (MaterialSerializer* ser, SubRenderState* subRenderState, Pass* srcPass, Pass* dstPass);
259
+ virtual void writeInstance(MaterialSerializer* ser, SubRenderState* subRenderState, Pass* srcPass, Pass* dstPass);
251
260
 
252
261
 
253
262
  protected:
@@ -255,7 +264,7 @@ protected:
255
264
  /**
256
265
  @see SubRenderStateFactory::createInstanceImpl.
257
266
  */
258
- virtual SubRenderState* createInstanceImpl ();
267
+ virtual SubRenderState* createInstanceImpl();
259
268
 
260
269
 
261
270
  };
@@ -54,22 +54,22 @@ public:
54
54
  /**
55
55
  @see SubRenderState::getType.
56
56
  */
57
- virtual const String& getType () const;
57
+ virtual const String& getType() const;
58
58
 
59
59
  /**
60
60
  @see SubRenderState::getExecutionOrder.
61
61
  */
62
- virtual int getExecutionOrder () const;
62
+ virtual int getExecutionOrder() const;
63
63
 
64
64
  /**
65
65
  @see SubRenderState::copyFrom.
66
66
  */
67
- virtual void copyFrom (const SubRenderState& rhs);
67
+ virtual void copyFrom(const SubRenderState& rhs);
68
68
 
69
69
  /**
70
70
  @see SubRenderState::createCpuSubPrograms.
71
71
  */
72
- virtual bool createCpuSubPrograms (ProgramSet* programSet);
72
+ virtual bool createCpuSubPrograms(ProgramSet* programSet);
73
73
 
74
74
 
75
75
  static String Type;
@@ -87,24 +87,24 @@ public:
87
87
  /**
88
88
  @see SubRenderStateFactory::getType.
89
89
  */
90
- virtual const String& getType () const;
90
+ virtual const String& getType() const;
91
91
 
92
92
  /**
93
93
  @see SubRenderStateFactory::createInstance.
94
94
  */
95
- virtual SubRenderState* createInstance (ScriptCompiler* compiler, PropertyAbstractNode* prop, Pass* pass, SGScriptTranslator* translator);
95
+ virtual SubRenderState* createInstance(ScriptCompiler* compiler, PropertyAbstractNode* prop, Pass* pass, SGScriptTranslator* translator);
96
96
 
97
97
  /**
98
98
  @see SubRenderStateFactory::writeInstance.
99
99
  */
100
- virtual void writeInstance (MaterialSerializer* ser, SubRenderState* subRenderState, Pass* srcPass, Pass* dstPass);
100
+ virtual void writeInstance(MaterialSerializer* ser, SubRenderState* subRenderState, Pass* srcPass, Pass* dstPass);
101
101
 
102
102
  protected:
103
103
 
104
104
  /**
105
105
  @see SubRenderStateFactory::createInstanceImpl.
106
106
  */
107
- virtual SubRenderState* createInstanceImpl ();
107
+ virtual SubRenderState* createInstanceImpl();
108
108
 
109
109
 
110
110