Exemplo n.º 1
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            SetContentView(Resource.Layout.Main);
            mSurfaceView           = FindViewById <GLSurfaceView>(Resource.Id.surfaceview);
            mDisplayRotationHelper = new DisplayRotationHelper(this);

            Java.Lang.Exception exception = null;
            string message = null;

            try {
                mSession = new Session(/*context=*/ this);
            } catch (UnavailableArcoreNotInstalledException e) {
                message   = "Please install ARCore";
                exception = e;
            } catch (UnavailableApkTooOldException e) {
                message   = "Please update ARCore";
                exception = e;
            } catch (UnavailableSdkTooOldException e) {
                message   = "Please update this app";
                exception = e;
            } catch (Java.Lang.Exception e) {
                exception = e;
                message   = "This device does not support AR";
            }

            if (message != null)
            {
                Toast.MakeText(this, message, ToastLength.Long).Show();
                return;
            }

            // Create default config, check is supported, create session from that config.
            var config = new Google.AR.Core.Config(mSession);

            if (!mSession.IsSupported(config))
            {
                Toast.MakeText(this, "This device does not support AR", ToastLength.Long).Show();
                Finish();
                return;
            }

            mGestureDetector = new Android.Views.GestureDetector(this, new SimpleTapGestureDetector {
                SingleTapUpHandler = (MotionEvent arg) => {
                    onSingleTap(arg);
                    return(true);
                },
                DownHandler = (MotionEvent arg) => true
            });

            mSurfaceView.SetOnTouchListener(this);

            // Set up renderer.
            mSurfaceView.PreserveEGLContextOnPause = true;
            mSurfaceView.SetEGLContextClientVersion(2);
            mSurfaceView.SetEGLConfigChooser(8, 8, 8, 8, 16, 0);             // Alpha used for plane blending.
            mSurfaceView.SetRenderer(this);
            mSurfaceView.RenderMode = Rendermode.Continuously;
        }
Exemplo n.º 2
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            BitmapCache.Context = TextureCache.Context = Instance = this;

            DisplayMetrics m = new DisplayMetrics();

            WindowManager.DefaultDisplay.GetMetrics(m);
            density = m.Density;

            try
            {
                version = PackageManager.GetPackageInfo(PackageName, 0).VersionName;
            }
            catch (PackageManager.NameNotFoundException)
            {
                version = "???";
            }

            VolumeControlStream = Stream.Music;

            view = new GLSurfaceView(this);
            view.SetEGLContextClientVersion(2);
            view.SetEGLConfigChooser(false);
            view.SetRenderer(this);
            view.SetOnTouchListener(this);
            SetContentView(view);
        }
Exemplo n.º 3
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            SetContentView(Resource.Layout.Main);
            mSurfaceView = FindViewById <GLSurfaceView>(Resource.Id.surfaceview);

            mSession = new Session(/*context=*/ this);

            // Create default config, check is supported, create session from that config.
            mDefaultConfig = Google.AR.Core.Config.CreateDefaultConfig();
            if (!mSession.IsSupported(mDefaultConfig))
            {
                Toast.MakeText(this, "This device does not support AR", ToastLength.Long).Show();
                Finish();
                return;
            }

            mGestureDetector = new Android.Views.GestureDetector(this, new SimpleTapGestureDetector {
                SingleTapUpHandler = (MotionEvent arg) => {
                    onSingleTap(arg);
                    return(true);
                },
                DownHandler = (MotionEvent arg) => true
            });

            mSurfaceView.SetOnTouchListener(this);

            // Set up renderer.
            mSurfaceView.PreserveEGLContextOnPause = true;
            mSurfaceView.SetEGLContextClientVersion(2);
            mSurfaceView.SetEGLConfigChooser(8, 8, 8, 8, 16, 0);             // Alpha used for plane blending.
            mSurfaceView.SetRenderer(this);
            mSurfaceView.RenderMode = Rendermode.Continuously;
        }
Exemplo n.º 4
0
 private void SetupGlSurfaceView()
 {
     glSurfaceView = FindViewById <GLSurfaceView>(Resource.Id.surfaceview);
     glSurfaceView.PreserveEGLContextOnPause = true;
     glSurfaceView.SetEGLContextClientVersion(2);
     glSurfaceView.SetEGLConfigChooser(8, 8, 8, 8, 16, 0);
     glSurfaceView.SetOnTouchListener(this);
     glSurfaceView.SetRenderer(this);
 }
Exemplo n.º 5
0
        //

        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            Engine.activity = this;

            //apply general settings
            if (fullscreen)
            {
                Window.AddFlags(WindowManagerFlags.Fullscreen);
            }
            if (keepScreenOn)
            {
                Window.AddFlags(WindowManagerFlags.KeepScreenOn);
            }

            StartupTiming.TotalStart();

            SetContentView(Resource.Layout.activity_main);

            //Android.Support.V7.Widget.Toolbar toolbar = FindViewById<Android.Support.V7.Widget.Toolbar>( Resource.Id.toolbar );
            //SetSupportActionBar( toolbar );

#if VULKAN
            surfaceView = new VulkanView(this);

            //!!!!LinearLayout?
            RelativeLayout sceneHolder = (RelativeLayout)this.FindViewById(Resource.Id.sceneHolder);
            sceneHolder.AddView(surfaceView);

            surfaceView.SetOnTouchListener(this);
#else
            glSurfaceView = new GLSurfaceView(this);
            glSurfaceView.SetEGLContextClientVersion(3);

            //it's just recommendation, is not works for any device
            glSurfaceView.PreserveEGLContextOnPause = true;

            //!!!!hdr
            //glSurfaceView.SetEGLConfigChooser( 8, 8, 8, 8, 24, 8 );

            var renderer = new Renderer();
            glSurfaceView.SetRenderer(renderer);

            RelativeLayout sceneHolder = (RelativeLayout)this.FindViewById(Resource.Id.sceneHolder);
            sceneHolder.AddView(glSurfaceView);

            glSurfaceView.SetOnTouchListener(this);
#endif

            //engineMainThread = new Thread( EngineMainThreadMethod );
            //engineMainThread.Start();
        }
Exemplo n.º 6
0
        private void InitGestureDetector()
        {
            mGestureDetector = new GestureDetector(this, new SimpleGestureDetectorListener(this));

            mSurfaceView.SetOnTouchListener(new MyOnTouchListener(this));
        }
Exemplo n.º 7
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            SetContentView(Resource.Layout.Main);
            mSurfaceView           = FindViewById <GLSurfaceView>(Resource.Id.surfaceview);
            mDisplayRotationHelper = new DisplayRotationHelper(this);

            Java.Lang.Exception exception = null;
            string message = null;

            try
            {
                mSession = new Session(/*context=*/ this);
            }
            catch (UnavailableArcoreNotInstalledException e)
            {
                message   = "Please install ARCore";
                exception = e;
            }
            catch (UnavailableApkTooOldException e)
            {
                message   = "Please update ARCore";
                exception = e;
            }
            catch (UnavailableSdkTooOldException e)
            {
                message   = "Please update this app";
                exception = e;
            }
            catch (Java.Lang.Exception e)
            {
                exception = e;
                message   = "This device does not support AR";
            }

            if (message != null)
            {
                Toast.MakeText(this, message, ToastLength.Long).Show();
                return;
            }


            // Create default config, check is supported, create session from that config.
            var config = new Google.AR.Core.Config(mSession);

            if (!mSession.IsSupported(config))
            {
                Toast.MakeText(this, "This device does not support AR", ToastLength.Long).Show();
                Finish();
                return;
            }

            AugmentedImageDatabase imageDatabase = new AugmentedImageDatabase(mSession);

            Bitmap bitmap = null;

            try
            {
                var inputStream = Assets.Open("qrcode.png");
                bitmap = BitmapFactory.DecodeStream(inputStream);
            }
            catch (IOException e)
            {
                Log.Error(TAG, "I/O exception loading augmented image bitmap.", e);
            }
            index = imageDatabase.AddImage("interstellar", bitmap, 0.01f);
            config.AugmentedImageDatabase = imageDatabase;

            mSession.Configure(config);

            mGestureDetector = new GestureDetector(this, new TapGestureDetector
            {
                SingleTapUpHandler = (MotionEvent arg) => {
                    OnSingleTap(arg);
                    return(true);
                },
                DownHandler = (MotionEvent arg) => true
            });

            mSurfaceView.SetOnTouchListener(this);



            // Set up renderer.
            mSurfaceView.PreserveEGLContextOnPause = true;
            mSurfaceView.SetEGLContextClientVersion(2);
            mSurfaceView.SetEGLConfigChooser(8, 8, 8, 8, 16, 0); // Alpha used for plane blending.
            mSurfaceView.SetRenderer(this);
            mSurfaceView.RenderMode = Rendermode.Continuously;
        }
        protected override void OnElementChanged(ElementChangedEventArgs <Page> e)
        {
            base.OnElementChanged(e);

            if (e.OldElement != null || Element == null)
            {
                return;
            }

            try
            {
                //need to add this on main layout
                //mSurfaceView = FindViewById<GLSurfaceView>(Resource.Id.surfaceview);

                Java.Lang.Exception exception = null;
                string message = null;

                try
                {
                    //Create session
                    //mSession = new Session(_context);
                }
                //catch (UnavailableArcoreNotInstalledException ex)
                //{
                //    message = "Please install ARCore";
                //    exception = ex;
                //}
                //catch (UnavailableApkTooOldException ex)
                //{
                //    message = "Please update ARCore";
                //    exception = ex;
                //}
                //catch (UnavailableSdkTooOldException ex)
                //{
                //    message = "Please update this app";
                //    exception = ex;
                //}
                catch (Java.Lang.Exception ex)
                {
                    exception = ex;
                    message   = "This device does not support AR";
                }

                if (message != null)
                {
                    Toast.MakeText(_context, message, ToastLength.Long).Show();
                    return;
                }

                // Create default config, check is supported, create session from that config.
                var config = new Google.AR.Core.Config(mSession);
                if (!mSession.IsSupported(config))
                {
                    Toast.MakeText(_context, "This device does not support AR", ToastLength.Long).Show();
                    return;
                }

                mGestureDetector = new Android.Views.GestureDetector(_context, new SimpleTapGestureDetector
                {
                    SingleTapUpHandler = (MotionEvent arg) => {
                        onSingleTap(arg);
                        return(true);
                    },
                    DownHandler = (MotionEvent arg) => true
                });

                mSurfaceView.SetOnTouchListener(this);

                // Set up renderer.
                mSurfaceView.PreserveEGLContextOnPause = true;
                mSurfaceView.SetEGLContextClientVersion(2);
                mSurfaceView.SetEGLConfigChooser(8, 8, 8, 8, 16, 0); // Alpha used for plane blending.
                mSurfaceView.SetRenderer(this);
                mSurfaceView.RenderMode = Rendermode.Continuously;
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine(@"           ERROR: ", ex.Message);
            }
        }