Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@gmail.com>2016-05-14 15:50:03 +0300
committerBrecht Van Lommel <brechtvanlommel@gmail.com>2016-05-17 22:39:16 +0300
commit0e8cd14dfee9788f24854aa8f4148033ef042f51 (patch)
tree4fd7fdb358f9ef4ccdcb934025b74ee6f25598ad /intern/cycles/render/background.cpp
parent08670d3b8117cda608c178688f261e1204794a0d (diff)
Code refactor: use shader pointers rather than shader indexes.
Diffstat (limited to 'intern/cycles/render/background.cpp')
-rw-r--r--intern/cycles/render/background.cpp18
1 files changed, 11 insertions, 7 deletions
diff --git a/intern/cycles/render/background.cpp b/intern/cycles/render/background.cpp
index 0cd164dc03e..89f90bc8dad 100644
--- a/intern/cycles/render/background.cpp
+++ b/intern/cycles/render/background.cpp
@@ -37,7 +37,7 @@ Background::Background()
use_ao = false;
visibility = PATH_RAY_ALL_VISIBILITY;
- shader = 0;
+ shader = NULL;
transparent = false;
need_update = true;
@@ -54,10 +54,14 @@ void Background::device_update(Device *device, DeviceScene *dscene, Scene *scene
device_free(device, dscene);
- if(use_shader)
- shader = scene->default_background;
+ Shader *bg_shader = shader;
+
+ if(use_shader) {
+ if(!bg_shader)
+ bg_shader = scene->default_background;
+ }
else
- shader = scene->default_empty;
+ bg_shader = scene->default_empty;
/* set shader index and transparent option */
KernelBackground *kbackground = &dscene->data.background;
@@ -72,15 +76,15 @@ void Background::device_update(Device *device, DeviceScene *dscene, Scene *scene
}
kbackground->transparent = transparent;
- kbackground->surface_shader = scene->shader_manager->get_shader_id(shader);
+ kbackground->surface_shader = scene->shader_manager->get_shader_id(bg_shader);
- if(scene->shaders[shader]->has_volume)
+ if(bg_shader->has_volume)
kbackground->volume_shader = kbackground->surface_shader;
else
kbackground->volume_shader = SHADER_NONE;
/* No background node, make world shader invisible to all rays, to skip evaluation in kernel. */
- if(scene->shaders[shader]->graph->nodes.size() <= 1) {
+ if(bg_shader->graph->nodes.size() <= 1) {
kbackground->surface_shader |= SHADER_EXCLUDE_ANY;
}
/* Background present, check visibilities */