| 21 | } |
| 22 | |
| 23 | void ShadowsGL::enable( bool on ) |
| 24 | { |
| 25 | if ( !getViewerInstance().isGLInitialized() ) |
| 26 | return; |
| 27 | if ( on == enabled_ ) |
| 28 | return; |
| 29 | |
| 30 | getViewerInstance().setSceneDirty(); |
| 31 | enabled_ = on; |
| 32 | if ( on ) |
| 33 | { |
| 34 | preDrawConnection_ = getViewerInstance().signals().preDrawSignal.connect( MAKE_SLOT( &ShadowsGL::preDraw_ ), boost::signals2::at_back ); |
| 35 | postDrawConnection_ = getViewerInstance().signals().postDrawPreViewportSignal.connect( MAKE_SLOT( &ShadowsGL::postDraw_ ), boost::signals2::at_front ); |
| 36 | postResizeConnection_ = getViewerInstance().signals().postResizeSignal.connect( MAKE_SLOT( &ShadowsGL::postResize_ ), boost::signals2::at_back ); |
| 37 | |
| 38 | glfwGetFramebufferSize( getViewerInstance().window, &sceneSize_.x, &sceneSize_.y ); |
| 39 | lowSize_ = Vector2i( Vector2f( sceneSize_ ) * quality_ ); |
| 40 | quadObject_.gen(); |
| 41 | sceneFramebuffer_.gen( sceneSize_, false, -1 ); |
| 42 | lowSizeFramebuffer_.gen( lowSize_, false, 0 ); |
| 43 | convolutionXFramebuffer_.gen( lowSize_, false, 0 ); |
| 44 | } |
| 45 | else |
| 46 | { |
| 47 | preDrawConnection_.disconnect(); |
| 48 | postDrawConnection_.disconnect(); |
| 49 | postResizeConnection_.disconnect(); |
| 50 | |
| 51 | quadObject_.del(); |
| 52 | sceneFramebuffer_.del(); |
| 53 | convolutionXFramebuffer_.del(); |
| 54 | lowSizeFramebuffer_.del(); |
| 55 | } |
| 56 | } |
| 57 | |
| 58 | void ShadowsGL::setShadowShift( const Vector2f& shift ) |
| 59 | { |
no test coverage detected