Changeset 340

Show
Ignore:
Timestamp:
10/21/06 13:48:11 (2 years ago)
Author:
dirk
Message:

Added ResetMode? to StatElems? to prevent spurious clearing

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/Dirk_RenderTraversalWork/Source/System/Statistics/Base/OSGStatCollector.cpp

    r106 r340  
    250250/*! Reset all elements to the start value. 
    251251 */ 
    252 void StatCollector::reset(void
     252void StatCollector::reset(StatElemDescBase::ResetMode mode
    253253{ 
    254254    std::vector<StatElem*>::iterator i; 
     
    256256    for(i = _elemVec.begin(); i != _elemVec.end(); ++i) 
    257257    { 
    258         if(*i != NULL
     258        if(*i != NULL && (*i)->getDesc()->getResetMode() >= mode
    259259        { 
    260260            (*i)->reset(); 
  • branches/Dirk_RenderTraversalWork/Source/System/Statistics/Base/OSGStatCollector.h

    r106 r340  
    5656 
    5757OSG_BEGIN_NAMESPACE 
    58  
    59 class StatElem; 
    60 class StatElemDescBase; 
    6158 
    6259/*! \brief Manager for Stat elements, see \ref PageSystemStatistics for  
     
    7875    void   clearElems   (void    ); 
    7976    bool   isValidID    (Int32 id) const; 
    80     void   reset        (void    ); 
     77    void   reset        (StatElemDescBase::ResetMode mode = 
     78                                StatElemDescBase::RESET_DRAW); 
    8179 
    8280    /*! \}                                                                 */ 
     
    250248#include "OSGStatCollector.inl" 
    251249 
    252 #define OSGSTATCOLLECTOR_HEADER_CVSID "@(#)$Id:$" 
     250#define OSGSTATCOLLECTOR_HEADER_CVSID "@(#)$Id$" 
    253251 
    254252#endif /* _OSGSTATCOLLECTOR_H_ */ 
  • branches/Dirk_RenderTraversalWork/Source/System/Statistics/Base/OSGStatElemDesc.cpp

    r106 r340  
    115115 
    116116StatElemDescBase::StatElemDescBase(const Char8 *name,  
    117                                    const Char8 *description) : 
     117                                   const Char8 *description, 
     118                                   ResetMode reset) : 
    118119    _id         (         -1),  
    119120    _name       (       name),  
    120     _description(description) 
     121    _description(description), 
     122    _resetMode  (reset) 
    121123{ 
    122124    StatElemDescBase *desc = 0; 
  • branches/Dirk_RenderTraversalWork/Source/System/Statistics/Base/OSGStatElemDesc.h

    r106 r340  
    9191    const IDString &getDescription(void); 
    9292 
     93    typedef enum {  
     94              RESET_NEVER = 0, //!< Never reset by the system 
     95              RESET_DRAW,      //!< Reset when drawing 
     96              RESET_ALWAYS     //!< Reset when StatCollector::reset is called 
     97            } ResetMode;  
     98              
     99          ResetMode getResetMode(void          ) const; 
     100 
    93101    /*! \}                                                                 */ 
    94102    /*---------------------------------------------------------------------*/ 
     
    97105 
    98106    StatElemDescBase(const Char8 *name,  
    99                      const Char8 *description); 
     107                     const Char8 *description, 
     108                     ResetMode reset = RESET_DRAW); 
    100109 
    101110    /*! \}                                                                 */ 
     
    126135    static std::vector<StatElemDescBase*> *_descVec; 
    127136 
    128            Int32                           _id; 
    129            IDString                        _name; 
    130            IDString                        _description; 
     137            Int32           _id; 
     138            IDString        _name; 
     139            IDString        _description; 
     140            ResetMode       _resetMode; 
    131141 
    132142    // only called by OSGStatCollector friend 
     
    150160 
    151161    StatElemDesc(const Char8 *name,  
    152                  const Char8 *description); 
     162                 const Char8 *description, 
     163                 ResetMode    reset = RESET_DRAW); 
    153164 
    154165    /*! \}                                                                 */ 
  • branches/Dirk_RenderTraversalWork/Source/System/Statistics/Base/OSGStatElemDesc.inl

    r106 r340  
    8787} 
    8888 
     89/*-------------------------------------------------------------------------*/ 
     90 
     91inline 
     92StatElemDescBase::ResetMode StatElemDescBase::getResetMode(void) const 
     93{  
     94    return _resetMode;  
     95} 
    8996 
    9097 
     
    93100template <class T> inline 
    94101StatElemDesc<T>::StatElemDesc(const Char8 *name,  
    95                               const Char8 *description) : 
    96     StatElemDescBase(name, description) 
     102                              const Char8 *description, 
     103                              ResetMode reset) : 
     104    StatElemDescBase(name, description, reset) 
    97105{ 
    98106}