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:
Diffstat (limited to 'intern/cycles/kernel/osl/osl_shader.cpp')
-rw-r--r--intern/cycles/kernel/osl/osl_shader.cpp19
1 files changed, 11 insertions, 8 deletions
diff --git a/intern/cycles/kernel/osl/osl_shader.cpp b/intern/cycles/kernel/osl/osl_shader.cpp
index 4c067e88ab6..fba207e7230 100644
--- a/intern/cycles/kernel/osl/osl_shader.cpp
+++ b/intern/cycles/kernel/osl/osl_shader.cpp
@@ -89,7 +89,7 @@ void OSLShader::thread_free(KernelGlobalsCPU *kg)
static void shaderdata_to_shaderglobals(const KernelGlobalsCPU *kg,
ShaderData *sd,
- const IntegratorStateCPU *state,
+ const void *state,
uint32_t path_flag,
OSLThreadData *tdata)
{
@@ -134,7 +134,12 @@ static void shaderdata_to_shaderglobals(const KernelGlobalsCPU *kg,
/* Used by render-services. */
sd->osl_globals = kg;
- sd->osl_path_state = state;
+ if (path_flag & PATH_RAY_SHADOW) {
+ sd->osl_shadow_path_state = (const IntegratorShadowStateCPU *)state;
+ }
+ else {
+ sd->osl_path_state = (const IntegratorStateCPU *)state;
+ }
}
/* Surface */
@@ -175,7 +180,7 @@ static void flatten_surface_closure_tree(ShaderData *sd,
}
void OSLShader::eval_surface(const KernelGlobalsCPU *kg,
- const IntegratorStateCPU *state,
+ const void *state,
ShaderData *sd,
uint32_t path_flag)
{
@@ -283,7 +288,7 @@ static void flatten_background_closure_tree(ShaderData *sd,
}
void OSLShader::eval_background(const KernelGlobalsCPU *kg,
- const IntegratorStateCPU *state,
+ const void *state,
ShaderData *sd,
uint32_t path_flag)
{
@@ -341,7 +346,7 @@ static void flatten_volume_closure_tree(ShaderData *sd,
}
void OSLShader::eval_volume(const KernelGlobalsCPU *kg,
- const IntegratorStateCPU *state,
+ const void *state,
ShaderData *sd,
uint32_t path_flag)
{
@@ -366,9 +371,7 @@ void OSLShader::eval_volume(const KernelGlobalsCPU *kg,
/* Displacement */
-void OSLShader::eval_displacement(const KernelGlobalsCPU *kg,
- const IntegratorStateCPU *state,
- ShaderData *sd)
+void OSLShader::eval_displacement(const KernelGlobalsCPU *kg, const void *state, ShaderData *sd)
{
/* setup shader globals from shader data */
OSLThreadData *tdata = kg->osl_tdata;