Skip to main content
Participant
August 8, 2016
Question

AE stops updating interface, shows spinning cursor when rendering via script

  • August 8, 2016
  • 1 reply
  • 865 views

Hey everybody,

I have the following problem. When I start a render queue with multiple items in my script (app.project.renderQueue.render()), after a few seconds the main AE window stops updating and stops showing the current render status, Also the script interface becomes unresponsive. Windows starts showing the spinning cursor and shows the app as "not responding". The render still runs in the background though, but to the user it seems as if AE had crashed. When the render is done, everything continues as normal.

This behaviour only occurs on Windows, on the Mac everything runs as expected with the same script and project.

Does anyone have any idea what can be done about this?

Thanks

Konrad

This topic has been closed for replies.

1 reply

Alex White
Legend
August 8, 2016

Hi Konars

That's werid. Does your code check rendering progress after you launch the render?

If so, can you show your code?

Participant
August 9, 2016

Hi Alex,

thanks for your reply. I start the render with app.project.renderQueue.render(). As far as i have seen, this function will only return when the rendering is done. Until then, the script is unresponsive an will not do anything else, even scheduled tasks will not run..

I have tried to use the renderQueueItem.onStatusChanged() callback function to monitor the rendering, but it will only be called at the start and end of rendering one item. If the render time is longer than a few seconds, the PC goes to "not responding" mode anyway.

Do you have any suggestion on how to check rendering progress while rendering? Ideally I would also like the script to show a status bar or something while rendering.

Thanks

Konrad

Alex White
Legend
August 9, 2016

This bug appears I think starting from AE CC2014.

I think you can avoid it using such construction:

var rq = app.project.renderQueue;

rq.render();

if (!rq.rendering){

        if(app.project.renderQueue.item(app.project.renderQueue.numItems).status != RQItemStatus.DONE){

            alert("You have stopped render.");

        }else{

            alert("Finished rendering.");   

        }

}

// code after render