[Bf-blender-cvs] [88fa8610ef4] gsoc-2018-many-light-sampling: Cycles: Fix problems in the IES loader when rendering with no file selected
Lukas Stockner
noreply at git.blender.org
Fri Jun 1 16:18:00 CEST 2018
Commit: 88fa8610ef44e7ef8999e2f941821fd598dd4e90
Author: Lukas Stockner
Date: Sun May 27 17:14:01 2018 +0200
Branches: gsoc-2018-many-light-sampling
https://developer.blender.org/rB88fa8610ef44e7ef8999e2f941821fd598dd4e90
Cycles: Fix problems in the IES loader when rendering with no file selected
===================================================================
M intern/cycles/blender/blender_shader.cpp
M intern/cycles/blender/blender_util.h
M intern/cycles/render/light.cpp
M intern/cycles/util/util_ies.cpp
===================================================================
diff --git a/intern/cycles/blender/blender_shader.cpp b/intern/cycles/blender/blender_shader.cpp
index c6144cef1bf..9896dd1d94f 100644
--- a/intern/cycles/blender/blender_shader.cpp
+++ b/intern/cycles/blender/blender_shader.cpp
@@ -827,6 +827,9 @@ static ShaderNode *add_node(Scene *scene,
break;
case BL::ShaderNodeTexIES::mode_INTERNAL:
ies->ies = get_text_datablock_content(b_ies_node.ies().ptr);
+ if(ies->ies.empty()) {
+ ies->ies = "\n";
+ }
break;
}
node = ies;
diff --git a/intern/cycles/blender/blender_util.h b/intern/cycles/blender/blender_util.h
index 87d6c7eba8a..85bff8f8323 100644
--- a/intern/cycles/blender/blender_util.h
+++ b/intern/cycles/blender/blender_util.h
@@ -468,7 +468,7 @@ static inline string blender_absolute_path(BL::BlendData& b_data,
return path;
}
-static inline string get_text_datablock_content(const PointerRNA&& ptr)
+static inline string get_text_datablock_content(const PointerRNA& ptr)
{
if(ptr.data == NULL) {
return "";
diff --git a/intern/cycles/render/light.cpp b/intern/cycles/render/light.cpp
index f0824ef4319..5a77094c0c1 100644
--- a/intern/cycles/render/light.cpp
+++ b/intern/cycles/render/light.cpp
@@ -891,8 +891,10 @@ void LightManager::tag_update(Scene * /*scene*/)
int LightManager::add_ies_from_file(ustring filename)
{
string content;
- /* If the file can't be opened, call with an empty string */
- path_read_text(filename.c_str(), content);
+ /* If the file can't be opened, call with an empty line */
+ if(filename.empty() || !path_read_text(filename.c_str(), content)) {
+ content == "\n";
+ }
return add_ies(ustring(content));
}
diff --git a/intern/cycles/util/util_ies.cpp b/intern/cycles/util/util_ies.cpp
index 4824c886609..e068957325b 100644
--- a/intern/cycles/util/util_ies.cpp
+++ b/intern/cycles/util/util_ies.cpp
@@ -109,6 +109,10 @@ public:
bool IESFile::parse(ustring ies)
{
+ if(ies.empty()) {
+ return false;
+ }
+
IESTextParser parser(ies);
if(parser.eof()) {
return false;
More information about the Bf-blender-cvs
mailing list