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:
authorThomas Dinges <blender@dingto.org>2012-09-01 00:31:21 +0400
committerThomas Dinges <blender@dingto.org>2012-09-01 00:31:21 +0400
commitfda711a85185dc8ff5c399db038853c75c411e51 (patch)
treef10575c4c132d89c2b97f80711b35375343f45a1 /intern/cycles/kernel/osl/osl_shader.cpp
parent7ac0dd2953a3ceda968d5abf66fea6eb37372d45 (diff)
Cycles / OSLGlobals:
* Fixes for changes in the Open Shading Langauge API from version 0.6.0: https://github.com/imageworks/OpenShadingLanguage/commit/11ce51418b45e975ace4d919a4bdd8c2001ba300 * Removed the need for ShadingSystemImpl.
Diffstat (limited to 'intern/cycles/kernel/osl/osl_shader.cpp')
-rw-r--r--intern/cycles/kernel/osl/osl_shader.cpp41
1 files changed, 22 insertions, 19 deletions
diff --git a/intern/cycles/kernel/osl/osl_shader.cpp b/intern/cycles/kernel/osl/osl_shader.cpp
index 80cbbcae234..bf615f673cf 100644
--- a/intern/cycles/kernel/osl/osl_shader.cpp
+++ b/intern/cycles/kernel/osl/osl_shader.cpp
@@ -36,25 +36,27 @@ tls_ptr(OSLGlobals::ThreadData, OSLGlobals::thread_data);
void OSLShader::thread_init(KernelGlobals *kg)
{
- OSL::pvt::ShadingSystemImpl *ssi = (OSL::pvt::ShadingSystemImpl *)kg->osl.ss;
+ OSL::ShadingSystem *ss = kg->osl.ss;
OSLGlobals::ThreadData *tdata = new OSLGlobals::ThreadData();
memset(&tdata->globals, 0, sizeof(OSL::ShaderGlobals));
- tdata->thread_info = ssi->create_thread_info();
+ tdata->thread_info = ss->create_thread_info();
tls_set(kg->osl.thread_data, tdata);
- ((OSLRenderServices *)ssi->renderer())->thread_init(kg);
+ //((OSLRenderServices *)ssi->renderer())->thread_init(kg);
+ /* XXX not sure here - dingto */
+ thread_init(kg);
}
void OSLShader::thread_free(KernelGlobals *kg)
{
- OSL::pvt::ShadingSystemImpl *ssi = (OSL::pvt::ShadingSystemImpl *)kg->osl.ss;
+ OSL::ShadingSystem *ss = kg->osl.ss;
OSLGlobals::ThreadData *tdata = tls_get(OSLGlobals::ThreadData, kg->osl.thread_data);
- ssi->destroy_thread_info(tdata->thread_info);
+ ss->destroy_thread_info(tdata->thread_info);
delete tdata;
}
@@ -201,10 +203,10 @@ static void flatten_surface_closure_tree(ShaderData *sd, bool no_glossy,
void OSLShader::eval_surface(KernelGlobals *kg, ShaderData *sd, float randb, int path_flag)
{
/* gather pointers */
- OSL::pvt::ShadingSystemImpl *ssi = (OSL::pvt::ShadingSystemImpl *)kg->osl.ss;
+ OSL::ShadingSystem *ss = kg->osl.ss;
OSLGlobals::ThreadData *tdata = tls_get(OSLGlobals::ThreadData, kg->osl.thread_data);
OSL::ShaderGlobals *globals = &tdata->globals;
- OSL::pvt::ShadingContext *ctx = ssi->get_context(tdata->thread_info);
+ OSL::ShadingContext *ctx = ss->get_context(tdata->thread_info);
/* setup shader globals from shader data */
sd->osl_ctx = ctx;
@@ -214,7 +216,7 @@ void OSLShader::eval_surface(KernelGlobals *kg, ShaderData *sd, float randb, int
int shader = sd->shader & SHADER_MASK;
if (kg->osl.surface_state[shader])
- ctx->execute(OSL::pvt::ShadUseSurface, *(kg->osl.surface_state[shader]), *globals);
+ ss->execute(*ctx, *(kg->osl.surface_state[shader]), *globals);
/* flatten closure tree */
sd->num_closure = 0;
@@ -259,10 +261,10 @@ static float3 flatten_background_closure_tree(const OSL::ClosureColor *closure)
float3 OSLShader::eval_background(KernelGlobals *kg, ShaderData *sd, int path_flag)
{
/* gather pointers */
- OSL::pvt::ShadingSystemImpl *ssi = (OSL::pvt::ShadingSystemImpl *)kg->osl.ss;
+ OSL::ShadingSystem *ss = kg->osl.ss;
OSLGlobals::ThreadData *tdata = tls_get(OSLGlobals::ThreadData, kg->osl.thread_data);
OSL::ShaderGlobals *globals = &tdata->globals;
- OSL::pvt::ShadingContext *ctx = ssi->get_context(tdata->thread_info);
+ OSL::ShadingContext *ctx = ss->get_context(tdata->thread_info);
/* setup shader globals from shader data */
sd->osl_ctx = ctx;
@@ -270,7 +272,7 @@ float3 OSLShader::eval_background(KernelGlobals *kg, ShaderData *sd, int path_fl
/* execute shader for this point */
if (kg->osl.background_state)
- ctx->execute(OSL::pvt::ShadUseSurface, *kg->osl.background_state, *globals);
+ ss->execute(*ctx, *(kg->osl.background_state), *globals);
/* return background color immediately */
if (globals->Ci)
@@ -336,10 +338,10 @@ static void flatten_volume_closure_tree(ShaderData *sd,
void OSLShader::eval_volume(KernelGlobals *kg, ShaderData *sd, float randb, int path_flag)
{
/* gather pointers */
- OSL::pvt::ShadingSystemImpl *ssi = (OSL::pvt::ShadingSystemImpl *)kg->osl.ss;
+ OSL::ShadingSystem *ss = kg->osl.ss;
OSLGlobals::ThreadData *tdata = tls_get(OSLGlobals::ThreadData, kg->osl.thread_data);
OSL::ShaderGlobals *globals = &tdata->globals;
- OSL::pvt::ShadingContext *ctx = ssi->get_context(tdata->thread_info);
+ OSL::ShadingContext *ctx = ss->get_context(tdata->thread_info);
/* setup shader globals from shader data */
sd->osl_ctx = ctx;
@@ -349,7 +351,7 @@ void OSLShader::eval_volume(KernelGlobals *kg, ShaderData *sd, float randb, int
int shader = sd->shader & SHADER_MASK;
if (kg->osl.volume_state[shader])
- ctx->execute(OSL::pvt::ShadUseSurface, *(kg->osl.volume_state[shader]), *globals);
+ ss->execute(*ctx, *(kg->osl.volume_state[shader]), *globals);
if (globals->Ci)
flatten_volume_closure_tree(sd, globals->Ci);
@@ -360,10 +362,10 @@ void OSLShader::eval_volume(KernelGlobals *kg, ShaderData *sd, float randb, int
void OSLShader::eval_displacement(KernelGlobals *kg, ShaderData *sd)
{
/* gather pointers */
- OSL::pvt::ShadingSystemImpl *ssi = (OSL::pvt::ShadingSystemImpl *)kg->osl.ss;
+ OSL::ShadingSystem *ss = kg->osl.ss;
OSLGlobals::ThreadData *tdata = tls_get(OSLGlobals::ThreadData, kg->osl.thread_data);
OSL::ShaderGlobals *globals = &tdata->globals;
- OSL::pvt::ShadingContext *ctx = ssi->get_context(tdata->thread_info);
+ OSL::ShadingContext *ctx = ss->get_context(tdata->thread_info);
/* setup shader globals from shader data */
sd->osl_ctx = ctx;
@@ -373,7 +375,7 @@ void OSLShader::eval_displacement(KernelGlobals *kg, ShaderData *sd)
int shader = sd->shader & SHADER_MASK;
if (kg->osl.displacement_state[shader])
- ctx->execute(OSL::pvt::ShadUseSurface, *(kg->osl.displacement_state[shader]), *globals);
+ ss->execute(*ctx, *(kg->osl.displacement_state[shader]), *globals);
/* get back position */
sd->P = TO_FLOAT3(globals->P);
@@ -381,10 +383,11 @@ void OSLShader::eval_displacement(KernelGlobals *kg, ShaderData *sd)
void OSLShader::release(KernelGlobals *kg, const ShaderData *sd)
{
- OSL::pvt::ShadingSystemImpl *ssi = (OSL::pvt::ShadingSystemImpl *)kg->osl.ss;
+ OSL::ShadingSystem *ss = kg->osl.ss;
OSLGlobals::ThreadData *tdata = tls_get(OSLGlobals::ThreadData, kg->osl.thread_data);
+ OSL::ShadingContext *ctx = ss->get_context(tdata->thread_info);
- ssi->release_context((OSL::pvt::ShadingContext *)sd->osl_ctx, tdata->thread_info);
+ ss->release_context(ctx);
}
/* BSDF Closure */