| 290 | } |
| 291 | |
| 292 | void BasicClouds::renderObject( ObjectRenderInst *ri, SceneRenderState *state, BaseMatInstance *mi ) |
| 293 | { |
| 294 | GFXTransformSaver saver; |
| 295 | |
| 296 | Point3F camPos = state->getCameraPosition(); |
| 297 | MatrixF xfm(true); |
| 298 | xfm.setPosition(camPos); |
| 299 | GFX->multWorld(xfm); |
| 300 | |
| 301 | if ( state->isReflectPass() ) |
| 302 | GFX->setProjectionMatrix( state->getSceneManager()->getNonClipProjection() ); |
| 303 | |
| 304 | GFX->setShader( mShader ); |
| 305 | GFX->setShaderConstBuffer( mShaderConsts ); |
| 306 | GFX->setStateBlock( mStateblock ); |
| 307 | |
| 308 | MatrixF xform(GFX->getProjectionMatrix()); |
| 309 | xform *= GFX->getViewMatrix(); |
| 310 | xform *= GFX->getWorldMatrix(); |
| 311 | |
| 312 | mShaderConsts->setSafe( mModelViewProjSC, xform ); |
| 313 | mShaderConsts->setSafe( mTimeSC, (F32)Sim::getCurrentTime() / 1000.0f ); |
| 314 | GFX->setPrimitiveBuffer( mPB ); |
| 315 | |
| 316 | for ( U32 i = 0; i < TEX_COUNT; i++ ) |
| 317 | { |
| 318 | if ( !mLayerEnabled[i] ) |
| 319 | continue; |
| 320 | |
| 321 | mShaderConsts->setSafe( mTexScaleSC, mTexScale[i] ); |
| 322 | mShaderConsts->setSafe( mTexDirectionSC, mTexDirection[i] * mTexSpeed[i] ); |
| 323 | mShaderConsts->setSafe( mTexOffsetSC, mTexOffset[i] ); |
| 324 | |
| 325 | GFX->setTexture( mDiffuseMapSC->getSamplerRegister(), mTexture[i] ); |
| 326 | GFX->setVertexBuffer( mVB[i] ); |
| 327 | |
| 328 | GFX->drawIndexedPrimitive( GFXTriangleList, 0, 0, smVertCount, 0, smTriangleCount ); |
| 329 | } |
| 330 | } |
| 331 | |
| 332 | |
| 333 | // BasicClouds Internal Methods.... |
nothing calls this directly
no test coverage detected