As discussed in T38340 the solution is to use the current scene from context whenever feasible. Composite does not use node->id at all now, the scene which owns the compositing node tree is retrieved from context instead. Defocus node->id is made editable by the user. By default it is not set, which also will make it use the contextual scene and camera info. The node->id pointer in Defocus is **not** cleared in older blend files. This is done for backward compatibility: the node will then behave as before in untouched scenes. File Output nodes also don't store scene in node->id. This is only needed when creating a new node for initializing the file format. Reviewers: brecht, jbakker, mdewanchand Reviewed By: brecht Differential Revision: https://developer.blender.org/D290
47 lines
1.3 KiB
C++
47 lines
1.3 KiB
C++
/*
|
|
* Copyright 2011, Blender Foundation.
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License
|
|
* as published by the Free Software Foundation; either version 2
|
|
* of the License, or (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software Foundation,
|
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
*
|
|
* Contributor:
|
|
* Jeroen Bakker
|
|
* Monique Dewanchand
|
|
*/
|
|
|
|
#include "COM_CompositorContext.h"
|
|
#include "COM_defines.h"
|
|
#include <stdio.h>
|
|
|
|
CompositorContext::CompositorContext()
|
|
{
|
|
this->m_scene = NULL;
|
|
this->m_rd = NULL;
|
|
this->m_quality = COM_QUALITY_HIGH;
|
|
this->m_hasActiveOpenCLDevices = false;
|
|
this->m_fastCalculation = false;
|
|
this->m_viewSettings = NULL;
|
|
this->m_displaySettings = NULL;
|
|
}
|
|
|
|
const int CompositorContext::getFramenumber() const
|
|
{
|
|
if (this->m_rd) {
|
|
return this->m_rd->cfra;
|
|
}
|
|
else {
|
|
return -1; /* this should never happen */
|
|
}
|
|
}
|