OpenGL ES SDK for Android ARM Developer Center
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Timer.cpp
Go to the documentation of this file.
1 /* Copyright (c) 2014-2017, ARM Limited and Contributors
2  *
3  * SPDX-License-Identifier: MIT
4  *
5  * Permission is hereby granted, free of charge,
6  * to any person obtaining a copy of this software and associated documentation files (the "Software"),
7  * to deal in the Software without restriction, including without limitation the rights to
8  * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software,
9  * and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
10  *
11  * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
12  *
13  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
14  * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
16  * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
17  * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
19  */
20 
21 #include "Timer.h"
22 
23 #include <sys/time.h>
24 
25 namespace AstcTextures
26 {
27  /* Please see header for specification. */
28  Timer::Timer() :
29  startTime(),
30  currentTime(),
31  lastIntervalTime(0.0f),
32  frameCount(0),
33  fpsTime(0.0f),
34  fps(0.0f)
35  {
36  startTime.tv_sec = 0;
37  startTime.tv_usec = 0;
38  currentTime.tv_sec = 0;
39  currentTime.tv_usec = 0;
40 
41  reset();
42  }
43 
44  /* Please see header for specification. */
45  void Timer::reset()
46  {
47  gettimeofday(&startTime, NULL);
48 
49  lastIntervalTime = 0.0f;
50  frameCount = 0;
51  fpsTime = 0.0f;
52  }
53 
54  /* Please see header for specification. */
55  float Timer::getTime()
56  {
57  gettimeofday(&currentTime, NULL);
58 
59  float seconds = (currentTime.tv_sec - startTime.tv_sec);
60  float milliseconds = (float (currentTime.tv_usec - startTime.tv_usec)) / 1000000.0f;
61 
62  return (seconds + milliseconds);
63  }
64 
65  /* Please see header for specification. */
66  bool Timer::isTimePassed(float seconds)
67  {
68  float time = getTime();
69 
70  if (time - lastTime > seconds)
71  {
72  lastTime = time;
73 
74  return true;
75  }
76 
77  return false;
78  }
79 }
float lastTime
Definition: Timer.h:39
timeval currentTime
Definition: Timer.h:44
GLfloat GLfloat f
Definition: gl2ext.h:2707
float lastIntervalTime
Definition: Timer.h:40
float getTime()
Returns the time passed since object creation or since reset() was last called.
Definition: Timer.cpp:55
void reset()
Resets the timer to 0.0f.
Definition: Timer.cpp:45
precision highp float
Definition: hiz_cull.cs:37
Timer()
Overloaded default constructor.
Definition: Timer.cpp:28
timeval startTime
Definition: Timer.h:43
bool isTimePassed(float seconds=1.0f)
Tests if 'seconds' seconds have passed since reset() or this method was called.
Definition: Timer.cpp:66
uniform float time
Definition: spawn.cs:50