summaryrefslogtreecommitdiff
path: root/src/utility.h
diff options
context:
space:
mode:
authorPerttu Ahola <celeron55@gmail.com>2010-12-11 18:11:03 +0200
committerPerttu Ahola <celeron55@gmail.com>2010-12-11 18:11:03 +0200
commit2a0d1a059e556afaeb7f5b72205b26447e23286f (patch)
tree2e30313c2c40b59239a062fdb69d66e9abf153c4 /src/utility.h
parent5e0c284f3a8debdd9ebb080f80e36dceb7bc4ce2 (diff)
downloadminetest-2a0d1a059e556afaeb7f5b72205b26447e23286f.tar.gz
minetest-2a0d1a059e556afaeb7f5b72205b26447e23286f.tar.bz2
minetest-2a0d1a059e556afaeb7f5b72205b26447e23286f.zip
commit before some radicallish changes to water behavior
Diffstat (limited to 'src/utility.h')
-rw-r--r--src/utility.h29
1 files changed, 25 insertions, 4 deletions
diff --git a/src/utility.h b/src/utility.h
index 93fd9d4a7..c9b13546c 100644
--- a/src/utility.h
+++ b/src/utility.h
@@ -394,12 +394,18 @@ private:
class TimeTaker
{
public:
- TimeTaker(const char *name, IrrlichtDevice *dev)
+ TimeTaker(const char *name, IrrlichtDevice *dev, u32 *result=NULL)
{
m_name = name;
m_dev = dev;
- m_time1 = m_dev->getTimer()->getRealTime();
+ m_result = result;
m_running = true;
+ if(dev == NULL)
+ {
+ m_time1 = 0;
+ return;
+ }
+ m_time1 = m_dev->getTimer()->getRealTime();
}
~TimeTaker()
{
@@ -409,10 +415,24 @@ public:
{
if(m_running)
{
+ if(m_dev == NULL)
+ {
+ /*if(quiet == false)
+ std::cout<<"Couldn't measure time for "<<m_name
+ <<": dev==NULL"<<std::endl;*/
+ return 0;
+ }
u32 time2 = m_dev->getTimer()->getRealTime();
u32 dtime = time2 - m_time1;
- if(quiet == false)
- std::cout<<m_name<<" took "<<dtime<<"ms"<<std::endl;
+ if(m_result != NULL)
+ {
+ (*m_result) += dtime;
+ }
+ else
+ {
+ if(quiet == false)
+ std::cout<<m_name<<" took "<<dtime<<"ms"<<std::endl;
+ }
m_running = false;
return dtime;
}
@@ -423,6 +443,7 @@ private:
IrrlichtDevice *m_dev;
u32 m_time1;
bool m_running;
+ u32 *m_result;
};
// Calculates the borders of a "d-radius" cube