[Bf-blender-cvs] [a192fac] master: Fix T41276: OSL bug in getmessage ("trace", "geom:name" , output)
Sergey Sharybin
noreply at git.blender.org
Tue Aug 5 13:54:28 CEST 2014
Commit: a192facd8c5449ffe55b7978fe85a0080703411b
Author: Sergey Sharybin
Date: Tue Aug 5 17:53:00 2014 +0600
Branches: master
https://developer.blender.org/rBa192facd8c5449ffe55b7978fe85a0080703411b
Fix T41276: OSL bug in getmessage ("trace", "geom:name" , output)
===================================================================
M intern/cycles/kernel/osl/osl_services.cpp
M intern/cycles/kernel/osl/osl_services.h
===================================================================
diff --git a/intern/cycles/kernel/osl/osl_services.cpp b/intern/cycles/kernel/osl/osl_services.cpp
index d5d995d..38cb506 100644
--- a/intern/cycles/kernel/osl/osl_services.cpp
+++ b/intern/cycles/kernel/osl/osl_services.cpp
@@ -479,7 +479,7 @@ static bool set_attribute_int(int i, TypeDesc type, bool derivatives, void *val)
static bool set_attribute_string(ustring str, TypeDesc type, bool derivatives, void *val)
{
- if(type.basetype == TypeDesc::INT && type.aggregate == TypeDesc::SCALAR && type.arraylen == 0) {
+ if(type.basetype == TypeDesc::STRING && type.aggregate == TypeDesc::SCALAR && type.arraylen == 0) {
ustring *sval = (ustring *)val;
sval[0] = str;
@@ -758,6 +758,12 @@ bool OSLRenderServices::get_attribute(OSL::ShaderGlobals *sg, bool derivatives,
return false;
ShaderData *sd = (ShaderData *)(sg->renderstate);
+ return get_attribute(sd, derivatives, object_name, type, name, val);
+}
+
+bool OSLRenderServices::get_attribute(ShaderData *sd, bool derivatives, ustring object_name,
+ TypeDesc type, ustring name, void *val)
+{
KernelGlobals *kg = sd->osl_globals;
bool is_curve;
int object;
@@ -1100,7 +1106,7 @@ bool OSLRenderServices::getmessage(OSL::ShaderGlobals *sg, ustring source, ustri
return set_attribute_float(f, type, derivatives, val);
}
- return get_attribute(sg, derivatives, u_empty, type, name, val);
+ return get_attribute(sd, derivatives, u_empty, type, name, val);
}
}
}
diff --git a/intern/cycles/kernel/osl/osl_services.h b/intern/cycles/kernel/osl/osl_services.h
index 024a839..6f928a0 100644
--- a/intern/cycles/kernel/osl/osl_services.h
+++ b/intern/cycles/kernel/osl/osl_services.h
@@ -66,6 +66,8 @@ public:
int index, void *val);
bool get_attribute(OSL::ShaderGlobals *sg, bool derivatives, ustring object,
TypeDesc type, ustring name, void *val);
+ bool get_attribute(ShaderData *sd, bool derivatives, ustring object_name,
+ TypeDesc type, ustring name, void *val);
bool get_userdata(bool derivatives, ustring name, TypeDesc type,
OSL::ShaderGlobals *sg, void *val);
More information about the Bf-blender-cvs
mailing list