Photon Common Library 2.0.0-beta
A physically based renderer.
Loading...
Searching...
No Matches
stats.h File Reference
#include <atomic>
#include <chrono>
#include <cstdint>
#include <string>
#include <string_view>
#include <vector>

Go to the source code of this file.

Classes

struct  ph::detail::stats::TimeCounter
 
struct  ph::detail::stats::ScopedTimer
 
class  ph::TimerStatsReport
 
struct  ph::TimerStatsReport::TimeRecord
 
struct  ph::TimerStatsReport::GroupedTimeRecord
 

Namespaces

namespace  ph
 The root for all renderer implementations.
 
namespace  ph::detail
 Implementation detail mainly for internal usages.
 
namespace  ph::detail::stats
 

Macros

#define PH_DEFINE_INLINE_TIMER_STAT(statName, categoryName)
 
#define PH_DEFINE_INTERNAL_TIMER_STAT(statName, categoryName)
 
#define PH_DEFINE_EXTERNAL_TIMER_STAT(statName, categoryName)    PH_DEFINE_INLINE_TIMER_STAT(statName, categoryName)
 
#define PH_SCOPED_TIMER(statName)
 

Macro Definition Documentation

◆ PH_DEFINE_EXTERNAL_TIMER_STAT

#define PH_DEFINE_EXTERNAL_TIMER_STAT ( statName,
categoryName )    PH_DEFINE_INLINE_TIMER_STAT(statName, categoryName)

◆ PH_DEFINE_INLINE_TIMER_STAT

#define PH_DEFINE_INLINE_TIMER_STAT ( statName,
categoryName )
Value:
inline ::ph::detail::stats::TimeCounter& internal_impl_time_counter_access_##statName()\
{\
static ::ph::detail::stats::TimeCounter counter(#statName, #categoryName);\
return counter;\
}

◆ PH_DEFINE_INTERNAL_TIMER_STAT

#define PH_DEFINE_INTERNAL_TIMER_STAT ( statName,
categoryName )
Value:
namespace\
{\
PH_DEFINE_INLINE_TIMER_STAT(statName, categoryName);\
}

◆ PH_SCOPED_TIMER

#define PH_SCOPED_TIMER ( statName)
Value:
::ph::detail::stats::ScopedTimer internal_impl_scopedTimer##statName(\
internal_impl_time_counter_access_##statName())
Definition stats.h:28