把这个功能让时间的双重使用clock_gettime:着色时间统一 - clock_gettime被截断
// return current time in milliseconds
static double time_get_ms(void)
{
struct timespec res;
#ifdef ANDROID
clock_gettime(CLOCK_REALTIME_HR, &res);
#else
clock_gettime(CLOCK_REALTIME, &res);
#endif
return (double)(1000.0*res.tv_sec + res.tv_nsec/1e6);
}
其发送到着色器需要转换为浮动。尾数正在溢出,并在到着色器的路上被截断。
实施例:
作为双= 1330579093642.441895
作为浮子= 1330579111936.000000
的浮点值被卡住在用于长时间的单个数字,由于截断。
它似乎甚至res.tv_sec秒的值是一个大的浮点数,它也被截断到GPU的路上。
尝试测量应用程序启动以来的时间,并且我很快遇到了同样的问题。
那么,什么是获得运行时间值到着色器的最佳方式?在Linux世界中有一些跨平台的东西(如IOS,Android,Linux)。