diff options
Diffstat (limited to 'src/native/share/J3DTimer.c')
-rw-r--r-- | src/native/share/J3DTimer.c | 175 |
1 files changed, 0 insertions, 175 deletions
diff --git a/src/native/share/J3DTimer.c b/src/native/share/J3DTimer.c deleted file mode 100644 index 6725d2f..0000000 --- a/src/native/share/J3DTimer.c +++ /dev/null @@ -1,175 +0,0 @@ -/* - * $RCSfile$ - * - * Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistribution of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * This software is provided "AS IS," without a warranty of any - * kind. ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND - * WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY - * EXCLUDED. SUN MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL - * NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF - * USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS - * DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR - * ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, - * CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND - * REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF THE USE OF OR - * INABILITY TO USE THIS SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed, licensed or - * intended for use in the design, construction, operation or - * maintenance of any nuclear facility. - * - * $Revision$ - * $Date$ - * $State$ - */ - -/* - * Portions of this code were derived from work done by the Blackdown - * group (www.blackdown.org), who did the initial Linux implementation - * of the Java 3D API. - */ - -#include "com_sun_j3d_utils_timer_J3DTimer.h" - -#define NSEC_PER_SEC ((jlong)1000000000) - -#ifdef __linux__ -#include <sys/time.h> -#include <time.h> -#include <unistd.h> -#endif - -#ifdef SOLARIS -#include <time.h> -#include <sys/systeminfo.h> -#include <string.h> -#ifndef CLOCK_HIGHRES -#define CLOCK_HIGHRES 4 /* Solaris 7 does not define this */ -#endif /* constant. When run on Solaris 7 */ -#endif /* CLOCK_HIGHRES is not used. */ - -#ifdef WIN32 -#include <Windows.h> -#include <math.h> -static double timerScale = -1.0; -#endif - -/* - * Class: com_sun_j3d_utils_timer_J3DTimer - * Method: getNativeTimer - * Signature: ()J - */ -JNIEXPORT jlong JNICALL -Java_com_sun_j3d_utils_timer_J3DTimer_getNativeTimer(JNIEnv *env, - jclass clazz) -{ - jlong timerNsec; - -#ifdef SOLARIS - /* - struct timespec tp; - clock_gettime( CLOCK_HIGHRES, &tp ); - - return (jlong)tp.tv_nsec + (jlong)tp.tv_sec * NSEC_PER_SEC; - */ - - timerNsec = (jlong)gethrtime(); -#endif /* SOLARIS */ - -#ifdef WIN32 - LARGE_INTEGER time; - LARGE_INTEGER freq; - - if (timerScale < 0.0) { - QueryPerformanceFrequency( &freq ); - if (freq.QuadPart <= 0) { - timerScale = 0.0; - } - else { - timerScale = (double) NSEC_PER_SEC / (double)freq.QuadPart; - } - } - - QueryPerformanceCounter(&time); - timerNsec = (jlong)((double)time.QuadPart * timerScale); - -#endif /* WIN32 */ - -#ifdef __linux__ - struct timeval t; - - gettimeofday(&t, 0); - timerNsec = ((jlong)t.tv_sec) * NSEC_PER_SEC + ((jlong)t.tv_usec) * ((jlong)1000); -#endif /* __linux__ */ - - return timerNsec; -} - - -/* - * Class: com_sun_j3d_utils_timer_J3DTimer - * Method: getNativeTimerResolution - * Signature: ()J - */ -JNIEXPORT jlong JNICALL -Java_com_sun_j3d_utils_timer_J3DTimer_getNativeTimerResolution(JNIEnv *env, - jclass clazz) -{ - jlong res; - -#ifdef SOLARIS - char buf[4]; - - sysinfo( SI_RELEASE, &buf[0], 4 ); - - if (strcmp( "5.7", &buf[0] )==0) { - /* Hard-coded for Solaris 7, since clock_getres isn't available */ - res = (jlong)3; - } else { - struct timespec tp; - clock_getres( CLOCK_HIGHRES, &tp ); - res = (jlong)tp.tv_nsec; - } -#endif /* SOLARIS */ - -#ifdef WIN32 - LARGE_INTEGER freq; - QueryPerformanceFrequency( &freq ); - - if ((jlong)freq.QuadPart <= 0) - res = 0; - else { - res = (NSEC_PER_SEC + (jlong)freq.QuadPart - 1) / ((jlong)freq.QuadPart); - - if (res < 1) { - res = 1; - } - } -#endif - -#ifdef __linux__ - /* Hard-coded at 1 microsecond -- the resolution of gettimeofday */ - res = 1000; -#endif /* __linux__ */ - - return res; -} |