Fix Cycles session being (re)created twice

In most cases this only makes a small startup time difference, but there is
no reason to do this.

Ref D5363
This commit is contained in:
Patrick Mours 2019-08-26 17:09:26 +02:00 committed by Brecht Van Lommel
parent 2b55f621fe
commit 8f8e6a7c7b
2 changed files with 10 additions and 11 deletions

@ -114,11 +114,6 @@ BlenderSession::~BlenderSession()
free_session();
}
void BlenderSession::create()
{
create_session();
}
void BlenderSession::create_session()
{
SessionParams session_params = BlenderSync::get_session_params(
@ -199,8 +194,12 @@ void BlenderSession::reset_session(BL::BlendData &b_data, BL::Depsgraph &b_depsg
height = render_resolution_y(b_render);
}
if (session == NULL) {
create();
bool is_new_session = (session == NULL);
if (is_new_session) {
/* Initialize session and remember it was just created so not to
* re-create it below.
*/
create_session();
}
if (b_v3d) {
@ -219,8 +218,10 @@ void BlenderSession::reset_session(BL::BlendData &b_data, BL::Depsgraph &b_depsg
/* if scene or session parameters changed, it's easier to simply re-create
* them rather than trying to distinguish which settings need to be updated
*/
free_session();
create_session();
if (!is_new_session) {
free_session();
create_session();
}
return;
}

@ -49,8 +49,6 @@ class BlenderSession {
~BlenderSession();
void create();
/* session */
void create_session();
void free_session();