예제 #1
0
파일: Channel.cpp 프로젝트: VMML/Livre
    void frameDraw( const eq::uint128_t& )
    {
        applyCamera();
        initializeLivreFrustum();
        requestData();

        const eq::fabric::Viewport& vp = _channel->getViewport( );
        const Viewport viewport( vp.x, vp.y, vp.w, vp.h );
        _renderViewPtr->setViewport( viewport );

        livre::Node* node = static_cast< livre::Node* >( _channel->getNode( ));
        livre::Window* window = static_cast< livre::Window* >( _channel->getWindow( ));
        AvailableSetGenerator generateSet( node->getDashTree( ),
                                           window->getTextureCache( ));

        _frameInfo.clear();
        generateSet.generateRenderingSet( _currentFrustum, _frameInfo );

        EqRenderViewPtr renderViewPtr =
                boost::static_pointer_cast< EqRenderView >( _renderViewPtr );
        RayCastRendererPtr renderer =
                boost::static_pointer_cast< RayCastRenderer >(
                    renderViewPtr->getRenderer( ));

        const livre::Pipe* pipe = static_cast< const livre::Pipe* >( _channel->getPipe( ));
        renderer->initTransferFunction(
            pipe->getFrameData()->getRenderSettings()->getTransferFunction( ));

        RenderBricks renderBricks;
        generateRenderBricks( _frameInfo.renderNodes, renderBricks );
        renderViewPtr->render( _frameInfo, renderBricks, *_glWidgetPtr );
    }
예제 #2
0
파일: Channel.cpp 프로젝트: vr3d/Livre
    void frameDraw( const eq::uint128_t& )
    {
        applyCamera();
        initializeLivreFrustum();
        requestData();

        const eq::fabric::Viewport& vp = _channel->getViewport( );
        const Viewportf viewport( Vector2f( vp.x, vp.y ),
                                  Vector2f( vp.w, vp.h ));
        _renderViewPtr->setViewport( viewport );

        Viewporti pixelViewport;
        _glWidgetPtr->setViewport( _renderViewPtr.get( ), pixelViewport );

        livre::Node* node = static_cast< livre::Node* >( _channel->getNode( ));
        AvailableSetGenerator generateSet( node->getDashTree( ));

        FrameInfo frameInfo( _currentFrustum );
        generateSet.generateRenderingSet( _currentFrustum,
                                          frameInfo);

        EqRenderViewPtr renderViewPtr =
                boost::static_pointer_cast< EqRenderView >( _renderViewPtr );

        renderViewPtr->setParameters( getFrameData()->getVRParameters( ));

        RayCastRendererPtr renderer =
                boost::static_pointer_cast< RayCastRenderer >(
                    renderViewPtr->getRenderer( ));

        const livre::Pipe* pipe = static_cast< const livre::Pipe* >( _channel->getPipe());
        renderer->initTransferFunction(
                    pipe->getFrameData()->getRenderSettings()->getTransferFunction( ));

        RenderBricks renderBricks;
        generateRenderBricks( frameInfo.renderNodeList,
                              renderBricks );

        renderViewPtr->render( frameInfo,
                               renderBricks,
                               *_glWidgetPtr );
    }