52#ifndef vtkRenderTimerLog_h
53#define vtkRenderTimerLog_h
56#include "vtkRenderingCoreModule.h"
66#define VTK_SCOPED_RENDER_EVENT(eventName, timer) VTK_SCOPED_RENDER_EVENT2(eventName, timer, _event)
73#define VTK_SCOPED_RENDER_EVENT2(eventName, timer, identifier) \
74 vtkRenderTimerLog::ScopedEventLogger identifier; \
77 std::ostringstream _eventNameStream; \
78 _eventNameStream << eventName; \
79 identifier = timer->StartScopedEvent(_eventNameStream.str()); \
89 struct VTKRENDERINGCORE_EXPORT
Event
114 this->
Print(os, 0.f, threshMs, indent);
120 void Print(std::ostream& os,
float parentTime,
float threshMs,
vtkIndent indent);
124 struct VTKRENDERINGCORE_EXPORT
Frame
132 void Print(std::ostream& os,
float threshMs = 0.f);
a simple class to control print indentation
void Print(ostream &os)
Print an object to an ostream.
virtual void MarkStartEvent(const std::string &name)
Mark the beginning or end of an event.
virtual void MarkEndEvent()
Mark the beginning or end of an event.
virtual void MarkFrame()
Call to mark the start of a new frame, or the end of an old one.
ScopedEventLogger StartScopedEvent(const std::string &name)
Create a RAII scoped event.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
virtual void ReleaseGraphicsResources()
Releases any resources allocated on the graphics device.
virtual bool IsSupported() VTK_FUTURE_CONST
Returns true if stream timings are implemented for the current graphics backend.
static vtkRenderTimerLog * New()
virtual Frame PopFirstReadyFrame()
Retrieve the first available frame's timing info.
virtual bool FrameReady()
Returns true if there are any frames ready with complete timing info.
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.
friend class vtkRenderTimerLog
ScopedEventLogger(vtkRenderTimerLog *log)
ScopedEventLogger(ScopedEventLogger &&other) noexcept
ScopedEventLogger & operator=(ScopedEventLogger &&other) noexcept