06-16-2014 06:28 AM
01-01 02:22:24.555: W/System.err(5351): org.sample: Segmentation fault in thread 5377
01-01 02:22:24.555: W/System.err(5351): at <SAMPLE>.android::Surface::hook_perform(ANativeWindow*, int, ...)(Native Method)
01-01 02:22:24.555: W/System.err(5351): at <SAMPLE>.EGL_SEC_GetSurfaceAddress(Native Method)
01-01 02:22:24.555: W/System.err(5351): at <SAMPLE>.OVR::DirectRender::InitForCurrentSurface()(Native Method)
01-01 02:22:24.555: W/System.err(5351): at dalvik.system.NativeStart.run(Native Method)
06-16-2014 07:37 AM
06-24-2014 01:22 AM
06-24-2014 01:59 PM
06-25-2014 01:42 AM
06-27-2014 07:38 AM
06-27-2014 11:02 PM
06-30-2014 01:07 AM
06-30-2014 06:28 AM
06-30-2014 09:51 AM
// This must be called by a function called directly from a java thread,
// preferably at JNI_OnLoad(). It will fail if called from a pthread created
// in native code.
// http://developer.android.com/training/articles/perf-jni.html#faq_FindClass
//
// This calls ovr_Initialize() internally.
void ovr_OnLoad( JavaVM * JavaVm_ );
// Starts up TimeWarp, vsync tracking, sensor reading, clock locking, thread scheduling,
// and sets video options. The calling thread will be given SCHED_FIFO.
// Should be called when the app is both resumed and has a valid window surface.
// The application must have their preferred OpenGL ES context current so the correct
// version and config can be matched for the background TimeWarp thread.
// On return, the context will be current on an invisible pbuffer, because TimeWarp
// will own the window.
hmdInfo_t ovr_EnterVrMode( ovrModeParms parms );
// Returns to normal operation, but the window cannot return to double buffering yet.
// Should be called on pause.
void ovr_LeaveVrMode();
// Accepts a new pos + texture set that will be used for future warps.
// The parms are copied, and are not referenced after the function returns.
//
// The application GL context that rendered the eye images must be current,
// but drawing does not need to be completed. A sync object will be added
// to the current context so the background thread can know when it is ready to use.
//
// This will block until the textures from the previous
// WarpSwap have completed rendering, to allow one frame of overlap for maximum
// GPU utilization, but prevent multiple frames from piling up variable latency.
//
// This will block until at least one vsync has passed since the last
// call to WarpSwap to prevent applications with simple scenes from
// generating completely wasted frames.
//
// Calling from a thread other than the one that called ovr_EnterVrMode will be
// a fatal error.
//
void ovr_WarpSwap( const TimeWarpParms * parms );