Changeset 3235

Show
Ignore:
Timestamp:
08/05/04 12:01:32 (10 years ago)
Author:
robert
Message:

Added s/getClearColor and deprecated s/getBackgroundColor(). Re-implemented
setClearColor so that it passes on its value to Camera::setClearColor(), and
changed OsgSceneHandler? to use the Camera::getClearColor() on each new frame
to ensure that it reflects the settings of the camera correctly.

Location:
OpenSceneGraph/trunk
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • OpenSceneGraph/trunk/include/osgProducer/OsgCameraGroup

    r3212 r3235  
    106106 
    107107 
    108         void setBackgroundColor( const osg::Vec4& backgroundColor ); 
    109  
    110         osg::Vec4& getBackgroundColor() { return _background_color; } 
    111  
    112         const osg::Vec4& getBackgroundColor() const { return _background_color; } 
     108#ifdef USE_DEPRECATED_API 
     109        void setBackgroundColor( const osg::Vec4& backgroundColor) { setClearColor(backgroundColor); } 
     110 
     111        const osg::Vec4& getBackgroundColor() const { return getClearColor(); } 
     112#endif 
     113 
     114        void setClearColor( const osg::Vec4& clearColor ); 
     115 
     116        const osg::Vec4& getClearColor() const; 
    113117 
    114118 
     
    185189 
    186190        osg::ref_ptr<osg::StateSet>             _global_stateset; 
    187         osg::Vec4                               _background_color; 
     191        osg::Vec4                               _clear_color; 
    188192        float                                   _LODScale; 
    189193         
  • OpenSceneGraph/trunk/src/osgProducer/OsgCameraGroup.cpp

    r3220 r3235  
    213213    _scene_data = NULL; 
    214214    _global_stateset = NULL; 
    215     _background_color.set( 0.2f, 0.2f, 0.4f, 1.0f ); 
     215    _clear_color.set( 0.2f, 0.2f, 0.4f, 1.0f ); 
    216216    _LODScale = 1.0f; 
    217217 
     
    296296        sv->setFrameStamp( _frameStamp.get() ); 
    297297        sv->setGlobalStateSet( _global_stateset.get() ); 
    298         sv->setClearColor( _background_color ); 
    299298        sv->setLODScale( _LODScale ); 
    300299        sv->setFusionDistance( _fusionDistanceMode, _fusionDistanceValue ); 
     
    316315} 
    317316 
    318 void OsgCameraGroup::setBackgroundColor( const osg::Vec4& backgroundColor )  
    319 { 
    320     _background_color = backgroundColor; 
    321     setUpSceneViewsWithData(); 
     317void OsgCameraGroup::setClearColor( const osg::Vec4& clearColor )  
     318{ 
     319    _clear_color = clearColor; 
     320    for(unsigned int i=0;i<getNumberOfCameras();++i) 
     321    { 
     322        Producer::Camera *cam = _cfg->getCamera(i); 
     323        cam->setClearColor(_clear_color[0],_clear_color[1],_clear_color[2],_clear_color[3]); 
     324    } 
     325} 
     326 
     327const osg::Vec4& OsgCameraGroup::getClearColor() const 
     328{ 
     329    return _clear_color; 
    322330} 
    323331 
     
    424432        Producer::Camera *cam = _cfg->getCamera(i); 
    425433        Producer::RenderSurface* rs = cam->getRenderSurface(); 
     434         
     435        cam->setClearColor(_clear_color[0],_clear_color[1],_clear_color[2],_clear_color[3]); 
    426436         
    427437        // create the scene handler. 
  • OpenSceneGraph/trunk/src/osgProducer/OsgSceneHandler.cpp

    r2047 r3235  
    5555    _sceneView->setViewport( x, y, w, h ); 
    5656 
     57    osg::Vec4 clear_color; 
     58    cam.getClearColor(clear_color[0],clear_color[1],clear_color[2],clear_color[3]); 
     59    _sceneView->setClearColor(clear_color); 
     60 
    5761    _sceneView->cull(); 
    5862}