コード例 #1
0
ファイル: UrhoSurface.cs プロジェクト: Scellow/urho
        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);
        }
コード例 #2
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);
        }
コード例 #3
0
        /// <summary>
        /// Creates a view (SurfaceView) that can be added anywhere
        /// </summary>
        public static SDLSurface CreateSurface(Activity activity, Func <Application> applicationFactory, bool finishActivtiyOnExit = false)
        {
            var surface = SDLActivity.CreateSurface(activity);

            SetSdlMain(applicationFactory, finishActivtiyOnExit, surface);
            return(surface);
        }
コード例 #4
0
        /// <summary>
        /// Creates a view (SurfaceView) that can be added anywhere
        /// </summary>
        public static SDLSurface CreateSurface(Activity activity, bool finishActivtiyOnExit = false, Type appDelegateType = null)
        {
            AndroidSDLSurface.appDelegateType = appDelegateType;
            var surface = SDLActivity.CreateSurface(activity);

            SetSDLEntryCallback(finishActivtiyOnExit, surface);
            return(surface);
        }
コード例 #5
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));
コード例 #6
0
ファイル: UrhoSurface.cs プロジェクト: aurodev/urho
 /// <summary>
 /// Creates a view (SurfaceView) that can be added anywhere
 /// </summary>
 public static SDLSurface CreateSurface(Activity activity, Type applicationType, ApplicationOptions options = null)
 {
     RegisterSdlLauncher(contextPtr => Application.CreateInstance(applicationType, options).Run());
     return(SDLActivity.CreateSurface(activity));
 }
コード例 #7
0
ファイル: UrhoSurface.cs プロジェクト: lewing/urho
 /// <summary>
 /// Creates a view (SurfaceView) that can be added anywhere
 /// </summary>
 public static SDLSurface CreateSurface(Activity activity) => SDLActivity.CreateSurface(activity);