When testing the service init without a surface the following was observed:
The bind and start foreground logic for the engine behave differently with respect to surfaces:
- Start service: Engine proceeds through to level load complete without a surface.
- Bind: Engine stalls waiting on a surface, this also happens if a bind occurs before loading completes.
We’d like to have either some way of knowing the engine has finished level loading or have the bind path follow the same as the service path.
Any of the following would work for us (open to alternatives):
- Align bind logic with start logic so bind proceeds through level load complete without stalling on a surface.
- Broadcast event on map/level load completion that we can listen for.
- Messenger listener passed into the start intent, notified when loading is complete.
Thank you!
[Attachment Removed]
Hello J-F,
The startForegroundService API was designed for a broadcast receiver that listens for boot completion and performs an early start of UE without a surface.
Right now, I am adding a withStartWithoutSurface option to the connection builder to start UE without a surface. I’ll provide the updated plugin after testing. I’ll also check the other options.
Regards,
Yevgen
[Attachment Removed]
Hello J-F,
I have just added option withStartWithoutSurface to ConnectionBuilder. This option wiil be applied durin bind operation on service side.
Also forward ENGINELOOP_INIT_COMPLETE to subscribers so clients are notified when loading completes. So If engine already initialized during subscription client will receive this notification. See attached zip. This changes are available in perfroce for R 5.7 (55630837).
Please check updates on your side.
I will integrate this changes to 5.8.
Regards,
Yevgen
[Attachment Removed]
OK thank you, I will give this a look when i have a chance. Appreciate it!
[Attachment Removed]