diff options
Diffstat (limited to 'intern/cycles/blender/blender_shader.cpp')
-rw-r--r-- | intern/cycles/blender/blender_shader.cpp | 28 |
1 files changed, 10 insertions, 18 deletions
diff --git a/intern/cycles/blender/blender_shader.cpp b/intern/cycles/blender/blender_shader.cpp index e6ec8b22d7a..a08f767f964 100644 --- a/intern/cycles/blender/blender_shader.cpp +++ b/intern/cycles/blender/blender_shader.cpp @@ -651,6 +651,9 @@ static ShaderNode *add_node(Scene *scene, image->builtin_data = NULL; } + PointerRNA colorspace_ptr = b_image.colorspace_settings().ptr; + image->colorspace = get_enum_identifier(colorspace_ptr, "name"); + image->animated = b_image_node.image_user().use_auto_refresh(); image->use_alpha = b_image.use_alpha(); @@ -662,18 +665,11 @@ static ShaderNode *add_node(Scene *scene, image->builtin_data, get_image_interpolation(b_image_node), get_image_extension(b_image_node), - image->use_alpha); + image->use_alpha, + image->colorspace); } #endif } - switch (b_image_node.color_space()) { - case BL::ShaderNodeTexImage::color_space_NONE: - image->colorspace = u_colorspace_raw; - break; - case BL::ShaderNodeTexImage::color_space_COLOR: - image->colorspace = u_colorspace_auto; - break; - } image->projection = (NodeImageProjection)b_image_node.projection(); image->interpolation = get_image_interpolation(b_image_node); image->extension = get_image_extension(b_image_node); @@ -703,6 +699,9 @@ static ShaderNode *add_node(Scene *scene, env->builtin_data = NULL; } + PointerRNA colorspace_ptr = b_image.colorspace_settings().ptr; + env->colorspace = get_enum_identifier(colorspace_ptr, "name"); + env->animated = b_env_node.image_user().use_auto_refresh(); env->use_alpha = b_image.use_alpha(); @@ -714,18 +713,11 @@ static ShaderNode *add_node(Scene *scene, env->builtin_data, get_image_interpolation(b_env_node), EXTENSION_REPEAT, - env->use_alpha); + env->use_alpha, + env->colorspace); } #endif } - switch (b_env_node.color_space()) { - case BL::ShaderNodeTexEnvironment::color_space_NONE: - env->colorspace = u_colorspace_raw; - break; - case BL::ShaderNodeTexEnvironment::color_space_COLOR: - env->colorspace = u_colorspace_auto; - break; - } env->interpolation = get_image_interpolation(b_env_node); env->projection = (NodeEnvironmentProjection)b_env_node.projection(); BL::TexMapping b_texture_mapping(b_env_node.texture_mapping()); |