Show
Ignore:
Timestamp:
12/12/07 18:00:42 (10 months ago)
Author:
cneumann
Message:

added: generic interface
changed: factory functions return RefPtr?

The unittests don't pass right now, because of the change
to the factory functions, which leads to containers
being immediately destroyed as they are not assigned to
a RefPtr?.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/Carsten_PtrWork2/Source/System/Cluster/Window/MultiDisplay/OSGMultiDisplayWindow.cpp

    r997 r1032  
    293293{ 
    294294    TileCameraDecoratorPtr deco; 
    295     ViewportPtr serverPort; 
    296     ViewportPtr clientPort; 
    297     StereoBufferViewportPtr clientStereoPort; 
     295    ViewportRefPtr serverPort; 
     296    ViewportRefPtr clientPort; 
     297    StereoBufferViewportRefPtr clientStereoPort; 
    298298    UInt32 sv,cv; 
    299299    Int32 l,r,t,b; 
     
    337337 
    338338    // duplicate viewports 
    339     for(cv=0,sv=0;cv<getPort().size();cv++
     339    for(cv = 0, sv = 0; cv < getPort().size(); ++cv
    340340    { 
    341341        clientPort = getPort()[cv]; 
    342342 
    343         clientStereoPort = dynamic_cast<StereoBufferViewportPtr>(clientPort); 
     343        clientStereoPort = 
     344            boost::dynamic_pointer_cast<StereoBufferViewport>(clientPort); 
    344345 
    345346        cleft   = (Int32)(clientPort->getPixelLeft()      * scaleCWidth)   ; 
     
    365366        if(window->getPort().size() <= sv) 
    366367        { 
    367             serverPort = dynamic_cast<ViewportPtr>(clientPort->shallowCopy()); 
     368            serverPort =  
     369                boost::dynamic_pointer_cast<Viewport>(clientPort->shallowCopy()); 
    368370 
    369371            deco = TileCameraDecorator::create(); 
     
    385387                //subRef(window->getPort()[sv]); 
    386388 
    387                 serverPort = 
    388                     dynamic_cast<ViewportPtr>(clientPort->shallowCopy()); 
     389                serverPort = boost::dynamic_pointer_cast<Viewport>( 
     390                    clientPort->shallowCopy()); 
    389391 
    390392                window->replacePort(sv, serverPort);//[sv] = serverPort; 
     
    399401 
    400402        // update changed viewport fields 
    401         updateViewport(serverPort,clientPort); 
     403        updateViewport(serverPort, clientPort); 
    402404 
    403405        // set viewport size 
     
    532534        { 
    533535            getClientWindow()->addPort( 
    534                 dynamic_cast<ViewportPtr>(getPort(v)->shallowCopy())); 
     536                boost::dynamic_pointer_cast<Viewport>(getPort(v)->shallowCopy())); 
    535537        } 
    536538    } 
     
    565567 */ 
    566568 
    567 void MultiDisplayWindow::updateViewport(ViewportPtr &serverPort, 
    568                                         ViewportPtr &clientPort) 
     569void MultiDisplayWindow::updateViewport(ViewportPtr serverPort, 
     570                                        ViewportPtr clientPort) 
    569571{ 
    570572    bool equal;