Cycles Standalone: Support for relative paths and string OSL parameters.

Patch by John Haddon.
Differential Revision: https://developer.blender.org/D418
This commit is contained in:
Thomas Dinges 2014-03-21 17:22:41 +01:00
parent 12ce5ae5be
commit ce5395868f
3 changed files with 12 additions and 1 deletions

@ -406,7 +406,9 @@ static void xml_read_shader_graph(const XMLReadState& state, Shader *shader, pug
/* Source */
xml_read_string(&osl->filepath, node, "src");
osl->filepath = path_join(state.base, osl->filepath);
if(path_is_relative(osl->filepath)) {
osl->filepath = path_join(state.base, osl->filepath);
}
/* Generate inputs/outputs from node sockets
*
@ -763,6 +765,9 @@ static void xml_read_shader_graph(const XMLReadState& state, Shader *shader, pug
case SHADER_SOCKET_NORMAL:
xml_read_float3(&in->value, node, attr.name());
break;
case SHADER_SOCKET_STRING:
xml_read_ustring( &in->value_string, node, attr.name() );
break;
default:
break;
}

@ -111,6 +111,11 @@ string path_escape(const string& path)
return result;
}
bool path_is_relative(const string& path)
{
return to_boost(path).is_relative();
}
bool path_exists(const string& path)
{
return boost::filesystem::exists(to_boost(path));

@ -41,6 +41,7 @@ string path_filename(const string& path);
string path_dirname(const string& path);
string path_join(const string& dir, const string& file);
string path_escape(const string& path);
bool path_is_relative(const string& path);
/* file info */
bool path_exists(const string& path);