Cycles: Code cleanup, spaces around keywords
[blender.git] / intern / cycles / util / util_time.cpp
1 /*
2  * Copyright 2011-2013 Blender Foundation
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 #include <stdlib.h>
18
19 #include "util_time.h"
20
21 #ifdef _WIN32
22
23 #include <windows.h>
24
25 CCL_NAMESPACE_BEGIN
26
27 double time_dt()
28 {
29         __int64 frequency, counter;
30
31         QueryPerformanceFrequency((LARGE_INTEGER*)&frequency);
32         QueryPerformanceCounter((LARGE_INTEGER*)&counter);
33
34         return (double)counter/(double)frequency;
35 }
36
37 void time_sleep(double t)
38 {
39         Sleep((int)(t*1000));
40 }
41
42 CCL_NAMESPACE_END
43
44 #else
45
46 #include <sys/time.h>
47 #include <unistd.h>
48
49 CCL_NAMESPACE_BEGIN
50
51 double time_dt()
52 {
53         struct timeval now;
54         gettimeofday(&now, NULL);
55
56         return now.tv_sec + now.tv_usec*1e-6;
57 }
58
59 /* sleep t seconds */
60 void time_sleep(double t)
61 {
62         /* get whole seconds */
63         int s = (int)t;
64
65         if(s >= 1) {
66                 sleep(s);
67
68                 /* adjust parameter to remove whole seconds */
69                 t -= s;
70         }
71
72         /* get microseconds */
73         int us = (int)(t * 1e6);
74         if(us > 0)
75                 usleep(us);
76 }
77
78 CCL_NAMESPACE_END
79
80 #endif
81