Blender V2.61 - r43446
|
00001 /* 00002 * Copyright 2011, Blender Foundation. 00003 * 00004 * This program is free software; you can redistribute it and/or 00005 * modify it under the terms of the GNU General Public License 00006 * as published by the Free Software Foundation; either version 2 00007 * of the License, or (at your option) any later version. 00008 * 00009 * This program is distributed in the hope that it will be useful, 00010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00012 * GNU General Public License for more details. 00013 * 00014 * You should have received a copy of the GNU General Public License 00015 * along with this program; if not, write to the Free Software Foundation, 00016 * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 00017 */ 00018 00019 #include <stdlib.h> 00020 00021 #include "util_time.h" 00022 00023 #ifdef _WIN32 00024 00025 #include <windows.h> 00026 00027 CCL_NAMESPACE_BEGIN 00028 00029 double time_dt() 00030 { 00031 __int64 frequency, counter; 00032 00033 QueryPerformanceFrequency((LARGE_INTEGER*)&frequency); 00034 QueryPerformanceCounter((LARGE_INTEGER*)&counter); 00035 00036 return (double)counter/(double)frequency; 00037 } 00038 00039 void time_sleep(double t) 00040 { 00041 Sleep((int)(t*1000)); 00042 } 00043 00044 CCL_NAMESPACE_END 00045 00046 #else 00047 00048 #include <sys/time.h> 00049 #include <unistd.h> 00050 00051 CCL_NAMESPACE_BEGIN 00052 00053 double time_dt() 00054 { 00055 struct timeval now; 00056 gettimeofday(&now, NULL); 00057 00058 return now.tv_sec + now.tv_usec*1e-6; 00059 } 00060 00061 void time_sleep(double t) 00062 { 00063 if(t >= 1.0) 00064 sleep((int)t); 00065 00066 usleep((int)(t*1e6)); 00067 } 00068 00069 CCL_NAMESPACE_END 00070 00071 #endif 00072