Any asynchronous way of using omni.kit.window.splash available?

Hi There,

I am trying it integrate omni.kit.window.splash-1.0.4 into our application.

This is the process i have followed.

1. This opens splash screen.

[dependencies]
“omni.kit.window.splash” = {}

[settings.exts.“omni.kit.window.splash”]
imagePath = “${app}/data/startup.png”

2. This stops splash screen, added in start up extension.

async def run_hide_splash(self):
# Acquire the splash screen interface
splash_interface = omni.splash.acquire_splash_screen_interface()
for _ in range(5): # wait 5 frames
await omni.kit.app.get_app().next_update_async()
splash_interface.close_all()
run_coroutine(self.run_hide_splash())

It looks working, but the problem is its blocking main thread, so application hangs few seconds, it blocking gRpc api calls from c# that are need on starting of application.

I cannot use as below after api calls completed as its too late to show splash.

async def show_splash():
    # Acquire the splash screen interface
    splash_interface = omni.splash.acquire_splash_screen_interface()

    # Create a splash image
    splash = splash_interface.create("${resources}/splash/splash.png", 1.0)
    .....

So any solution for this?

Any asynchronous way of using omni.kit.window.splash available?

To be honest, this is why we do not use the splash screen extension anymore. This exact reason. The whole extension has been depreciated and should not really be used. It directly competes with the main kit thread, because the splash screen extension, is itself, its own kit thread. So they fight for resources.

I would personally recommend you do not use it.