diff options
Diffstat (limited to 'source/blender/compositor/operations/COM_RenderLayersBaseProg.cpp')
-rw-r--r-- | source/blender/compositor/operations/COM_RenderLayersBaseProg.cpp | 65 |
1 files changed, 35 insertions, 30 deletions
diff --git a/source/blender/compositor/operations/COM_RenderLayersBaseProg.cpp b/source/blender/compositor/operations/COM_RenderLayersBaseProg.cpp index 94ba8973314..35c8753ded6 100644 --- a/source/blender/compositor/operations/COM_RenderLayersBaseProg.cpp +++ b/source/blender/compositor/operations/COM_RenderLayersBaseProg.cpp @@ -31,7 +31,8 @@ extern "C" { #include "RE_render_ext.h" } -RenderLayersBaseProg::RenderLayersBaseProg(int renderpass, int elementsize): NodeOperation() { +RenderLayersBaseProg::RenderLayersBaseProg(int renderpass, int elementsize): NodeOperation() +{ this->renderpass = renderpass; this->setScene(NULL); this->inputBuffer = NULL; @@ -39,27 +40,28 @@ RenderLayersBaseProg::RenderLayersBaseProg(int renderpass, int elementsize): Nod } -void RenderLayersBaseProg::initExecution() { +void RenderLayersBaseProg::initExecution() +{ Scene * scene = this->getScene(); - Render *re= (scene)? RE_GetRender(scene->id.name): NULL; - RenderResult *rr= NULL; + Render *re = (scene)? RE_GetRender(scene->id.name): NULL; + RenderResult *rr = NULL; if (re) - rr= RE_AcquireResultRead(re); + rr = RE_AcquireResultRead(re); if (rr) { - SceneRenderLayer *srl= (SceneRenderLayer*)BLI_findlink(&scene->r.layers, getLayerId()); + SceneRenderLayer *srl = (SceneRenderLayer*)BLI_findlink(&scene->r.layers, getLayerId()); if (srl) { - - RenderLayer *rl= RE_GetRenderLayer(rr, srl->name); - if (rl && rl->rectf) { - this->inputBuffer = RE_RenderLayerGetPass(rl, renderpass); - - if (this->inputBuffer == NULL || renderpass == SCE_PASS_COMBINED) { - this->inputBuffer = rl->rectf; - } - } - } + + RenderLayer *rl = RE_GetRenderLayer(rr, srl->name); + if (rl && rl->rectf) { + this->inputBuffer = RE_RenderLayerGetPass(rl, renderpass); + + if (this->inputBuffer == NULL || renderpass == SCE_PASS_COMBINED) { + this->inputBuffer = rl->rectf; + } + } + } } if (re) { RE_ReleaseResult(re); @@ -67,7 +69,8 @@ void RenderLayersBaseProg::initExecution() { } } -void RenderLayersBaseProg::executePixel(float* output, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]) { +void RenderLayersBaseProg::executePixel(float *output, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[]) +{ int ix = x; int iy = y; @@ -100,34 +103,36 @@ void RenderLayersBaseProg::executePixel(float* output, float x, float y, PixelSa } } -void RenderLayersBaseProg::deinitExecution() { +void RenderLayersBaseProg::deinitExecution() +{ this->inputBuffer = NULL; } -void RenderLayersBaseProg::determineResolution(unsigned int resolution[], unsigned int preferredResolution[]) { - Scene *sce= this->getScene(); - Render *re= (sce)? RE_GetRender(sce->id.name): NULL; - RenderResult *rr= NULL; +void RenderLayersBaseProg::determineResolution(unsigned int resolution[], unsigned int preferredResolution[]) +{ + Scene *sce = this->getScene(); + Render *re = (sce) ? RE_GetRender(sce->id.name) : NULL; + RenderResult *rr = NULL; resolution[0] = 0; resolution[1] = 0; if (re) - rr= RE_AcquireResultRead(re); + rr = RE_AcquireResultRead(re); if (rr) { - SceneRenderLayer *srl= (SceneRenderLayer*)BLI_findlink(&sce->r.layers, getLayerId()); + SceneRenderLayer *srl = (SceneRenderLayer*)BLI_findlink(&sce->r.layers, getLayerId()); if (srl) { - RenderLayer *rl= RE_GetRenderLayer(rr, srl->name); - if (rl && rl->rectf) { - resolution[0]=rl->rectx; - resolution[1]=rl->recty; - } + RenderLayer *rl = RE_GetRenderLayer(rr, srl->name); + if (rl && rl->rectf) { + resolution[0]=rl->rectx; + resolution[1]=rl->recty; + } } } if (re) - RE_ReleaseResult(re); + RE_ReleaseResult(re); } |