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.cpp42
1 files changed, 19 insertions, 23 deletions
diff --git a/intern/cycles/kernel/osl/osl_shader.cpp b/intern/cycles/kernel/osl/osl_shader.cpp
index 69599825bc0..db5ad06d3fc 100644
--- a/intern/cycles/kernel/osl/osl_shader.cpp
+++ b/intern/cycles/kernel/osl/osl_shader.cpp
@@ -49,7 +49,6 @@ void OSLShader::thread_init(KernelGlobals *kg,
/* per thread kernel data init*/
kg->osl = osl_globals;
- kg->osl->services->thread_init(kernel_globals, osl_globals, osl_globals->ts);
OSL::ShadingSystem *ss = kg->osl->ss;
OSLThreadData *tdata = new OSLThreadData();
@@ -129,13 +128,13 @@ static void shaderdata_to_shaderglobals(
tdata->tracedata.init = false;
/* used by renderservices */
+ sd->osl_globals = kg;
sd->osl_path_state = state;
}
/* Surface */
-static void flatten_surface_closure_tree(KernelGlobals *kg,
- ShaderData *sd,
+static void flatten_surface_closure_tree(ShaderData *sd,
int path_flag,
const OSL::ClosureColor *closure,
float3 weight = make_float3(1.0f, 1.0f, 1.0f))
@@ -146,14 +145,13 @@ static void flatten_surface_closure_tree(KernelGlobals *kg,
switch (closure->id) {
case OSL::ClosureColor::MUL: {
OSL::ClosureMul *mul = (OSL::ClosureMul *)closure;
- flatten_surface_closure_tree(
- kg, sd, path_flag, mul->closure, TO_FLOAT3(mul->weight) * weight);
+ flatten_surface_closure_tree(sd, path_flag, mul->closure, TO_FLOAT3(mul->weight) * weight);
break;
}
case OSL::ClosureColor::ADD: {
OSL::ClosureAdd *add = (OSL::ClosureAdd *)closure;
- flatten_surface_closure_tree(kg, sd, path_flag, add->closureA, weight);
- flatten_surface_closure_tree(kg, sd, path_flag, add->closureB, weight);
+ flatten_surface_closure_tree(sd, path_flag, add->closureA, weight);
+ flatten_surface_closure_tree(sd, path_flag, add->closureB, weight);
break;
}
default: {
@@ -164,7 +162,7 @@ static void flatten_surface_closure_tree(KernelGlobals *kg,
#ifdef OSL_SUPPORTS_WEIGHTED_CLOSURE_COMPONENTS
weight = weight * TO_FLOAT3(comp->w);
#endif
- prim->setup(kg, sd, path_flag, weight);
+ prim->setup(sd, path_flag, weight);
}
break;
}
@@ -235,13 +233,12 @@ void OSLShader::eval_surface(KernelGlobals *kg, ShaderData *sd, PathState *state
/* flatten closure tree */
if (globals->Ci)
- flatten_surface_closure_tree(kg, sd, path_flag, globals->Ci);
+ flatten_surface_closure_tree(sd, path_flag, globals->Ci);
}
/* Background */
-static void flatten_background_closure_tree(KernelGlobals *kg,
- ShaderData *sd,
+static void flatten_background_closure_tree(ShaderData *sd,
const OSL::ClosureColor *closure,
float3 weight = make_float3(1.0f, 1.0f, 1.0f))
{
@@ -252,14 +249,14 @@ static void flatten_background_closure_tree(KernelGlobals *kg,
switch (closure->id) {
case OSL::ClosureColor::MUL: {
OSL::ClosureMul *mul = (OSL::ClosureMul *)closure;
- flatten_background_closure_tree(kg, sd, mul->closure, weight * TO_FLOAT3(mul->weight));
+ flatten_background_closure_tree(sd, mul->closure, weight * TO_FLOAT3(mul->weight));
break;
}
case OSL::ClosureColor::ADD: {
OSL::ClosureAdd *add = (OSL::ClosureAdd *)closure;
- flatten_background_closure_tree(kg, sd, add->closureA, weight);
- flatten_background_closure_tree(kg, sd, add->closureB, weight);
+ flatten_background_closure_tree(sd, add->closureA, weight);
+ flatten_background_closure_tree(sd, add->closureB, weight);
break;
}
default: {
@@ -270,7 +267,7 @@ static void flatten_background_closure_tree(KernelGlobals *kg,
#ifdef OSL_SUPPORTS_WEIGHTED_CLOSURE_COMPONENTS
weight = weight * TO_FLOAT3(comp->w);
#endif
- prim->setup(kg, sd, 0, weight);
+ prim->setup(sd, 0, weight);
}
break;
}
@@ -294,13 +291,12 @@ void OSLShader::eval_background(KernelGlobals *kg, ShaderData *sd, PathState *st
/* return background color immediately */
if (globals->Ci)
- flatten_background_closure_tree(kg, sd, globals->Ci);
+ flatten_background_closure_tree(sd, globals->Ci);
}
/* Volume */
-static void flatten_volume_closure_tree(KernelGlobals *kg,
- ShaderData *sd,
+static void flatten_volume_closure_tree(ShaderData *sd,
const OSL::ClosureColor *closure,
float3 weight = make_float3(1.0f, 1.0f, 1.0f))
{
@@ -310,13 +306,13 @@ static void flatten_volume_closure_tree(KernelGlobals *kg,
switch (closure->id) {
case OSL::ClosureColor::MUL: {
OSL::ClosureMul *mul = (OSL::ClosureMul *)closure;
- flatten_volume_closure_tree(kg, sd, mul->closure, TO_FLOAT3(mul->weight) * weight);
+ flatten_volume_closure_tree(sd, mul->closure, TO_FLOAT3(mul->weight) * weight);
break;
}
case OSL::ClosureColor::ADD: {
OSL::ClosureAdd *add = (OSL::ClosureAdd *)closure;
- flatten_volume_closure_tree(kg, sd, add->closureA, weight);
- flatten_volume_closure_tree(kg, sd, add->closureB, weight);
+ flatten_volume_closure_tree(sd, add->closureA, weight);
+ flatten_volume_closure_tree(sd, add->closureB, weight);
break;
}
default: {
@@ -327,7 +323,7 @@ static void flatten_volume_closure_tree(KernelGlobals *kg,
#ifdef OSL_SUPPORTS_WEIGHTED_CLOSURE_COMPONENTS
weight = weight * TO_FLOAT3(comp->w);
#endif
- prim->setup(kg, sd, 0, weight);
+ prim->setup(sd, 0, weight);
}
}
}
@@ -351,7 +347,7 @@ void OSLShader::eval_volume(KernelGlobals *kg, ShaderData *sd, PathState *state,
/* flatten closure tree */
if (globals->Ci)
- flatten_volume_closure_tree(kg, sd, globals->Ci);
+ flatten_volume_closure_tree(sd, globals->Ci);
}
/* Displacement */