VTK
vtkOpenGLRenderTimer.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkOpenGLRenderTimer.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
15 
31 #ifndef vtkOpenGLRenderTimer_h
32 #define vtkOpenGLRenderTimer_h
33 
34 #include "vtkRenderingOpenGL2Module.h" // For export macro
35 #include "vtkType.h" // For vtkTypeUint64, etc
36 
37 class VTKRENDERINGOPENGL2_EXPORT vtkOpenGLRenderTimer
38 {
39 public:
42 
47  static bool IsSupported();
48 
52  void Reset();
53 
57  void Start();
58 
62  void Stop();
63 
67  bool Started();
68 
72  bool Stopped();
73 
77  bool Ready();
78 
80 
85  vtkTypeUInt64 GetElapsedNanoseconds();
87 
89 
115  void ReusableStop();
118 
123  vtkTypeUInt64 GetStartTime();
124  vtkTypeUInt64 GetStopTime();
132 
133 protected:
135  bool EndReady;
136 
137  vtkTypeUInt32 StartQuery;
138  vtkTypeUInt32 EndQuery;
139 
140  vtkTypeUInt64 StartTime;
141  vtkTypeUInt64 EndTime;
142 
145 
146 private:
148  void operator=(const vtkOpenGLRenderTimer&) = delete;
149 };
150 
151 #endif // vtkOpenGLRenderTimer_h
152 
153 // VTK-HeaderTest-Exclude: vtkOpenGLRenderTimer.h
vtkOpenGLRenderTimer::StartReady
bool StartReady
Definition: vtkOpenGLRenderTimer.h:134
vtkOpenGLRenderTimer::Ready
bool Ready()
Returns true when the timing results are available.
vtkOpenGLRenderTimer::EndQuery
vtkTypeUInt32 EndQuery
Definition: vtkOpenGLRenderTimer.h:138
vtkOpenGLRenderTimer::GetReusableElapsedSeconds
float GetReusableElapsedSeconds()
vtkOpenGLRenderTimer::GetElapsedMilliseconds
float GetElapsedMilliseconds()
vtkOpenGLRenderTimer::GetElapsedNanoseconds
vtkTypeUInt64 GetElapsedNanoseconds()
vtkOpenGLRenderTimer::StartTime
vtkTypeUInt64 StartTime
Definition: vtkOpenGLRenderTimer.h:140
vtkOpenGLRenderTimer::ReusableEnded
bool ReusableEnded
Definition: vtkOpenGLRenderTimer.h:144
vtkOpenGLRenderTimer::Stop
void Stop()
Mark the end of a timed event.
vtkType.h
vtkOpenGLRenderTimer::ReleaseGraphicsResources
void ReleaseGraphicsResources()
Simply calls Reset() to ensure that query ids are freed.
vtkOpenGLRenderTimer
Asynchronously measures GPU execution time for a single event.
Definition: vtkOpenGLRenderTimer.h:38
vtkOpenGLRenderTimer::ReusableStarted
bool ReusableStarted
Definition: vtkOpenGLRenderTimer.h:143
vtkOpenGLRenderTimer::Started
bool Started()
Returns true if the timer has been started.
vtkOpenGLRenderTimer::StartQuery
vtkTypeUInt32 StartQuery
Definition: vtkOpenGLRenderTimer.h:137
vtkOpenGLRenderTimer::GetStopTime
vtkTypeUInt64 GetStopTime()
If Ready() returns true, return the start or stop time in nanoseconds.
vtkOpenGLRenderTimer::EndTime
vtkTypeUInt64 EndTime
Definition: vtkOpenGLRenderTimer.h:141
vtkOpenGLRenderTimer::Reset
void Reset()
Clear out any previous results and prepare for a new query.
vtkOpenGLRenderTimer::Start
void Start()
Mark the start of a timed event.
vtkOpenGLRenderTimer::~vtkOpenGLRenderTimer
~vtkOpenGLRenderTimer()
vtkOpenGLRenderTimer::vtkOpenGLRenderTimer
vtkOpenGLRenderTimer()
vtkOpenGLRenderTimer::ReusableStop
void ReusableStop()
vtkOpenGLRenderTimer::Stopped
bool Stopped()
Returns true if the timer has been stopped.
vtkOpenGLRenderTimer::EndReady
bool EndReady
Definition: vtkOpenGLRenderTimer.h:135
vtkOpenGLRenderTimer::ReusableStart
void ReusableStart()
This class can also be used in a reusable manner where the start and stop events stay in flight until...
vtkOpenGLRenderTimer::GetStartTime
vtkTypeUInt64 GetStartTime()
If Ready() returns true, return the start or stop time in nanoseconds.
vtkOpenGLRenderTimer::GetElapsedSeconds
float GetElapsedSeconds()
If Ready() returns true, get the elapsed time in the requested units.
vtkOpenGLRenderTimer::IsSupported
static bool IsSupported()
Returns true if timer events are supported by the current OpenGL implementation.