diff options
author | Sybren A. Stüvel <sybren@stuvel.eu> | 2017-02-08 15:10:16 +0300 |
---|---|---|
committer | Sybren A. Stüvel <sybren@stuvel.eu> | 2017-02-08 15:10:16 +0300 |
commit | d4913af84660318047e3404f9766014cd78864ab (patch) | |
tree | 216516057dc8df5177e4f179392de5a79811ba3f /intern | |
parent | c973e8d2da5cf3f615256269128a07390f8c06a9 (diff) | |
parent | 8cda364d6f2e6e8da454034f19fb959739045813 (diff) |
Merge branch 'master' into blender2.8
# Conflicts:
# source/blender/blenloader/intern/writefile.c
Diffstat (limited to 'intern')
-rw-r--r-- | intern/CMakeLists.txt | 2 | ||||
-rw-r--r-- | intern/cycles/kernel/svm/svm_math_util.h | 53 | ||||
-rw-r--r-- | intern/cycles/test/render_graph_finalize_test.cpp | 6 | ||||
-rw-r--r-- | intern/cycles/test/util_aligned_malloc_test.cpp | 2 | ||||
-rw-r--r-- | intern/cycles/test/util_path_test.cpp | 100 | ||||
-rw-r--r-- | intern/cycles/test/util_string_test.cpp | 64 | ||||
-rw-r--r-- | intern/utfconv/utfconv.h | 2 |
7 files changed, 117 insertions, 112 deletions
diff --git a/intern/CMakeLists.txt b/intern/CMakeLists.txt index 9a5476772ab..dd9889c81ba 100644 --- a/intern/CMakeLists.txt +++ b/intern/CMakeLists.txt @@ -62,7 +62,7 @@ if(WITH_IK_ITASC) add_subdirectory(itasc) endif() -if(WITH_IK_SOLVER OR WITH_GAMEENGINE OR WITH_MOD_BOOLEAN) +if(WITH_GAMEENGINE) add_subdirectory(moto) endif() diff --git a/intern/cycles/kernel/svm/svm_math_util.h b/intern/cycles/kernel/svm/svm_math_util.h index 01547b60014..a7f15de7325 100644 --- a/intern/cycles/kernel/svm/svm_math_util.h +++ b/intern/cycles/kernel/svm/svm_math_util.h @@ -134,32 +134,37 @@ ccl_device float3 svm_math_blackbody_color(float t) { { 6.72595954e-13f, -2.73059993e-08f, 4.24068546e-04f, -7.52204323e-01f }, }; - if(t >= 12000.0f) + int i; + if(t >= 12000.0f) { return make_float3(0.826270103f, 0.994478524f, 1.56626022f); + } + else if(t >= 6365.0f) { + i = 5; + } + else if(t >= 3315.0f) { + i = 4; + } + else if(t >= 1902.0f) { + i = 3; + } + else if(t >= 1449.0f) { + i = 2; + } + else if(t >= 1167.0f) { + i = 1; + } + else if(t >= 965.0f) { + i = 0; + } + else { + /* For 800 <= t < 965 color does not change in OSL implementation, so keep color the same */ + return make_float3(4.70366907f, 0.0f, 0.0f); + } - /* Define a macro to reduce stack usage for nvcc */ -#define MAKE_BB_RGB(i) make_float3(\ - rc[i][0] / t + rc[i][1] * t + rc[i][2],\ - gc[i][0] / t + gc[i][1] * t + gc[i][2],\ - ((bc[i][0] * t + bc[i][1]) * t + bc[i][2]) * t + bc[i][3]) - - if(t >= 6365.0f) - return MAKE_BB_RGB(5); - if(t >= 3315.0f) - return MAKE_BB_RGB(4); - if(t >= 1902.0f) - return MAKE_BB_RGB(3); - if(t >= 1449.0f) - return MAKE_BB_RGB(2); - if(t >= 1167.0f) - return MAKE_BB_RGB(1); - if(t >= 965.0f) - return MAKE_BB_RGB(0); - -#undef MAKE_BB_RGB - - /* For 800 <= t < 965 color does not change in OSL implementation, so keep color the same */ - return make_float3(4.70366907f, 0.0f, 0.0f); + const float t_inv = 1.0f / t; + return make_float3(rc[i][0] * t_inv + rc[i][1] * t + rc[i][2], + gc[i][0] * t_inv + gc[i][1] * t + gc[i][2], + ((bc[i][0] * t + bc[i][1]) * t + bc[i][2]) * t + bc[i][3]); } ccl_device_inline float3 svm_math_gamma_color(float3 color, float gamma) diff --git a/intern/cycles/test/render_graph_finalize_test.cpp b/intern/cycles/test/render_graph_finalize_test.cpp index 32b4c7265ee..3fc086cbc0c 100644 --- a/intern/cycles/test/render_graph_finalize_test.cpp +++ b/intern/cycles/test/render_graph_finalize_test.cpp @@ -92,7 +92,7 @@ public: template<typename T> ShaderGraphBuilder& add_node(const T& node) { - EXPECT_EQ(NULL, find_node(node.name())); + EXPECT_EQ(find_node(node.name()), (void*)NULL); graph_->add(node.node()); node_map_[node.name()] = node.node(); return *this; @@ -104,8 +104,8 @@ public: vector<string> tokens_from, tokens_to; string_split(tokens_from, from, "::"); string_split(tokens_to, to, "::"); - EXPECT_EQ(2, tokens_from.size()); - EXPECT_EQ(2, tokens_to.size()); + EXPECT_EQ(tokens_from.size(), 2); + EXPECT_EQ(tokens_to.size(), 2); ShaderNode *node_from = find_node(tokens_from[0]), *node_to = find_node(tokens_to[0]); EXPECT_NE((void*)NULL, node_from); diff --git a/intern/cycles/test/util_aligned_malloc_test.cpp b/intern/cycles/test/util_aligned_malloc_test.cpp index 479070f0513..9fb3aad0c3f 100644 --- a/intern/cycles/test/util_aligned_malloc_test.cpp +++ b/intern/cycles/test/util_aligned_malloc_test.cpp @@ -18,7 +18,7 @@ #include "util/util_aligned_malloc.h" -#define CHECK_ALIGNMENT(ptr, align) EXPECT_EQ(0, (size_t)ptr % align) +#define CHECK_ALIGNMENT(ptr, align) EXPECT_EQ((size_t)ptr % align, 0) CCL_NAMESPACE_BEGIN diff --git a/intern/cycles/test/util_path_test.cpp b/intern/cycles/test/util_path_test.cpp index 92be1dd4cbe..c2f400c105d 100644 --- a/intern/cycles/test/util_path_test.cpp +++ b/intern/cycles/test/util_path_test.cpp @@ -26,63 +26,63 @@ CCL_NAMESPACE_BEGIN TEST(util_path_filename, simple_unix) { string str = path_filename("/tmp/foo.txt"); - EXPECT_EQ("foo.txt", str); + EXPECT_EQ(str, "foo.txt"); } TEST(util_path_filename, root_unix) { string str = path_filename("/"); - EXPECT_EQ("/", str); + EXPECT_EQ(str, "/"); } TEST(util_path_filename, last_slash_unix) { string str = path_filename("/tmp/foo.txt/"); - EXPECT_EQ(".", str); + EXPECT_EQ(str, "."); } TEST(util_path_filename, alternate_slash_unix) { string str = path_filename("/tmp\\foo.txt"); - EXPECT_EQ("tmp\\foo.txt", str); + EXPECT_EQ(str, "tmp\\foo.txt"); } #endif /* !_WIN32 */ TEST(util_path_filename, file_only) { string str = path_filename("foo.txt"); - EXPECT_EQ("foo.txt", str); + EXPECT_EQ(str, "foo.txt"); } TEST(util_path_filename, empty) { string str = path_filename(""); - EXPECT_EQ("", str); + EXPECT_EQ(str, ""); } #ifdef _WIN32 TEST(util_path_filename, simple_windows) { string str = path_filename("C:\\tmp\\foo.txt"); - EXPECT_EQ("foo.txt", str); + EXPECT_EQ(str, "foo.txt"); } TEST(util_path_filename, root_windows) { string str = path_filename("C:\\"); - EXPECT_EQ("\\", str); + EXPECT_EQ(str, "\\"); } TEST(util_path_filename, last_slash_windows) { string str = path_filename("C:\\tmp\\foo.txt\\"); - EXPECT_EQ(".", str); + EXPECT_EQ(str, "."); } TEST(util_path_filename, alternate_slash_windows) { string str = path_filename("C:\\tmp/foo.txt"); - EXPECT_EQ("foo.txt", str); + EXPECT_EQ(str, "foo.txt"); } #endif /* _WIN32 */ @@ -92,63 +92,63 @@ TEST(util_path_filename, alternate_slash_windows) TEST(util_path_dirname, simple_unix) { string str = path_dirname("/tmp/foo.txt"); - EXPECT_EQ("/tmp", str); + EXPECT_EQ(str, "/tmp"); } TEST(util_path_dirname, root_unix) { string str = path_dirname("/"); - EXPECT_EQ("", str); + EXPECT_EQ(str, ""); } TEST(util_path_dirname, last_slash_unix) { string str = path_dirname("/tmp/foo.txt/"); - EXPECT_EQ("/tmp/foo.txt", str); + EXPECT_EQ(str, "/tmp/foo.txt"); } TEST(util_path_dirname, alternate_slash_unix) { string str = path_dirname("/tmp\\foo.txt"); - EXPECT_EQ("/", str); + EXPECT_EQ(str, "/"); } #endif /* !_WIN32 */ TEST(util_path_dirname, file_only) { string str = path_dirname("foo.txt"); - EXPECT_EQ("", str); + EXPECT_EQ(str, ""); } TEST(util_path_dirname, empty) { string str = path_dirname(""); - EXPECT_EQ("", str); + EXPECT_EQ(str, ""); } #ifdef _WIN32 TEST(util_path_dirname, simple_windows) { string str = path_dirname("C:\\tmp\\foo.txt"); - EXPECT_EQ("C:\\tmp", str); + EXPECT_EQ(str, "C:\\tmp"); } TEST(util_path_dirname, root_windows) { string str = path_dirname("C:\\"); - EXPECT_EQ("C:", str); + EXPECT_EQ(str, "C:"); } TEST(util_path_dirname, last_slash_windows) { string str = path_dirname("C:\\tmp\\foo.txt\\"); - EXPECT_EQ("C:\\tmp\\foo.txt", str); + EXPECT_EQ(str, "C:\\tmp\\foo.txt"); } TEST(util_path_dirname, alternate_slash_windows) { string str = path_dirname("C:\\tmp/foo.txt"); - EXPECT_EQ("C:\\tmp", str); + EXPECT_EQ(str, "C:\\tmp"); } #endif /* _WIN32 */ @@ -157,152 +157,152 @@ TEST(util_path_dirname, alternate_slash_windows) TEST(util_path_join, empty_both) { string str = path_join("", ""); - EXPECT_EQ("", str); + EXPECT_EQ(str, ""); } TEST(util_path_join, empty_directory) { string str = path_join("", "foo.txt"); - EXPECT_EQ("foo.txt", str); + EXPECT_EQ(str, "foo.txt"); } TEST(util_path_join, empty_filename) { string str = path_join("foo", ""); - EXPECT_EQ("foo", str); + EXPECT_EQ(str, "foo"); } #ifndef _WIN32 TEST(util_path_join, simple_unix) { string str = path_join("foo", "bar"); - EXPECT_EQ("foo/bar", str); + EXPECT_EQ(str, "foo/bar"); } TEST(util_path_join, directory_slash_unix) { string str = path_join("foo/", "bar"); - EXPECT_EQ("foo/bar", str); + EXPECT_EQ(str, "foo/bar"); } TEST(util_path_join, filename_slash_unix) { string str = path_join("foo", "/bar"); - EXPECT_EQ("foo/bar", str); + EXPECT_EQ(str, "foo/bar"); } TEST(util_path_join, both_slash_unix) { string str = path_join("foo/", "/bar"); - EXPECT_EQ("foo//bar", str); + EXPECT_EQ(str, "foo//bar"); } TEST(util_path_join, directory_alternate_slash_unix) { string str = path_join("foo\\", "bar"); - EXPECT_EQ("foo\\/bar", str); + EXPECT_EQ(str, "foo\\/bar"); } TEST(util_path_join, filename_alternate_slash_unix) { string str = path_join("foo", "\\bar"); - EXPECT_EQ("foo/\\bar", str); + EXPECT_EQ(str, "foo/\\bar"); } TEST(util_path_join, both_alternate_slash_unix) { string str = path_join("foo", "\\bar"); - EXPECT_EQ("foo/\\bar", str); + EXPECT_EQ(str, "foo/\\bar"); } TEST(util_path_join, empty_dir_filename_slash_unix) { string str = path_join("", "/foo.txt"); - EXPECT_EQ("/foo.txt", str); + EXPECT_EQ(str, "/foo.txt"); } TEST(util_path_join, empty_dir_filename_alternate_slash_unix) { string str = path_join("", "\\foo.txt"); - EXPECT_EQ("\\foo.txt", str); + EXPECT_EQ(str, "\\foo.txt"); } TEST(util_path_join, empty_filename_dir_slash_unix) { string str = path_join("foo/", ""); - EXPECT_EQ("foo/", str); + EXPECT_EQ(str, "foo/"); } TEST(util_path_join, empty_filename_dir_alternate_slash_unix) { string str = path_join("foo\\", ""); - EXPECT_EQ("foo\\", str); + EXPECT_EQ(str, "foo\\"); } #else /* !_WIN32 */ TEST(util_path_join, simple_windows) { string str = path_join("foo", "bar"); - EXPECT_EQ("foo\\bar", str); + EXPECT_EQ(str, "foo\\bar"); } TEST(util_path_join, directory_slash_windows) { string str = path_join("foo\\", "bar"); - EXPECT_EQ("foo\\bar", str); + EXPECT_EQ(str, "foo\\bar"); } TEST(util_path_join, filename_slash_windows) { string str = path_join("foo", "\\bar"); - EXPECT_EQ("foo\\bar", str); + EXPECT_EQ(str, "foo\\bar"); } TEST(util_path_join, both_slash_windows) { string str = path_join("foo\\", "\\bar"); - EXPECT_EQ("foo\\\\bar", str); + EXPECT_EQ(str, "foo\\\\bar"); } TEST(util_path_join, directory_alternate_slash_windows) { string str = path_join("foo/", "bar"); - EXPECT_EQ("foo/bar", str); + EXPECT_EQ(str, "foo/bar"); } TEST(util_path_join, filename_alternate_slash_windows) { string str = path_join("foo", "/bar"); - EXPECT_EQ("foo/bar", str); + EXPECT_EQ(str, "foo/bar"); } TEST(util_path_join, both_alternate_slash_windows) { string str = path_join("foo/", "/bar"); - EXPECT_EQ("foo//bar", str); + EXPECT_EQ(str, "foo//bar"); } TEST(util_path_join, empty_dir_filename_slash_windows) { string str = path_join("", "\\foo.txt"); - EXPECT_EQ("\\foo.txt", str); + EXPECT_EQ(str, "\\foo.txt"); } TEST(util_path_join, empty_dir_filename_alternate_slash_windows) { string str = path_join("", "/foo.txt"); - EXPECT_EQ("/foo.txt", str); + EXPECT_EQ(str, "/foo.txt"); } TEST(util_path_join, empty_filename_dir_slash_windows) { string str = path_join("foo\\", ""); - EXPECT_EQ("foo\\", str); + EXPECT_EQ(str, "foo\\"); } TEST(util_path_join, empty_filename_dir_alternate_slash_windows) { string str = path_join("foo/", ""); - EXPECT_EQ("foo/", str); + EXPECT_EQ(str, "foo/"); } #endif /* !_WIN32 */ @@ -311,31 +311,31 @@ TEST(util_path_join, empty_filename_dir_alternate_slash_windows) TEST(util_path_escape, no_escape_chars) { string str = path_escape("/tmp/foo/bar"); - EXPECT_EQ("/tmp/foo/bar", str); + EXPECT_EQ(str, "/tmp/foo/bar"); } TEST(util_path_escape, simple) { string str = path_escape("/tmp/foo bar"); - EXPECT_EQ("/tmp/foo\\ bar", str); + EXPECT_EQ(str, "/tmp/foo\\ bar"); } TEST(util_path_escape, simple_end) { string str = path_escape("/tmp/foo/bar "); - EXPECT_EQ("/tmp/foo/bar\\ ", str); + EXPECT_EQ(str, "/tmp/foo/bar\\ "); } TEST(util_path_escape, multiple) { string str = path_escape("/tmp/foo bar"); - EXPECT_EQ("/tmp/foo\\ \\ bar", str); + EXPECT_EQ(str, "/tmp/foo\\ \\ bar"); } TEST(util_path_escape, simple_multiple_end) { string str = path_escape("/tmp/foo/bar "); - EXPECT_EQ("/tmp/foo/bar\\ \\ ", str); + EXPECT_EQ(str, "/tmp/foo/bar\\ \\ "); } /* ******** Tests for path_is_relative() ******** */ diff --git a/intern/cycles/test/util_string_test.cpp b/intern/cycles/test/util_string_test.cpp index e502a35704b..22ec8e0ee8e 100644 --- a/intern/cycles/test/util_string_test.cpp +++ b/intern/cycles/test/util_string_test.cpp @@ -25,25 +25,25 @@ CCL_NAMESPACE_BEGIN TEST(util_string_printf, no_format) { string str = string_printf("foo bar"); - EXPECT_EQ(str, "foo bar"); + EXPECT_EQ("foo bar", str); } TEST(util_string_printf, int_number) { string str = string_printf("foo %d bar", 314); - EXPECT_EQ(str, "foo 314 bar"); + EXPECT_EQ("foo 314 bar", str); } TEST(util_string_printf, float_number_default_precision) { string str = string_printf("foo %f bar", 3.1415); - EXPECT_EQ(str, "foo 3.141500 bar"); + EXPECT_EQ("foo 3.141500 bar", str); } TEST(util_string_printf, float_number_custom_precision) { string str = string_printf("foo %.1f bar", 3.1415); - EXPECT_EQ(str, "foo 3.1 bar"); + EXPECT_EQ("foo 3.1 bar", str); } /* ******** Tests for string_printf() ******** */ @@ -78,44 +78,44 @@ TEST(util_string_split, empty) { vector<string> tokens; string_split(tokens, ""); - EXPECT_EQ(0, tokens.size()); + EXPECT_EQ(tokens.size(), 0); } TEST(util_string_split, only_spaces) { vector<string> tokens; string_split(tokens, " \t\t \t"); - EXPECT_EQ(0, tokens.size()); + EXPECT_EQ(tokens.size(), 0); } TEST(util_string_split, single) { vector<string> tokens; string_split(tokens, "foo"); - EXPECT_EQ(1, tokens.size()); - EXPECT_EQ("foo", tokens[0]); + EXPECT_EQ(tokens.size(), 1); + EXPECT_EQ(tokens[0], "foo"); } TEST(util_string_split, simple) { vector<string> tokens; string_split(tokens, "foo a bar b"); - EXPECT_EQ(4, tokens.size()); - EXPECT_EQ("foo", tokens[0]); - EXPECT_EQ("a", tokens[1]); - EXPECT_EQ("bar", tokens[2]); - EXPECT_EQ("b", tokens[3]); + EXPECT_EQ(tokens.size(), 4); + EXPECT_EQ(tokens[0], "foo"); + EXPECT_EQ(tokens[1], "a"); + EXPECT_EQ(tokens[2], "bar"); + EXPECT_EQ(tokens[3], "b"); } TEST(util_string_split, multiple_spaces) { vector<string> tokens; string_split(tokens, " \t foo \ta bar b\t "); - EXPECT_EQ(4, tokens.size()); - EXPECT_EQ("foo", tokens[0]); - EXPECT_EQ("a", tokens[1]); - EXPECT_EQ("bar", tokens[2]); - EXPECT_EQ("b", tokens[3]); + EXPECT_EQ(tokens.size(), 4); + EXPECT_EQ(tokens[0], "foo"); + EXPECT_EQ(tokens[1], "a"); + EXPECT_EQ(tokens[2], "bar"); + EXPECT_EQ(tokens[3], "b"); } /* ******** Tests for string_replace() ******** */ @@ -124,35 +124,35 @@ TEST(util_string_replace, empty_haystack_and_other) { string str = ""; string_replace(str, "x", ""); - EXPECT_EQ("", str); + EXPECT_EQ(str, ""); } TEST(util_string_replace, empty_haystack) { string str = ""; string_replace(str, "x", "y"); - EXPECT_EQ("", str); + EXPECT_EQ(str, ""); } TEST(util_string_replace, empty_other) { string str = "x"; string_replace(str, "x", ""); - EXPECT_EQ("", str); + EXPECT_EQ(str, ""); } TEST(util_string_replace, long_haystack_empty_other) { string str = "a x b xxc"; string_replace(str, "x", ""); - EXPECT_EQ("a b c", str); + EXPECT_EQ(str, "a b c"); } TEST(util_string_replace, long_haystack) { string str = "a x b xxc"; string_replace(str, "x", "FOO"); - EXPECT_EQ("a FOO b FOOFOOc", str); + EXPECT_EQ(str, "a FOO b FOOFOOc"); } /* ******** Tests for string_endswith() ******** */ @@ -192,25 +192,25 @@ TEST(util_string_endswith, simple_false) TEST(util_string_strip, empty) { string str = string_strip(""); - EXPECT_EQ("", str); + EXPECT_EQ(str, ""); } TEST(util_string_strip, only_spaces) { string str = string_strip(" "); - EXPECT_EQ("", str); + EXPECT_EQ(str, ""); } TEST(util_string_strip, no_spaces) { string str = string_strip("foo bar"); - EXPECT_EQ("foo bar", str); + EXPECT_EQ(str, "foo bar"); } TEST(util_string_strip, with_spaces) { string str = string_strip(" foo bar "); - EXPECT_EQ("foo bar", str); + EXPECT_EQ(str, "foo bar"); } /* ******** Tests for string_remove_trademark() ******** */ @@ -218,31 +218,31 @@ TEST(util_string_strip, with_spaces) TEST(util_string_remove_trademark, empty) { string str = string_remove_trademark(""); - EXPECT_EQ("", str); + EXPECT_EQ(str, ""); } TEST(util_string_remove_trademark, no_trademark) { string str = string_remove_trademark("foo bar"); - EXPECT_EQ("foo bar", str); + EXPECT_EQ(str, "foo bar"); } TEST(util_string_remove_trademark, only_tm) { string str = string_remove_trademark("foo bar(TM) zzz"); - EXPECT_EQ("foo bar zzz", str); + EXPECT_EQ(str, "foo bar zzz"); } TEST(util_string_remove_trademark, only_r) { string str = string_remove_trademark("foo bar(R) zzz"); - EXPECT_EQ("foo bar zzz", str); + EXPECT_EQ(str, "foo bar zzz"); } TEST(util_string_remove_trademark, both) { string str = string_remove_trademark("foo bar(TM)(R) zzz"); - EXPECT_EQ("foo bar zzz", str); + EXPECT_EQ(str, "foo bar zzz"); } CCL_NAMESPACE_END diff --git a/intern/utfconv/utfconv.h b/intern/utfconv/utfconv.h index f00f4aeef27..d05ed61c8d8 100644 --- a/intern/utfconv/utfconv.h +++ b/intern/utfconv/utfconv.h @@ -93,7 +93,7 @@ wchar_t *alloc_utf16_from_8(const char *in8, size_t add); /* Easy allocation and conversion of new utf-16 string. New string has _16 suffix. Must be deallocated with UTF16_UN_ENCODE in right order*/ #define UTF16_ENCODE(in8str) if (1) { \ - wchar_t *in8str ## _16 = alloc_utf16_from_8((char *)in8str, 0) + wchar_t *in8str ## _16 = alloc_utf16_from_8((const char *)in8str, 0) #define UTF16_UN_ENCODE(in8str) \ free(in8str ## _16); } (void)0 |