Cycles: Remove some ifdefs for OSL < 1.7.1.
That means that we now only support OSL 1.7.1 or newer. Please update libs or re-run install-depsh.sh.
This commit is contained in:
@@ -114,9 +114,6 @@ static ShaderSocketType convert_osl_socket_type(OSL::OSLQuery& query,
|
|||||||
BL::NodeSocket& b_socket)
|
BL::NodeSocket& b_socket)
|
||||||
{
|
{
|
||||||
ShaderSocketType socket_type = convert_socket_type(b_socket);
|
ShaderSocketType socket_type = convert_socket_type(b_socket);
|
||||||
#if OSL_LIBRARY_VERSION_CODE < 10701
|
|
||||||
(void) query;
|
|
||||||
#else
|
|
||||||
if(socket_type == SHADER_SOCKET_VECTOR) {
|
if(socket_type == SHADER_SOCKET_VECTOR) {
|
||||||
/* TODO(sergey): Do we need compatible_name() here? */
|
/* TODO(sergey): Do we need compatible_name() here? */
|
||||||
const OSL::OSLQuery::Parameter *param = query.getparam(b_socket.name());
|
const OSL::OSLQuery::Parameter *param = query.getparam(b_socket.name());
|
||||||
@@ -130,7 +127,7 @@ static ShaderSocketType convert_osl_socket_type(OSL::OSLQuery& query,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
return socket_type;
|
return socket_type;
|
||||||
}
|
}
|
||||||
#endif /* WITH_OSL */
|
#endif /* WITH_OSL */
|
||||||
@@ -561,7 +558,7 @@ static ShaderNode *add_node(Scene *scene,
|
|||||||
* input/output type info needed for proper node construction.
|
* input/output type info needed for proper node construction.
|
||||||
*/
|
*/
|
||||||
OSL::OSLQuery query;
|
OSL::OSLQuery query;
|
||||||
#if OSL_LIBRARY_VERSION_CODE >= 10701
|
|
||||||
if(!bytecode_hash.empty()) {
|
if(!bytecode_hash.empty()) {
|
||||||
query.open_bytecode(b_script_node.bytecode());
|
query.open_bytecode(b_script_node.bytecode());
|
||||||
}
|
}
|
||||||
@@ -569,7 +566,6 @@ static ShaderNode *add_node(Scene *scene,
|
|||||||
!OSLShaderManager::osl_query(query, b_script_node.filepath());
|
!OSLShaderManager::osl_query(query, b_script_node.filepath());
|
||||||
}
|
}
|
||||||
/* TODO(sergey): Add proper query info error parsing. */
|
/* TODO(sergey): Add proper query info error parsing. */
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Generate inputs/outputs from node sockets
|
/* Generate inputs/outputs from node sockets
|
||||||
*
|
*
|
||||||
|
@@ -80,11 +80,6 @@ void name(RendererServices *, int id, void *data) \
|
|||||||
#define TO_COLOR3(v) OSL::Color3(v.x, v.y, v.z)
|
#define TO_COLOR3(v) OSL::Color3(v.x, v.y, v.z)
|
||||||
#define TO_FLOAT3(v) make_float3(v[0], v[1], v[2])
|
#define TO_FLOAT3(v) make_float3(v[0], v[1], v[2])
|
||||||
|
|
||||||
#if OSL_LIBRARY_VERSION_CODE < 10700
|
|
||||||
# undef CLOSURE_STRING_KEYPARAM
|
|
||||||
# define CLOSURE_STRING_KEYPARAM(st, fld, key) { TypeDesc::TypeString, 0, key, 0 }
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Closure */
|
/* Closure */
|
||||||
|
|
||||||
class CClosurePrimitive {
|
class CClosurePrimitive {
|
||||||
@@ -105,9 +100,7 @@ public:
|
|||||||
|
|
||||||
Category category;
|
Category category;
|
||||||
|
|
||||||
#if OSL_LIBRARY_VERSION_CODE >= 10700
|
|
||||||
OSL::ustring label;
|
OSL::ustring label;
|
||||||
#endif
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/* BSDF */
|
/* BSDF */
|
||||||
|
@@ -147,11 +147,7 @@ static void flatten_surface_closure_tree(ShaderData *sd, int path_flag,
|
|||||||
/* OSL gives us a closure tree, we flatten it into arrays per
|
/* OSL gives us a closure tree, we flatten it into arrays per
|
||||||
* closure type, for evaluation, sampling, etc later on. */
|
* closure type, for evaluation, sampling, etc later on. */
|
||||||
|
|
||||||
#if OSL_LIBRARY_VERSION_CODE < 10700
|
|
||||||
switch(closure->type) {
|
|
||||||
#else
|
|
||||||
switch(closure->id) {
|
switch(closure->id) {
|
||||||
#endif
|
|
||||||
case OSL::ClosureColor::MUL: {
|
case OSL::ClosureColor::MUL: {
|
||||||
OSL::ClosureMul *mul = (OSL::ClosureMul *)closure;
|
OSL::ClosureMul *mul = (OSL::ClosureMul *)closure;
|
||||||
flatten_surface_closure_tree(sd, path_flag, mul->closure, TO_FLOAT3(mul->weight) * weight);
|
flatten_surface_closure_tree(sd, path_flag, mul->closure, TO_FLOAT3(mul->weight) * weight);
|
||||||
@@ -355,11 +351,7 @@ static float3 flatten_background_closure_tree(const OSL::ClosureColor *closure)
|
|||||||
* is only one supported closure type at the moment, which has no evaluation
|
* is only one supported closure type at the moment, which has no evaluation
|
||||||
* functions, so we just sum the weights */
|
* functions, so we just sum the weights */
|
||||||
|
|
||||||
#if OSL_LIBRARY_VERSION_CODE < 10700
|
|
||||||
switch(closure->type) {
|
|
||||||
#else
|
|
||||||
switch(closure->id) {
|
switch(closure->id) {
|
||||||
#endif
|
|
||||||
case OSL::ClosureColor::MUL: {
|
case OSL::ClosureColor::MUL: {
|
||||||
OSL::ClosureMul *mul = (OSL::ClosureMul *)closure;
|
OSL::ClosureMul *mul = (OSL::ClosureMul *)closure;
|
||||||
|
|
||||||
@@ -417,11 +409,7 @@ static void flatten_volume_closure_tree(ShaderData *sd,
|
|||||||
/* OSL gives us a closure tree, we flatten it into arrays per
|
/* OSL gives us a closure tree, we flatten it into arrays per
|
||||||
* closure type, for evaluation, sampling, etc later on. */
|
* closure type, for evaluation, sampling, etc later on. */
|
||||||
|
|
||||||
#if OSL_LIBRARY_VERSION_CODE < 10700
|
|
||||||
switch(closure->type) {
|
|
||||||
#else
|
|
||||||
switch(closure->id) {
|
switch(closure->id) {
|
||||||
#endif
|
|
||||||
case OSL::ClosureColor::MUL: {
|
case OSL::ClosureColor::MUL: {
|
||||||
OSL::ClosureMul *mul = (OSL::ClosureMul *)closure;
|
OSL::ClosureMul *mul = (OSL::ClosureMul *)closure;
|
||||||
flatten_volume_closure_tree(sd, mul->closure, TO_FLOAT3(mul->weight) * weight);
|
flatten_volume_closure_tree(sd, mul->closure, TO_FLOAT3(mul->weight) * weight);
|
||||||
|
@@ -4599,28 +4599,6 @@ void OSLScriptNode::compile(SVMCompiler& /*compiler*/)
|
|||||||
|
|
||||||
void OSLScriptNode::compile(OSLCompiler& compiler)
|
void OSLScriptNode::compile(OSLCompiler& compiler)
|
||||||
{
|
{
|
||||||
#if defined(WITH_OSL) && (OSL_LIBRARY_VERSION_CODE < 10701)
|
|
||||||
/* XXX fix for #36790:
|
|
||||||
* point and normal parameters are reflected as generic SOCK_VECTOR sockets
|
|
||||||
* on the node. Socket fixed input values need to be copied explicitly here for
|
|
||||||
* vector sockets, otherwise OSL will reject the value due to mismatching type.
|
|
||||||
*/
|
|
||||||
foreach(ShaderInput *input, this->inputs) {
|
|
||||||
if(!input->link) {
|
|
||||||
/* no need for compatible_name here, OSL parameter names are always unique */
|
|
||||||
string param_name(input->name);
|
|
||||||
switch(input->type) {
|
|
||||||
case SHADER_SOCKET_VECTOR:
|
|
||||||
compiler.parameter_point(param_name.c_str(), input->value);
|
|
||||||
compiler.parameter_normal(param_name.c_str(), input->value);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if(!filepath.empty())
|
if(!filepath.empty())
|
||||||
compiler.add(this, filepath.c_str(), true);
|
compiler.add(this, filepath.c_str(), true);
|
||||||
else
|
else
|
||||||
|
Reference in New Issue
Block a user