-----------------------------------------------------------------------
| 933 | } |
| 934 | //----------------------------------------------------------------------- |
| 935 | void RenderQueue::renderSingleObject( Renderable *pRend, const MovableObject *pMovableObject, |
| 936 | RenderSystem *rs, bool casterPass, bool dualParaboloid ) |
| 937 | { |
| 938 | if( mLastVaoName ) |
| 939 | { |
| 940 | rs->_startLegacyV1Rendering(); |
| 941 | mLastVaoName = 0; |
| 942 | } |
| 943 | |
| 944 | if( mLastWasCasterPass != casterPass ) |
| 945 | { |
| 946 | clearState(); |
| 947 | mLastWasCasterPass = casterPass; |
| 948 | } |
| 949 | |
| 950 | const HlmsDatablock *datablock = pRend->getDatablock(); |
| 951 | |
| 952 | ++mRenderingStarted; |
| 953 | mRoot->_notifyRenderingFrameStarted(); |
| 954 | |
| 955 | Hlms *hlms = datablock->getCreator(); |
| 956 | HlmsCache passCache = hlms->preparePassHash( mSceneManager->getCurrentShadowNode(), casterPass, |
| 957 | dualParaboloid, mSceneManager ); |
| 958 | |
| 959 | const QueuedRenderable queuedRenderable( 0, pRend, pMovableObject ); |
| 960 | v1::RenderOperation op; |
| 961 | queuedRenderable.renderable->getRenderOperation( |
| 962 | op, casterPass & ( datablock->getAlphaTest() == CMPF_ALWAYS_PASS ) ); |
| 963 | /*uint32 hlmsHash = casterPass ? queuedRenderable.renderable->getHlmsCasterHash() : |
| 964 | queuedRenderable.renderable->getHlmsHash();*/ |
| 965 | |
| 966 | if( mLastVertexData != op.vertexData ) |
| 967 | { |
| 968 | mLastVertexData = op.vertexData; |
| 969 | } |
| 970 | if( mLastIndexData != op.indexData ) |
| 971 | { |
| 972 | mLastIndexData = op.indexData; |
| 973 | } |
| 974 | |
| 975 | const HlmsCache *hlmsCache = |
| 976 | hlms->getMaterial( &c_dummyCache, passCache, queuedRenderable, casterPass ); |
| 977 | rs->_setPipelineStateObject( &hlmsCache->pso ); |
| 978 | |
| 979 | mLastTextureHash = |
| 980 | hlms->fillBuffersFor( hlmsCache, queuedRenderable, casterPass, 0, mLastTextureHash ); |
| 981 | |
| 982 | const v1::CbRenderOp cmd( op ); |
| 983 | rs->_setRenderOperation( &cmd ); |
| 984 | |
| 985 | rs->_render( op ); |
| 986 | |
| 987 | mLastVaoName = 0; |
| 988 | --mRenderingStarted; |
| 989 | } |
| 990 | //----------------------------------------------------------------------- |
| 991 | void RenderQueue::frameEnded() |
| 992 | { |
nothing calls this directly
no test coverage detected