//static byte[] 
        //static void xNativeAtStartBackgroundPanoLoadInvoke(string filename, ref ovrTracking Tracking)
        static void xNativeAtStartBackgroundPanoLoadInvoke(byte* localloc_filename, ovrTracking* Tracking)
        {
            malloc_filename.FromString(localloc_filename);

            //I/xNativeActivity( 1990): \xNativeActivity.cs:56 enter xNativeAtStartBackgroundPanoLoadInvoke filename:  assets/2294472375_24a3b8ef46_o.jpg errno: 2 No such file or directory
            //I/xNativeActivity( 1990): \xNativeActivity.cs:58 Tracking.HeadPose.Pose.Orientation.x  -0.023896
            //I/xNativeActivity( 1990): \xNativeActivity.cs:59 Tracking.HeadPose.Pose.Orientation.y  -0.000054
            //I/xNativeActivity( 1990): \xNativeActivity.cs:60 Tracking.HeadPose.Pose.Orientation.z  -0.002280
            //I/xNativeActivity( 1990): \xNativeActivity.cs:71 enter xNativeAtStartBackgroundPanoLoadInvoke yield filename:  assets/2śö╚▀śö╚▀♠ errno: 110 Connection timed out

            //__filename = filename;
            //new string(

            //var loc_filename = System.Runtime.InteropServices.Marshal.PtrToStringAuto(

            ScriptCoreLibAndroidNDK.Library.ConsoleExtensions.traces("enter xNativeAtStartBackgroundPanoLoadInvoke filename: ", malloc_filename.AsString());
            //ScriptCoreLibAndroidNDK.Library.ConsoleExtensions.tracep("enter xNativeAtStartBackgroundPanoLoadInvoke filename: ", filename);
            ScriptCoreLibAndroidNDK.Library.ConsoleExtensions.tracef("Tracking.HeadPose.Pose.Orientation.x ", Tracking->HeadPose.Pose.Orientation.x);
            ScriptCoreLibAndroidNDK.Library.ConsoleExtensions.tracef("Tracking.HeadPose.Pose.Orientation.y ", Tracking->HeadPose.Pose.Orientation.y);
            ScriptCoreLibAndroidNDK.Library.ConsoleExtensions.tracef("Tracking.HeadPose.Pose.Orientation.z ", Tracking->HeadPose.Pose.Orientation.z);

            //I/xNativeActivity(17768): \xNativeActivity.cs:48 enter xNativeAtStartBackgroundPanoLoadInvoke filename:  assets/2294472375_24a3b8ef46_o.jpg errno: 2 No such file or directory
            //I/xNativeActivity(17768): \xNativeActivity.cs:50 Tracking.HeadPose.Pose.Orientation.x  -0.259649
            //I/xNativeActivity(17768): \xNativeActivity.cs:51 Tracking.HeadPose.Pose.Orientation.y  0.002016
            //I/xNativeActivity(17768): \xNativeActivity.cs:52 Tracking.HeadPose.Pose.Orientation.z  0.041219

            // x:\util\android-sdk-windows\platform-tools\adb.exe logcat -s "art" "xNativeActivity" "System.Console" "DEBUG" "PlatformActivity" "AndroidRuntime" "Oculus360Photos"


            argsF aF = null;


            yield = (env, thiz, args) =>
            {
                //ScriptCoreLibAndroidNDK.Library.ConsoleExtensions.traces("enter xNativeAtStartBackgroundPanoLoadInvoke yield filename: ", malloc_filename.AsString());


                if (aF == null)
                    aF = new argsF { env = env, fields = args };


                aF["x"] = Tracking->HeadPose.Pose.Orientation.x;
                aF["y"] = Tracking->HeadPose.Pose.Orientation.y;
                aF["z"] = Tracking->HeadPose.Pose.Orientation.z;

                //                I/DEBUG   (30772): pid: 28172, tid: 28248, name: Thread-5951  >>> OVROculus360PhotosHUD.Activities <<<
                //I/DEBUG   (30772): signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
                //I/DEBUG   (30772): Abort message: 'sart/runtime/check_jni.cc:65] JNI DETECTED ERROR IN APPLICATION: input is not valid Modified UTF-8: illegal continuation byte 0x1'

                // Error	19	Cannot use ref or out parameter 'Tracking' inside an anonymous method, lambda expression, or query expression	X:\jsc.svn\examples\java\android\synergy\OVROculus360PhotosNDK\OVROculus360PhotosNDK\xNativeActivity.cs	58	115	OVROculus360PhotosNDK

                //ScriptCoreLibAndroidNDK.Library.ConsoleExtensions.tracef("Tracking.HeadPose.Pose.Orientation.x ", Tracking.HeadPose.Pose.Orientation.x);

                //F/art     (28172): sart/runtime/check_jni.cc:65] JNI DETECTED ERROR IN APPLICATION: input is not valid Modified UTF-8: illegal continuation byte 0x1
                //F/art     (28172): sart/runtime/check_jni.cc:65]     string: 'pbq┌☺'
                //F/art     (28172): sart/runtime/check_jni.cc:65]     in call to NewStringUTF
                //F/art     (28172): sart/runtime/check_jni.cc:65]     from java.lang.String OVROculus360Photos.Activities.xMarshal.stringFromJNI(java.lang.Object)

                var n = env.NewStringUTF;

                //Type.GetType(

                // look almost the same file!

                // OVR_VRAPI_EXPORT const char * vrapi_GetVersionString();

                // if we change our NDK code, will nuget packaing work on the background, and also upgrade running apps?
                var v = n(env, malloc_filename.AsString());

                return v;
            };
        }
        //static byte[]
        //static void xNativeAtStartBackgroundPanoLoadInvoke(string filename, ref ovrTracking Tracking)
        static void xNativeAtStartBackgroundPanoLoadInvoke(byte *localloc_filename, ovrTracking *Tracking)
        {
            malloc_filename.FromString(localloc_filename);

            //I/xNativeActivity( 1990): \xNativeActivity.cs:56 enter xNativeAtStartBackgroundPanoLoadInvoke filename:  assets/2294472375_24a3b8ef46_o.jpg errno: 2 No such file or directory
            //I/xNativeActivity( 1990): \xNativeActivity.cs:58 Tracking.HeadPose.Pose.Orientation.x  -0.023896
            //I/xNativeActivity( 1990): \xNativeActivity.cs:59 Tracking.HeadPose.Pose.Orientation.y  -0.000054
            //I/xNativeActivity( 1990): \xNativeActivity.cs:60 Tracking.HeadPose.Pose.Orientation.z  -0.002280
            //I/xNativeActivity( 1990): \xNativeActivity.cs:71 enter xNativeAtStartBackgroundPanoLoadInvoke yield filename:  assets/2śö╚▀śö╚▀♠ errno: 110 Connection timed out

            //__filename = filename;
            //new string(

            //var loc_filename = System.Runtime.InteropServices.Marshal.PtrToStringAuto(

            ScriptCoreLibAndroidNDK.Library.ConsoleExtensions.traces("enter xNativeAtStartBackgroundPanoLoadInvoke filename: ", malloc_filename.AsString());
            //ScriptCoreLibAndroidNDK.Library.ConsoleExtensions.tracep("enter xNativeAtStartBackgroundPanoLoadInvoke filename: ", filename);
            ScriptCoreLibAndroidNDK.Library.ConsoleExtensions.tracef("Tracking.HeadPose.Pose.Orientation.x ", Tracking->HeadPose.Pose.Orientation.x);
            ScriptCoreLibAndroidNDK.Library.ConsoleExtensions.tracef("Tracking.HeadPose.Pose.Orientation.y ", Tracking->HeadPose.Pose.Orientation.y);
            ScriptCoreLibAndroidNDK.Library.ConsoleExtensions.tracef("Tracking.HeadPose.Pose.Orientation.z ", Tracking->HeadPose.Pose.Orientation.z);

            //I/xNativeActivity(17768): \xNativeActivity.cs:48 enter xNativeAtStartBackgroundPanoLoadInvoke filename:  assets/2294472375_24a3b8ef46_o.jpg errno: 2 No such file or directory
            //I/xNativeActivity(17768): \xNativeActivity.cs:50 Tracking.HeadPose.Pose.Orientation.x  -0.259649
            //I/xNativeActivity(17768): \xNativeActivity.cs:51 Tracking.HeadPose.Pose.Orientation.y  0.002016
            //I/xNativeActivity(17768): \xNativeActivity.cs:52 Tracking.HeadPose.Pose.Orientation.z  0.041219

            // x:\util\android-sdk-windows\platform-tools\adb.exe logcat -s "art" "xNativeActivity" "System.Console" "DEBUG" "PlatformActivity" "AndroidRuntime" "Oculus360Photos"


            argsF aF = null;


            yield = (env, thiz, args) =>
            {
                //ScriptCoreLibAndroidNDK.Library.ConsoleExtensions.traces("enter xNativeAtStartBackgroundPanoLoadInvoke yield filename: ", malloc_filename.AsString());


                if (aF == null)
                {
                    aF = new argsF {
                        env = env, fields = args
                    }
                }
                ;


                aF["x"] = Tracking->HeadPose.Pose.Orientation.x;
                aF["y"] = Tracking->HeadPose.Pose.Orientation.y;
                aF["z"] = Tracking->HeadPose.Pose.Orientation.z;

                //                I/DEBUG   (30772): pid: 28172, tid: 28248, name: Thread-5951  >>> OVROculus360PhotosHUD.Activities <<<
                //I/DEBUG   (30772): signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
                //I/DEBUG   (30772): Abort message: 'sart/runtime/check_jni.cc:65] JNI DETECTED ERROR IN APPLICATION: input is not valid Modified UTF-8: illegal continuation byte 0x1'

                // Error	19	Cannot use ref or out parameter 'Tracking' inside an anonymous method, lambda expression, or query expression	X:\jsc.svn\examples\java\android\synergy\OVROculus360PhotosNDK\OVROculus360PhotosNDK\xNativeActivity.cs	58	115	OVROculus360PhotosNDK

                //ScriptCoreLibAndroidNDK.Library.ConsoleExtensions.tracef("Tracking.HeadPose.Pose.Orientation.x ", Tracking.HeadPose.Pose.Orientation.x);

                //F/art     (28172): sart/runtime/check_jni.cc:65] JNI DETECTED ERROR IN APPLICATION: input is not valid Modified UTF-8: illegal continuation byte 0x1
                //F/art     (28172): sart/runtime/check_jni.cc:65]     string: 'pbq┌☺'
                //F/art     (28172): sart/runtime/check_jni.cc:65]     in call to NewStringUTF
                //F/art     (28172): sart/runtime/check_jni.cc:65]     from java.lang.String OVROculus360Photos.Activities.xMarshal.stringFromJNI(java.lang.Object)

                var n = env.NewStringUTF;

                //Type.GetType(

                // look almost the same file!

                // OVR_VRAPI_EXPORT const char * vrapi_GetVersionString();

                // if we change our NDK code, will nuget packaing work on the background, and also upgrade running apps?
                var v = n(env, malloc_filename.AsString());

                return(v);
            };
        }