MCPcopy Create free account
hub / github.com/OGRECave/ogre-next / configureRenderer

Method configureRenderer

OgreMain/src/OgreParticleSystem.cpp:1080–1125  ·  view source on GitHub ↗

-----------------------------------------------------------------------

Source from the content-addressed store, hash-verified

1078 }
1079 //-----------------------------------------------------------------------
1080 void ParticleSystem::configureRenderer()
1081 {
1082 // Actual allocate particles
1083 size_t currSize = mParticlePool.size();
1084 size_t size = mPoolSize;
1085 if( currSize < size )
1086 {
1087 this->increasePool( size );
1088
1089 for( size_t i = currSize; i < size; ++i )
1090 {
1091 // Add new items to the queue
1092 mFreeParticles.push_back( mParticlePool[i] );
1093 }
1094
1095 // Tell the renderer, if already configured
1096 if( mRenderer && mIsRendererConfigured )
1097 {
1098 mRenderer->_notifyParticleQuota( size );
1099 }
1100 }
1101
1102 if( mRenderer && !mIsRendererConfigured )
1103 {
1104 mRenderer->_notifyParticleQuota( mParticlePool.size() );
1105 mRenderer->_notifyAttached( mParentNode );
1106 mRenderer->_notifyDefaultDimensions( mDefaultWidth, mDefaultHeight );
1107 createVisualParticles( 0, mParticlePool.size() );
1108 mRenderer->setRenderQueueGroup( mRenderQueueID );
1109 mRenderer->setKeepParticlesInLocalSpace( mLocalSpace );
1110
1111 HlmsManager *hlmsManager = Root::getSingleton().getHlmsManager();
1112 // Give preference to HLMS materials of the same name
1113 HlmsDatablock *datablock = hlmsManager->getDatablockNoDefault( mMaterialName );
1114 if( datablock )
1115 {
1116 mRenderer->_setDatablock( datablock );
1117 }
1118 else
1119 {
1120 mRenderer->_setMaterialName( mMaterialName, mResourceGroupName );
1121 }
1122
1123 mIsRendererConfigured = true;
1124 }
1125 }
1126 //-----------------------------------------------------------------------
1127 ParticleSystemRenderer *ParticleSystem::getRenderer() const { return mRenderer; }
1128 //-----------------------------------------------------------------------

Callers

nothing calls this directly

Calls 12

increasePoolMethod · 0.95
_notifyParticleQuotaMethod · 0.80
getHlmsManagerMethod · 0.80
getDatablockNoDefaultMethod · 0.80
_setDatablockMethod · 0.80
_setMaterialNameMethod · 0.80
sizeMethod · 0.45
push_backMethod · 0.45
_notifyAttachedMethod · 0.45
setRenderQueueGroupMethod · 0.45

Tested by

no test coverage detected