Example #1
0
        //RenderTarget2D mBackBuffer;
        //SpriteBatch SpriteBatch;

        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            // Set the sharing mode of the graphics device to turn on XNA rendering
            SharedGraphicsDeviceManager.Current.GraphicsDevice.SetSharingMode(true);

            mMachine        = ((App)Application.Current).GetMachine();
            mRuntime        = mMachine.GetRuntime();
            mOpenGLESModule = mRuntime.GetModule <MoSync.OpenGLESModule>();
            //mOpenGLESModule.InitWithGraphicsDevice(SharedGraphicsDeviceManager.Current.GraphicsDevice);
            MoSyncGraphicsDevice = SharedGraphicsDeviceManager.Current.GraphicsDevice;
            MoSyncGraphicsDevice.PresentationParameters.IsFullScreen           = true;
            SharedGraphicsDeviceManager.Current.SynchronizeWithVerticalRetrace = false;
            mOpenGLESModule.InitWithGraphicsDevice(MoSyncGraphicsDevice);

            // TODO: use this.content to load your game content here
//			mBackBuffer = new RenderTarget2D(MoSyncGraphicsDevice, SharedGraphicsDeviceManager.DefaultBackBufferWidth, SharedGraphicsDeviceManager.DefaultBackBufferHeight);
//			SpriteBatch = new SpriteBatch(SharedGraphicsDeviceManager.Current.GraphicsDevice);
//			MoSyncGraphicsDevice.SetRenderTarget(mBackBuffer);

#if USE_THREAD_LOCKED_VERSION
            mOpenGLESModule.SetOnUpdateScreenAction(() =>
            {
                mShouldDrawFrame = true;
                if (!mOnDrawInitialized)
                {
                    timer.Draw += OnDraw;
                }
                mOnDrawInitialized = true;
                DrawRequiredEvent.Set();
                DrawCompleteEvent.WaitOne();
                mShouldDrawFrame = false;
            });

            MoSync.Util.SetPreRunOnMainThreadAction(() =>
            {
                mShouldDrawFrame   = false;
                timer.FrameAction -= PreDraw;
                DrawRequiredEvent.Set();
            });

            MoSync.Util.SetPostRunOnMainThreadAction(() =>
            {
                mShouldDrawFrame   = false;
                timer.FrameAction += PreDraw;
                DrawRequiredEvent.Set();
            });
#else
            mOpenGLESModule.SetOnUpdateScreenAction(() =>
            {
                timer.Draw += OnDraw;
            });
#endif

            base.OnNavigatedTo(e);

            // Start the timer
            timer.Start();
        }
Example #2
0
		//RenderTarget2D mBackBuffer;
		//SpriteBatch SpriteBatch;

        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            // Set the sharing mode of the graphics device to turn on XNA rendering
            SharedGraphicsDeviceManager.Current.GraphicsDevice.SetSharingMode(true);

			mMachine = ((App)Application.Current).GetMachine();
			mRuntime = mMachine.GetRuntime();
			mOpenGLESModule = mRuntime.GetModule<MoSync.OpenGLESModule>();
			//mOpenGLESModule.InitWithGraphicsDevice(SharedGraphicsDeviceManager.Current.GraphicsDevice);
			MoSyncGraphicsDevice = SharedGraphicsDeviceManager.Current.GraphicsDevice;
			MoSyncGraphicsDevice.PresentationParameters.IsFullScreen = true;
			SharedGraphicsDeviceManager.Current.SynchronizeWithVerticalRetrace = false;
			mOpenGLESModule.InitWithGraphicsDevice(MoSyncGraphicsDevice);

            // TODO: use this.content to load your game content here
//			mBackBuffer = new RenderTarget2D(MoSyncGraphicsDevice, SharedGraphicsDeviceManager.DefaultBackBufferWidth, SharedGraphicsDeviceManager.DefaultBackBufferHeight);
//			SpriteBatch = new SpriteBatch(SharedGraphicsDeviceManager.Current.GraphicsDevice);
//			MoSyncGraphicsDevice.SetRenderTarget(mBackBuffer);

#if USE_THREAD_LOCKED_VERSION
			mOpenGLESModule.SetOnUpdateScreenAction(() =>
			{
				mShouldDrawFrame = true;
				if (!mOnDrawInitialized)
					timer.Draw += OnDraw;
				mOnDrawInitialized = true;
				DrawRequiredEvent.Set();
				DrawCompleteEvent.WaitOne();
				mShouldDrawFrame = false;
			});

			MoSync.Util.SetPreRunOnMainThreadAction(() =>
			{
				mShouldDrawFrame = false;
				timer.FrameAction -= PreDraw;
				DrawRequiredEvent.Set();
			});

			MoSync.Util.SetPostRunOnMainThreadAction(() =>
			{
				mShouldDrawFrame = false;
				timer.FrameAction += PreDraw;
				DrawRequiredEvent.Set();
			});
#else
			mOpenGLESModule.SetOnUpdateScreenAction(() =>
			{
				timer.Draw += OnDraw;
			});
#endif

			base.OnNavigatedTo(e);

			// Start the timer
			timer.Start();
        }