Commit: edce44d6931586fad3cee019db762d54e73a886a
Author: Lukas Stockner
Date:   Sun May 27 17:14:01 2018 +0200
Branches: master
https://developer.blender.org/rBedce44d6931586fad3cee019db762d54e73a886a

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;

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to