49#ifndef vtkRenderTimerLog_h
50#define vtkRenderTimerLog_h
53#include "vtkRenderingCoreModule.h"
63#define VTK_SCOPED_RENDER_EVENT(eventName, timer) VTK_SCOPED_RENDER_EVENT2(eventName, timer, _event)
70#define VTK_SCOPED_RENDER_EVENT2(eventName, timer, identifier) \
71 vtkRenderTimerLog::ScopedEventLogger identifier; \
74 std::ostringstream _eventNameStream; \
75 _eventNameStream << eventName; \
76 identifier = timer->StartScopedEvent(_eventNameStream.str()); \
86 struct VTKRENDERINGCORE_EXPORT
Event
111 this->
Print(os, 0.f, threshMs, indent);
117 void Print(std::ostream& os,
float parentTime,
float threshMs,
vtkIndent indent);
121 struct VTKRENDERINGCORE_EXPORT
Frame
129 void Print(std::ostream& os,
float threshMs = 0.f);
175 virtual
void MarkFrame();
185 virtual
void MarkStartEvent(const std::
string& name);
186 virtual
void MarkEndEvent();
192 virtual
bool FrameReady();
201 vtkSetMacro(LoggingEnabled,
bool);
202 vtkGetMacro(LoggingEnabled,
bool);
203 vtkBooleanMacro(LoggingEnabled,
bool);
211 vtkSetMacro(FrameLimit,
unsigned int);
212 vtkGetMacro(FrameLimit,
unsigned int);
218 virtual
void ReleaseGraphicsResources();
224 mutable
bool LoggingEnabled;
225 unsigned int FrameLimit;
a simple class to control print indentation
void Print(ostream &os)
Print an object to an ostream.
abstract base class for most VTK objects
Asynchronously measures GPU execution times for a series of events.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
virtual bool IsSupported() VTK_FUTURE_CONST
Returns true if stream timings are implemented for the current graphics backend.
static vtkRenderTimerLog * New()
Container for a single timed event.
vtkTypeUInt64 EndTime
Times are in nanoseconds.
void Print(std::ostream &os, float parentTime, float threshMs, vtkIndent indent)
std::vector< Event > Events
Child events that occurred while this event was running.
float ElapsedTimeMilliseconds() const
void Print(std::ostream &os, float threshMs=0.f, vtkIndent indent=vtkIndent())
Print details of the event to a stream.
vtkTypeUInt64 StartTime
Times are in nanoseconds.
vtkTypeUInt64 ElapsedTimeNanoseconds() const
std::string Name
Event name.
float ElapsedTimeSeconds() const
Convenience methods to compute times.
Container for a frame's events.
std::vector< Event > Events
void Print(std::ostream &os, float threshMs=0.f)
Print details of all events in this frame to a stream.
RAII struct for logging events.
ScopedEventLogger(vtkRenderTimerLog *log)
ScopedEventLogger(ScopedEventLogger &&other) noexcept
ScopedEventLogger & operator=(ScopedEventLogger &&other) noexcept