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@pandora.be>2012-10-30 15:51:17 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2012-10-30 15:51:17 +0400
commit0c3d3e5562770586eaa95d6087d190240de5b8f2 (patch)
treecf72e859a15a12d2bbf5c6129dc7d5f91f384e6e /intern/cycles/render/shader.h
parente09a1bc7cff068484ec43bb3383d4981e998c0cf (diff)
Cycles: optimization to not compile shaders and load images that are not
used by any mesh/lamp/world.
Diffstat (limited to 'intern/cycles/render/shader.h')
-rw-r--r--intern/cycles/render/shader.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/intern/cycles/render/shader.h b/intern/cycles/render/shader.h
index 02788008060..90ae67eecff 100644
--- a/intern/cycles/render/shader.h
+++ b/intern/cycles/render/shader.h
@@ -75,11 +75,15 @@ public:
/* requested mesh attributes */
AttributeRequestSet attributes;
+ /* determined before compiling */
+ bool used;
+
Shader();
~Shader();
void set_graph(ShaderGraph *graph);
void tag_update(Scene *scene);
+ void tag_used(Scene *scene);
};
/* Shader Manager virtual base class
@@ -98,6 +102,7 @@ public:
virtual void device_update(Device *device, DeviceScene *dscene, Scene *scene, Progress& progress) = 0;
virtual void device_free(Device *device, DeviceScene *dscene) = 0;
+ void device_update_shaders_used(Scene *scene);
void device_update_common(Device *device, DeviceScene *dscene, Scene *scene, Progress& progress);
void device_free_common(Device *device, DeviceScene *dscene);