| 1109 | } |
| 1110 | |
| 1111 | void RenderPrePassMgr::clearBuffers() |
| 1112 | { |
| 1113 | // Clear z-buffer. |
| 1114 | GFX->clear( GFXClearTarget | GFXClearZBuffer | GFXClearStencil, ColorI::ZERO, 1.0f, 0); |
| 1115 | |
| 1116 | if ( !mClearGBufferShader ) |
| 1117 | return; |
| 1118 | |
| 1119 | GFXTransformSaver saver; |
| 1120 | |
| 1121 | // Clear the g-buffer. |
| 1122 | RectI box(-1, -1, 3, 3); |
| 1123 | GFX->setWorldMatrix( MatrixF::Identity ); |
| 1124 | GFX->setViewMatrix( MatrixF::Identity ); |
| 1125 | GFX->setProjectionMatrix( MatrixF::Identity ); |
| 1126 | |
| 1127 | GFX->setShader(mClearGBufferShader); |
| 1128 | GFX->setStateBlock(mStateblock); |
| 1129 | |
| 1130 | Point2F nw(-0.5,-0.5); |
| 1131 | Point2F ne(0.5,-0.5); |
| 1132 | |
| 1133 | GFXVertexBufferHandle<GFXVertexPC> verts(GFX, 4, GFXBufferTypeVolatile); |
| 1134 | verts.lock(); |
| 1135 | |
| 1136 | F32 ulOffset = 0.5f - GFX->getFillConventionOffset(); |
| 1137 | |
| 1138 | Point2F upperLeft(-1.0, -1.0); |
| 1139 | Point2F lowerRight(1.0, 1.0); |
| 1140 | |
| 1141 | verts[0].point.set( upperLeft.x+nw.x+ulOffset, upperLeft.y+nw.y+ulOffset, 0.0f ); |
| 1142 | verts[1].point.set( lowerRight.x+ne.x, upperLeft.y+ne.y+ulOffset, 0.0f ); |
| 1143 | verts[2].point.set( upperLeft.x-ne.x+ulOffset, lowerRight.y-ne.y, 0.0f ); |
| 1144 | verts[3].point.set( lowerRight.x-nw.x, lowerRight.y-nw.y, 0.0f ); |
| 1145 | |
| 1146 | verts.unlock(); |
| 1147 | |
| 1148 | GFX->setVertexBuffer( verts ); |
| 1149 | GFX->drawPrimitive( GFXTriangleStrip, 0, 2 ); |
| 1150 | GFX->setShader(NULL); |
| 1151 | } |
nothing calls this directly
no test coverage detected