Replace scene pointer with scene name to prevent possible misusages

of scene in node in future.
This commit is contained in:
Sergey Sharybin 2012-08-01 14:48:46 +00:00
parent bfbda2d284
commit 6e208ee887
3 changed files with 8 additions and 5 deletions

@ -38,7 +38,7 @@ void CompositorNode::convertToOperations(ExecutionSystem *graph, CompositorConte
InputSocket *depthSocket = this->getInputSocket(2);
CompositorOperation *compositorOperation = new CompositorOperation();
compositorOperation->setScene((Scene *) editorNode->id);
compositorOperation->setSceneName(editorNode->id->name);
compositorOperation->setRenderData(context->getRenderData());
compositorOperation->setbNodeTree(context->getbNodeTree());
imageSocket->relinkConnections(compositorOperation->getInputSocket(0), 0, graph);

@ -49,6 +49,8 @@ CompositorOperation::CompositorOperation() : NodeOperation()
this->m_imageInput = NULL;
this->m_alphaInput = NULL;
this->m_depthInput = NULL;
this->m_sceneName[0] = '\0';
}
void CompositorOperation::initExecution()
@ -68,7 +70,7 @@ void CompositorOperation::initExecution()
void CompositorOperation::deinitExecution()
{
if (!isBreaked()) {
Render *re = RE_GetRender(this->m_scene->id.name);
Render *re = RE_GetRender(this->m_sceneName);
RenderResult *rr = RE_AcquireResultWrite(re);
if (rr) {
@ -164,7 +166,7 @@ void CompositorOperation::determineResolution(unsigned int resolution[], unsigne
// check actual render resolution with cropping it may differ with cropped border.rendering
// FIX for: [31777] Border Crop gives black (easy)
Render *re = RE_GetRender(this->m_scene->id.name);
Render *re = RE_GetRender(this->m_sceneName);
if (re) {
RenderResult *rr = RE_AcquireResultRead(re);
if (rr) {

@ -25,13 +25,14 @@
#include "COM_NodeOperation.h"
#include "DNA_scene_types.h"
#include "BLI_rect.h"
#include "BLI_string.h"
/**
* @brief Compositor output operation
*/
class CompositorOperation : public NodeOperation {
private:
const Scene *m_scene;
char m_sceneName[MAX_ID_NAME];
/**
* @brief local reference to the scene
@ -65,7 +66,7 @@ private:
public:
CompositorOperation();
void executeRegion(rcti *rect, unsigned int tileNumber);
void setScene(const Scene *scene) { this->m_scene = scene; }
void setSceneName(const char *sceneName) { BLI_strncpy(this->m_sceneName, sceneName, sizeof(this->m_sceneName)); }
void setRenderData(const RenderData *rd) { this->m_rd = rd; }
bool isOutputOperation(bool rendering) const { return true; }
void initExecution();