Example #1
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            requestedOrientation = (ApplicationOptions.OrientationType)Intent.GetIntExtra(nameof(ApplicationOptions.OrientationType), 0);
            switch (requestedOrientation)
            {
            case ApplicationOptions.OrientationType.Landscape:
                RequestedOrientation = ScreenOrientation.SensorLandscape;
                break;

            case ApplicationOptions.OrientationType.Portrait:
                RequestedOrientation = ScreenOrientation.SensorPortrait;
                break;

            case ApplicationOptions.OrientationType.LandscapeAndPortrait:
                RequestedOrientation = ScreenOrientation.Unspecified;
                break;
            }

            SDLSurface  surface = SDLActivity.CreateSurface(this);
            FrameLayout layout  = new FrameLayout(this);

            layout.AddView(surface);
            SetContentView(layout);
        }
Example #2
0
        public async Task <Application> Show(Type appType, ApplicationOptions options = null, bool finishActivityOnExit = false)
        {
            await Stop();

            if (SDLSurface != null)
            {
                RemoveView(SDLSurface);
            }

            SDLSurface = SDLActivity.CreateSurface(Context as Activity);
            AddView(SDLSurface, ViewGroup.LayoutParams.MatchParent);

            var    tcs            = new TaskCompletionSource <Application>();
            Action startedHandler = null;

            startedHandler = () =>
            {
                Application.Started -= startedHandler;
                tcs.TrySetResult(Application.Current);
            };

            Application.Started += startedHandler;
            UrhoSurface.SetSdlMain(() => Application.CreateInstance(appType, options), finishActivityOnExit, SDLSurface);
            return(await tcs.Task);
        }
Example #3
0
 public static async Task Stop(this SDLSurface surface)
 {
     if (Application.HasCurrent && Application.Current.IsActive)
     {
         await Application.Current.Exit();
     }
 }
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
            var mLayout = new FrameLayout(this);

            surface = UrhoSurface.CreateSurface(this, typeof(MySample));
            //surface.Background.SetAlpha(10);

            TextView txtView = new TextView(this);
            txtView.SetBackgroundColor(Color.Violet);
            txtView.SetWidth(10);
            txtView.SetHeight(10);

            txtView.Text = "HAHAH";
            //txtView.Text = surface.Background.ToString();
            Button btn = new Button(this);
            btn.SetBackgroundColor(Color.Transparent);
            btn.Text = "Button";
            btn.SetHeight(100);
            btn.SetWidth(100);
            btn.SetX(30);
            btn.SetY(30);
            btn.TextAlignment = TextAlignment.Center;
            mLayout.AddView(txtView);
            mLayout.AddView(btn);
            mLayout.AddView(surface);
            SetContentView(mLayout);
        }
		protected override void OnCreate(Bundle bundle)
		{
			base.OnCreate(bundle);
			var mLayout = new AbsoluteLayout(this);
			surface = UrhoSurface.CreateSurface(this, Type.GetType(Intent.GetStringExtra("Type")), new ApplicationOptions("Data"), true);
			mLayout.AddView(surface);
			SetContentView(mLayout);
		}
Example #6
0
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
            var mLayout = new AbsoluteLayout(this);

            surface = UrhoSurface.CreateSurface(this, typeof(UrhoApp), new ApplicationOptions("Data"), true);
            mLayout.AddView(surface);
            SetContentView(mLayout);
        }
Example #7
0
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
            var mLayout = new AbsoluteLayout(this);

            surface = UrhoSurface.CreateSurface(this, Type.GetType(Intent.GetStringExtra("Type")), new ApplicationOptions("Data"), true);
            mLayout.AddView(surface);
            SetContentView(mLayout);
        }
        static void SetSDLEntryCallback(bool finishActivityOnExit, SDLSurface surface)
        {
            __surface = new AndroidSDLSurface(surface);

            SDLActivity.FinishActivityOnNativeExit = finishActivityOnExit;

            RegisterSDLEntryCallback(() => {
                return(Application.Run(appDelegateType, new string[0]));
            });
        }
Example #9
0
        public static void Remove(this SDLSurface surface)
        {
            var vg = surface?.Parent as ViewGroup;

            if (surface != null && vg != null)
            {
                //vg.RemoveView(SdlSurface);
                surface.Enabled    = false;
                surface.Visibility = ViewStates.Gone;
            }
        }
Example #10
0
        public async Task <Application> Show(Type appType, ApplicationOptions options = null, bool finishActivityOnExit = false)
        {
            Stop();
            launching = true;
            if (SDLSurface != null)
            {
                RemoveView(SDLSurface);
            }

            SDLSurface = SDLActivity.CreateSurface(Context as Activity);
            AddView(SDLSurface, ViewGroup.LayoutParams.MatchParent);
            // Reflection <UrhoSurfacePlaceholder>: Urho.Application.CurrentSurface = new WeakReference(SDLSurface);
            var currentSurface = typeof(Application).GetProperty(nameof(Application.CurrentSurface), BindingFlags.Public | BindingFlags.Static | BindingFlags.GetProperty);

            currentSurface.SetValue(default, new WeakReference(SDLSurface));
Example #11
0
        async void OnRestart(object sender, EventArgs e)
        {
            if (surface != null)
            {
                await surface.Stop();

                await Task.Yield();

                var viewGroup = surface.Parent as ViewGroup;
                viewGroup?.RemoveView(surface);
            }

            surface = UrhoSurface.CreateSurface(this);
            placeholder.AddView(surface);
            game = await surface.Show <Game>(new Urho.ApplicationOptions());
        }
Example #12
0
        public static async Task <Application> Show(this SDLSurface surface, Type appType, ApplicationOptions options = null, bool finishActivityOnExit = false)
        {
            //await semaphore.WaitAsync();
            await Stop(surface);

            var    tcs            = new TaskCompletionSource <Application>();
            Action startedHandler = null;

            startedHandler = () =>
            {
                Application.Started -= startedHandler;
                tcs.TrySetResult(Application.Current);
                //semaphore.Release();
            };

            Application.Started += startedHandler;
            UrhoSurface.SetSdlMain(() => Application.CreateInstance(appType, options), finishActivityOnExit, surface);
            return(await tcs.Task);
        }
Example #13
0
 public static void SavePNG(SDLSurface Surface, IntPtr Dst, bool Freedst)
 {
     Util.ThrowIfResultIsError(SDL_image.IMG_SavePNG_RW(Surface.Ptr, Dst, Convert.ToInt32(Freedst)));
 }
 AndroidSDLSurface(SDLSurface sdlSurface)
 {
     SdlSurface = sdlSurface;
 }
 AndroidSDLSurface(SDLSurface sdlSurface)
 {
     SdlSurface = sdlSurface;
 }
Example #16
0
 internal static void SetSdlMain(Func <Application> applicationFactory, bool finishActivityOnExit, SDLSurface surface)
 {
     SDLActivity.FinishActivityOnNativeExit = finishActivityOnExit;
     RegisterSdlLauncher(_ => {
         var app         = applicationFactory();
         app.UrhoSurface = surface;
         var code        = app.Run();
         Log.Warn("URHOSHARP", "App exited: " + code);
         return(code);
     });
 }
Example #17
0
 UrhoSurface(SDLSurface sdlSurface)
 {
     SdlSurface = sdlSurface;
 }
Example #18
0
 public static void SavePNG(SDLSurface Surface, string File)
 {
     Util.ThrowIfResultIsError(SDL_image.IMG_SavePNG(Surface.Ptr, File));
 }
Example #19
0
 public static async Task <TApplication> Show <TApplication>(this SDLSurface surface, ApplicationOptions options = null, bool finishActivityOnExit = false)
     where TApplication : Application
 {
     return((TApplication) await Show(surface, typeof(TApplication), options, finishActivityOnExit));
 }
        static void SetSDLEntryCallback(bool finishActivityOnExit, SDLSurface surface)
        {
            __surface = new AndroidSDLSurface(surface);

            SDLActivity.FinishActivityOnNativeExit = finishActivityOnExit;

            RegisterSDLEntryCallback( () => {
                return Application.Run(appDelegateType, new string[0]);
            });
        }