diff options
96 files changed, 1053 insertions, 330 deletions
diff --git a/build_files/scons/config/win32-vc-config.py b/build_files/scons/config/win32-vc-config.py index 7295a16c4bc..a2e3d11c244 100644 --- a/build_files/scons/config/win32-vc-config.py +++ b/build_files/scons/config/win32-vc-config.py @@ -165,6 +165,11 @@ BF_BOOST_INC = '${BF_BOOST}/include' BF_BOOST_LIB = 'libboost_date_time-vc90-mt-s-1_47 libboost_filesystem-vc90-mt-s-1_47 libboost_regex-vc90-mt-s-1_47 libboost_system-vc90-mt-s-1_47 libboost_thread-vc90-mt-s-1_47' BF_BOOST_LIBPATH = '${BF_BOOST}/lib' +#CUDA +WITH_BF_CYCLES_CUDA_BINARIES = False +#BF_CYCLES_CUDA_NVCC = "" # Path to the nvidia compiler +BF_CYCLES_CUDA_BINARIES_ARCH = ['sm_13', 'sm_20', 'sm_21'] + #Ray trace optimization WITH_BF_RAYOPTIMIZATION = True BF_RAYOPTIMIZATION_SSE_FLAGS = ['/arch:SSE'] diff --git a/build_files/scons/config/win64-vc-config.py b/build_files/scons/config/win64-vc-config.py index eb04d9f6403..74a526a59f7 100644 --- a/build_files/scons/config/win64-vc-config.py +++ b/build_files/scons/config/win64-vc-config.py @@ -154,6 +154,7 @@ WITH_BF_3DMOUSE = True WITH_BF_OPENMP = True +#Cycles WITH_BF_CYCLES = True WITH_BF_OIIO = True @@ -169,6 +170,11 @@ BF_BOOST_INC = '${BF_BOOST}/include' BF_BOOST_LIB = 'libboost_date_time-vc90-mt-s-1_47 libboost_filesystem-vc90-mt-s-1_47 libboost_regex-vc90-mt-s-1_47 libboost_system-vc90-mt-s-1_47 libboost_thread-vc90-mt-s-1_47' BF_BOOST_LIBPATH = '${BF_BOOST}/lib' +#CUDA +WITH_BF_CYCLES_CUDA_BINARIES = False +#BF_CYCLES_CUDA_NVCC = "" # Path to the nvidia compiler +BF_CYCLES_CUDA_BINARIES_ARCH = ['sm_13', 'sm_20', 'sm_21'] + #Ray trace optimization WITH_BF_RAYOPTIMIZATION = True BF_RAYOPTIMIZATION_SSE_FLAGS = ['/arch:SSE','/arch:SSE2'] diff --git a/doc/python_api/sphinx_doc_gen.py b/doc/python_api/sphinx_doc_gen.py index 88641bdb663..29fcec58ae8 100644 --- a/doc/python_api/sphinx_doc_gen.py +++ b/doc/python_api/sphinx_doc_gen.py @@ -87,6 +87,7 @@ else: "gpu", "mathutils", "mathutils.geometry", + "mathutils.noise", ) FILTER_BPY_TYPES = ("bpy_struct", "Operator", "ID") # allow @@ -1190,6 +1191,8 @@ def rna2sphinx(BASEPATH): fw(" mathutils.rst\n\n") if "mathutils.geometry" not in EXCLUDE_MODULES: fw(" mathutils.geometry.rst\n\n") + if "mathutils.noise" not in EXCLUDE_MODULES: + fw(" mathutils.noise.rst\n\n") if "bgl" not in EXCLUDE_MODULES: fw(" bgl.rst\n\n") if "blf" not in EXCLUDE_MODULES: @@ -1329,6 +1332,10 @@ def rna2sphinx(BASEPATH): import mathutils.geometry as module pymodule2sphinx(BASEPATH, "mathutils.geometry", module, "Geometry Utilities") + if "mathutils.noise" not in EXCLUDE_MODULES: + import mathutils.noise as module + pymodule2sphinx(BASEPATH, "mathutils.noise", module, "Noise Utilities") + if "blf" not in EXCLUDE_MODULES: import blf as module pymodule2sphinx(BASEPATH, "blf", module, "Font Drawing") diff --git a/extern/libmv/CMakeLists.txt b/extern/libmv/CMakeLists.txt index 0349ad72000..0e74c41195b 100644 --- a/extern/libmv/CMakeLists.txt +++ b/extern/libmv/CMakeLists.txt @@ -53,6 +53,8 @@ set(SRC libmv/image/array_nd.cc libmv/tracking/pyramid_region_tracker.cc libmv/tracking/sad.cc + libmv/tracking/brute_region_tracker.cc + libmv/tracking/hybrid_region_tracker.cc libmv/tracking/esm_region_tracker.cc libmv/tracking/trklt_region_tracker.cc libmv/tracking/klt_region_tracker.cc @@ -100,6 +102,8 @@ set(SRC libmv/image/sample.h libmv/image/image.h libmv/tracking/region_tracker.h + libmv/tracking/brute_region_tracker.h + libmv/tracking/hybrid_region_tracker.h libmv/tracking/retrack_region_tracker.h libmv/tracking/sad.h libmv/tracking/pyramid_region_tracker.h diff --git a/extern/libmv/libmv-capi.cpp b/extern/libmv/libmv-capi.cpp index aa05279d731..ed89f8cbfb3 100644 --- a/extern/libmv/libmv-capi.cpp +++ b/extern/libmv/libmv-capi.cpp @@ -36,6 +36,8 @@ #include "Math/v3d_optimization.h" #include "libmv/tracking/esm_region_tracker.h" +#include "libmv/tracking/brute_region_tracker.h" +#include "libmv/tracking/hybrid_region_tracker.h" #include "libmv/tracking/klt_region_tracker.h" #include "libmv/tracking/trklt_region_tracker.h" #include "libmv/tracking/lmicklt_region_tracker.h" @@ -109,18 +111,33 @@ void libmv_setLoggingVerbosity(int verbosity) /* ************ RegionTracker ************ */ -libmv_RegionTracker *libmv_regionTrackerNew(int max_iterations, int pyramid_level, int half_window_size) +libmv_RegionTracker *libmv_pyramidRegionTrackerNew(int max_iterations, int pyramid_level, int half_window_size) { - libmv::EsmRegionTracker *klt_region_tracker = new libmv::EsmRegionTracker; + libmv::EsmRegionTracker *esm_region_tracker = new libmv::EsmRegionTracker; + esm_region_tracker->half_window_size = half_window_size; + esm_region_tracker->max_iterations = max_iterations; + esm_region_tracker->min_determinant = 1e-4; - klt_region_tracker->half_window_size = half_window_size; - klt_region_tracker->max_iterations = max_iterations; - klt_region_tracker->min_determinant = 1e-4; + libmv::PyramidRegionTracker *pyramid_region_tracker = + new libmv::PyramidRegionTracker(esm_region_tracker, pyramid_level); - libmv::PyramidRegionTracker *region_tracker = - new libmv::PyramidRegionTracker(klt_region_tracker, pyramid_level); + return (libmv_RegionTracker *)pyramid_region_tracker; +} + +libmv_RegionTracker *libmv_hybridRegionTrackerNew(int max_iterations, int half_window_size) +{ + libmv::EsmRegionTracker *esm_region_tracker = new libmv::EsmRegionTracker; + esm_region_tracker->half_window_size = half_window_size; + esm_region_tracker->max_iterations = max_iterations; + esm_region_tracker->min_determinant = 1e-4; + + libmv::BruteRegionTracker *brute_region_tracker = new libmv::BruteRegionTracker; + brute_region_tracker->half_window_size = half_window_size; + + libmv::HybridRegionTracker *hybrid_region_tracker = + new libmv::HybridRegionTracker(brute_region_tracker, esm_region_tracker); - return (libmv_RegionTracker *)region_tracker; + return (libmv_RegionTracker *)hybrid_region_tracker; } static void floatBufToImage(const float *buf, int width, int height, libmv::FloatImage *image) diff --git a/extern/libmv/libmv-capi.h b/extern/libmv/libmv-capi.h index 321593520b5..c5e61d69c56 100644 --- a/extern/libmv/libmv-capi.h +++ b/extern/libmv/libmv-capi.h @@ -43,7 +43,8 @@ void libmv_startDebugLogging(void); void libmv_setLoggingVerbosity(int verbosity); /* RegionTracker */ -struct libmv_RegionTracker *libmv_regionTrackerNew(int max_iterations, int pyramid_level, int half_window_size); +struct libmv_RegionTracker *libmv_pyramidRegionTrackerNew(int max_iterations, int pyramid_level, int half_window_size); +struct libmv_RegionTracker *libmv_hybridRegionTrackerNew(int max_iterations, int half_window_size); int libmv_regionTrackerTrack(struct libmv_RegionTracker *libmv_tracker, const float *ima1, const float *ima2, int width, int height, double x1, double y1, double *x2, double *y2); void libmv_regionTrackerDestroy(struct libmv_RegionTracker *libmv_tracker); diff --git a/extern/libmv/libmv/tracking/brute_region_tracker.cc b/extern/libmv/libmv/tracking/brute_region_tracker.cc new file mode 100644 index 00000000000..c33432b7fd7 --- /dev/null +++ b/extern/libmv/libmv/tracking/brute_region_tracker.cc @@ -0,0 +1,331 @@ +// Copyright (c) 2011 libmv authors. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to +// deal in the Software without restriction, including without limitation the +// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +// sell copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +// IN THE SOFTWARE. + +#include "libmv/tracking/brute_region_tracker.h" + +#ifdef __SSE2__ +#include <emmintrin.h> +#endif + +#ifndef __APPLE__ +// Needed for memalign on Linux and _aligned_alloc on Windows. +#ifdef FREE_WINDOWS +/* make sure _aligned_malloc is included */ +#ifdef __MSVCRT_VERSION__ +#undef __MSVCRT_VERSION__ +#endif + +#define __MSVCRT_VERSION__ 0x0700 +#endif + +#include <malloc.h> +#else +// Apple's malloc is 16-byte aligned, and does not have malloc.h, so include +// stdilb instead. +#include <cstdlib> +#endif + +#include "libmv/image/image.h" +#include "libmv/image/convolve.h" +#include "libmv/image/sample.h" +#include "libmv/logging/logging.h" + +namespace libmv { +namespace { + +// TODO(keir): It's stupid that this is needed here. Push this somewhere else. +void *aligned_malloc(int size, int alignment) { +#ifdef _WIN32 + return _aligned_malloc(size, alignment); +#elif __APPLE__ + // On Mac OS X, both the heap and the stack are guaranteed 16-byte aligned so + // they work natively with SSE types with no further work. + CHECK_EQ(alignment, 16); + return malloc(size); +#else // This is for Linux. + return memalign(alignment, size); +#endif +} + +void aligned_free(void *ptr) { +#ifdef _WIN32 + _aligned_free(ptr); +#else + free(ptr); +#endif +} + +bool RegionIsInBounds(const FloatImage &image1, + double x, double y, + int half_window_size) { + // Check the minimum coordinates. + int min_x = floor(x) - half_window_size - 1; + int min_y = floor(y) - half_window_size - 1; + if (min_x < 0.0 || + min_y < 0.0) { + return false; + } + + // Check the maximum coordinates. + int max_x = ceil(x) + half_window_size + 1; + int max_y = ceil(y) + half_window_size + 1; + if (max_x > image1.cols() || + max_y > image1.rows()) { + return false; + } + + // Ok, we're good. + return true; +} + +#ifdef __SSE2__ + +// Compute the sub of absolute differences between the arrays "a" and "b". +// The array "a" is assumed to be 16-byte aligned, while "b" is not. The +// result is returned as the first and third elements of __m128i if +// interpreted as a 4-element 32-bit integer array. The SAD is the sum of the +// elements. +// +// The function requires size % 16 valid extra elements at the end of both "a" +// and "b", since the SSE load instructionst will pull in memory past the end +// of the arrays if their size is not a multiple of 16. +inline static __m128i SumOfAbsoluteDifferencesContiguousSSE( + const unsigned char *a, // aligned + const unsigned char *b, // not aligned + unsigned int size, + __m128i sad) { + // Do the bulk of the work as 16-way integer operations. + for(unsigned int j = 0; j < size / 16; j++) { + sad = _mm_add_epi32(sad, _mm_sad_epu8( _mm_load_si128 ((__m128i*)(a + 16 * j)), + _mm_loadu_si128((__m128i*)(b + 16 * j)))); + } + // Handle the trailing end. + // TODO(keir): Benchmark to verify that the below SSE is a win compared to a + // hand-rolled loop. It's not clear that the hand rolled loop would be slower + // than the potential cache miss when loading the immediate table below. + // + // An alternative to this version is to take a packet of all 1's then do a + // 128-bit shift. The issue is that the shift instruction needs an immediate + // amount rather than a variable amount, so the branch instruction here must + // remain. See _mm_srli_si128 and _mm_slli_si128. + unsigned int remainder = size % 16u; + if (remainder) { + unsigned int j = size / 16; + __m128i a_trail = _mm_load_si128 ((__m128i*)(a + 16 * j)); + __m128i b_trail = _mm_loadu_si128((__m128i*)(b + 16 * j)); + __m128i mask; + switch (remainder) { +#define X 0xff + case 1: mask = _mm_setr_epi8(X, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); break; + case 2: mask = _mm_setr_epi8(X, X, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); break; + case 3: mask = _mm_setr_epi8(X, X, X, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); break; + case 4: mask = _mm_setr_epi8(X, X, X, X, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); break; + case 5: mask = _mm_setr_epi8(X, X, X, X, X, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); break; + case 6: mask = _mm_setr_epi8(X, X, X, X, X, X, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); break; + case 7: mask = _mm_setr_epi8(X, X, X, X, X, X, X, 0, 0, 0, 0, 0, 0, 0, 0, 0); break; + case 8: mask = _mm_setr_epi8(X, X, X, X, X, X, X, X, 0, 0, 0, 0, 0, 0, 0, 0); break; + case 9: mask = _mm_setr_epi8(X, X, X, X, X, X, X, X, X, 0, 0, 0, 0, 0, 0, 0); break; + case 10: mask = _mm_setr_epi8(X, X, X, X, X, X, X, X, X, X, 0, 0, 0, 0, 0, 0); break; + case 11: mask = _mm_setr_epi8(X, X, X, X, X, X, X, X, X, X, X, 0, 0, 0, 0, 0); break; + case 12: mask = _mm_setr_epi8(X, X, X, X, X, X, X, X, X, X, X, X, 0, 0, 0, 0); break; + case 13: mask = _mm_setr_epi8(X, X, X, X, X, X, X, X, X, X, X, X, X, 0, 0, 0); break; + case 14: mask = _mm_setr_epi8(X, X, X, X, X, X, X, X, X, X, X, X, X, X, 0, 0); break; + case 15: mask = _mm_setr_epi8(X, X, X, X, X, X, X, X, X, X, X, X, X, X, X, 0); break; +#undef X + } + sad = _mm_add_epi32(sad, _mm_sad_epu8(_mm_and_si128(mask, a_trail), + _mm_and_si128(mask, b_trail))); + } + return sad; +} +#endif + +// Computes the sum of absolute differences between pattern and image. Pattern +// must be 16-byte aligned, and the stride must be a multiple of 16. The image +// does pointer does not have to be aligned. +int SumOfAbsoluteDifferencesContiguousImage( + const unsigned char *pattern, + unsigned int pattern_width, + unsigned int pattern_height, + unsigned int pattern_stride, + const unsigned char *image, + unsigned int image_stride) { +#ifdef __SSE2__ + // TODO(keir): Add interleaved accumulation, where accumulation is done into + // two or more SSE registers that then get combined at the end. This reduces + // instruction dependency; in Eigen's squared norm code, splitting the + // accumulation produces a ~2x speedup. It's not clear it will help here, + // where the number of SSE instructions in the inner loop is smaller. + __m128i sad = _mm_setzero_si128(); + for (int r = 0; r < pattern_height; ++r) { + sad = SumOfAbsoluteDifferencesContiguousSSE(&pattern[pattern_stride * r], + &image[image_stride * r], + pattern_width, + sad); + } + return _mm_cvtsi128_si32( + _mm_add_epi32(sad, + _mm_shuffle_epi32(sad, _MM_SHUFFLE(3, 0, 1, 2)))); +#else + int sad = 0; + for (int r = 0; r < pattern_height; ++r) { + for (int c = 0; c < pattern_width; ++c) { + sad += abs(pattern[pattern_stride * r + c] - image[image_stride * r + c]); + } + } + return sad; +#endif +} + +// Sample a region of size width, height centered at x,y in image, converting +// from float to byte in the process. Samples from the first channel. Puts +// result into *pattern. +void SampleRectangularPattern(const FloatImage &image, + double x, double y, + int width, + int height, + int pattern_stride, + unsigned char *pattern) { + // There are two cases for width and height: even or odd. If it's odd, then + // the bounds [-width / 2, width / 2] works as expected. However, for even, + // this results in one extra access past the end. So use < instead of <= in + // the loops below, but increase the end limit by one in the odd case. + int end_width = (width / 2) + (width % 2); + int end_height = (height / 2) + (height % 2); + for (int r = -height / 2; r < end_height; ++r) { + for (int c = -width / 2; c < end_width; ++c) { + pattern[pattern_stride * (r + height / 2) + c + width / 2] = + SampleLinear(image, y + r, x + c, 0) * 255.0; + } + } +} + +// Returns x rounded up to the nearest multiple of alignment. +inline int PadToAlignment(int x, int alignment) { + if (x % alignment != 0) { + x += alignment - (x % alignment); + } + return x; +} + +// Sample a region centered at x,y in image with size extending by half_width +// from x. Samples from the first channel. The resulting array is placed in +// *pattern, and the stride, which will be a multiple of 16 if SSE is enabled, +// is returned in *pattern_stride. +// +// NOTE: Caller must free *pattern with aligned_malloc() from above. +void SampleSquarePattern(const FloatImage &image, + double x, double y, + int half_width, + unsigned char **pattern, + int *pattern_stride) { + int width = 2 * half_width + 1; + // Allocate an aligned block with padding on the end so each row of the + // pattern starts on a 16-byte boundary. + *pattern_stride = PadToAlignment(width, 16); + int pattern_size_bytes = *pattern_stride * width; + *pattern = static_cast<unsigned char *>( + aligned_malloc(pattern_size_bytes, 16)); + SampleRectangularPattern(image, x, y, width, width, + *pattern_stride, + *pattern); +} + +// NOTE: Caller must free *image with aligned_malloc() from above. +void FloatArrayToByteArrayWithPadding(const FloatImage &float_image, + unsigned char **image, + int *image_stride) { + // Allocate enough so that accessing 16 elements past the end is fine. + *image_stride = float_image.Width() + 16; + *image = static_cast<unsigned char *>( + aligned_malloc(*image_stride * float_image.Height(), 16)); + for (int i = 0; i < float_image.Height(); ++i) { + for (int j = 0; j < float_image.Width(); ++j) { + (*image)[*image_stride * i + j] = + static_cast<unsigned char>(255.0 * float_image(i, j, 0)); + } + } +} + +} // namespace + +// TODO(keir): Compare the "sharpness" of the peak around the best pixel. It's +// probably worth plotting a few examples to see what the histogram of SAD +// values for every hypothesis looks like. +// +// TODO(keir): Priority queue for multiple hypothesis. +bool BruteRegionTracker::Track(const FloatImage &image1, + const FloatImage &image2, + double x1, double y1, + double *x2, double *y2) const { + if (!RegionIsInBounds(image1, x1, y1, half_window_size)) { + LG << "Fell out of image1's window with x1=" << x1 << ", y1=" << y1 + << ", hw=" << half_window_size << "."; + return false; + } + int pattern_width = 2 * half_window_size + 1; + + Array3Df image_and_gradient1; + Array3Df image_and_gradient2; + BlurredImageAndDerivativesChannels(image1, 0.9, &image_and_gradient1); + BlurredImageAndDerivativesChannels(image2, 0.9, &image_and_gradient2); + + // Sample the pattern to get it aligned to an image grid. + unsigned char *pattern; + int pattern_stride; + SampleSquarePattern(image_and_gradient1, x1, y1, half_window_size, + &pattern, + &pattern_stride); + + // Convert the search area directly to bytes without sampling. + unsigned char *search_area; + int search_area_stride; + FloatArrayToByteArrayWithPadding(image_and_gradient2, &search_area, &search_area_stride); + + // Try all possible locations inside the search area. Yes, everywhere. + int best_i, best_j, best_sad = INT_MAX; + for (int i = 0; i < image2.Height() - pattern_width; ++i) { + for (int j = 0; j < image2.Width() - pattern_width; ++j) { + int sad = SumOfAbsoluteDifferencesContiguousImage(pattern, + pattern_width, + pattern_width, + pattern_stride, + search_area + search_area_stride * i + j, + search_area_stride); + if (sad < best_sad) { + best_i = i; + best_j = j; + best_sad = sad; + } + } + } + + aligned_free(pattern); + aligned_free(search_area); + + if (best_sad != INT_MAX) { + *x2 = best_j + half_window_size; + *y2 = best_i + half_window_size; + return true; + } + return false; +} + +} // namespace libmv diff --git a/extern/libmv/libmv/tracking/brute_region_tracker.h b/extern/libmv/libmv/tracking/brute_region_tracker.h new file mode 100644 index 00000000000..7a9b06d8a31 --- /dev/null +++ b/extern/libmv/libmv/tracking/brute_region_tracker.h @@ -0,0 +1,46 @@ +// Copyright (c) 2011 libmv authors. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to +// deal in the Software without restriction, including without limitation the +// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +// sell copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +// IN THE SOFTWARE. + +#ifndef LIBMV_REGION_TRACKING_BRUTE_REGION_TRACKER_H_ +#define LIBMV_REGION_TRACKING_BRUTE_REGION_TRACKER_H_ + +#include "libmv/image/image.h" +#include "libmv/tracking/region_tracker.h" + +namespace libmv { + +struct BruteRegionTracker : public RegionTracker { + BruteRegionTracker() : half_window_size(4) {} + + virtual ~BruteRegionTracker() {} + + // Tracker interface. + virtual bool Track(const FloatImage &image1, + const FloatImage &image2, + double x1, double y1, + double *x2, double *y2) const; + + // No point in creating getters or setters. + int half_window_size; +}; + +} // namespace libmv + +#endif // LIBMV_REGION_TRACKING_BRUTE_REGION_TRACKER_H_ diff --git a/extern/libmv/libmv/tracking/hybrid_region_tracker.cc b/extern/libmv/libmv/tracking/hybrid_region_tracker.cc new file mode 100644 index 00000000000..ea3b0f5bfc0 --- /dev/null +++ b/extern/libmv/libmv/tracking/hybrid_region_tracker.cc @@ -0,0 +1,67 @@ +// Copyright (c) 2011 libmv authors. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to +// deal in the Software without restriction, including without limitation the +// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +// sell copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +// IN THE SOFTWARE. + +#include "libmv/tracking/hybrid_region_tracker.h" + +#include "libmv/image/image.h" +#include "libmv/image/convolve.h" +#include "libmv/image/sample.h" +#include "libmv/logging/logging.h" + +namespace libmv { + +bool HybridRegionTracker::Track(const FloatImage &image1, + const FloatImage &image2, + double x1, double y1, + double *x2, double *y2) const { + double x2_coarse = *x2; + double y2_coarse = *y2; + if (!coarse_tracker_->Track(image1, image2, x1, y1, &x2_coarse, &y2_coarse)) { + LG << "Coarse tracker failed."; + return false; + } + + double x2_fine = x2_coarse; + double y2_fine = y2_coarse; + if (!fine_tracker_->Track(image1, image2, x1, y1, &x2_fine, &y2_fine)) { + LG << "Fine tracker failed."; + return false; + } + + // Calculate the shift done by the fine tracker. + double dx2 = x2_coarse - x2_fine; + double dy2 = y2_coarse - y2_fine; + double fine_shift = sqrt(dx2 * dx2 + dy2 * dy2); + + LG << "Refinement: dx=" << dx2 << " dy=" << dy2 << ", d=" << fine_shift; + + // If the fine tracker shifted the window by more than a pixel, then + // something bad probably happened and we should give up tracking. + if (fine_shift < 2.0) { + LG << "Refinement small enough; success."; + *x2 = x2_fine; + *y2 = y2_fine; + return true; + } + LG << "Refinement was too big; failing."; + return false; +} + +} // namespace libmv diff --git a/extern/libmv/libmv/tracking/hybrid_region_tracker.h b/extern/libmv/libmv/tracking/hybrid_region_tracker.h new file mode 100644 index 00000000000..a18341f0ce4 --- /dev/null +++ b/extern/libmv/libmv/tracking/hybrid_region_tracker.h @@ -0,0 +1,52 @@ +// Copyright (c) 2011 libmv authors. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to +// deal in the Software without restriction, including without limitation the +// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +// sell copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +// IN THE SOFTWARE. + +#ifndef LIBMV_REGION_TRACKING_HYBRID_REGION_TRACKER_H_ +#define LIBMV_REGION_TRACKING_HYBRID_REGION_TRACKER_H_ + +#include "libmv/image/image.h" +#include "libmv/base/scoped_ptr.h" +#include "libmv/tracking/region_tracker.h" + +namespace libmv { + +// TODO(keir): Documentation! +class HybridRegionTracker : public RegionTracker { + public: + HybridRegionTracker(RegionTracker *coarse_tracker, + RegionTracker *fine_tracker) + : coarse_tracker_(coarse_tracker), + fine_tracker_(fine_tracker) {} + + virtual ~HybridRegionTracker() {} + + // Tracker interface. + virtual bool Track(const FloatImage &image1, + const FloatImage &image2, + double x1, double y1, + double *x2, double *y2) const; + + scoped_ptr<RegionTracker> coarse_tracker_; + scoped_ptr<RegionTracker> fine_tracker_; +}; + +} // namespace libmv + +#endif // LIBMV_REGION_TRACKING_HYBRID_REGION_TRACKER_H_ diff --git a/intern/cycles/app/cycles_xml.cpp b/intern/cycles/app/cycles_xml.cpp index 8abc060af47..530a4ad14d8 100644 --- a/intern/cycles/app/cycles_xml.cpp +++ b/intern/cycles/app/cycles_xml.cpp @@ -435,6 +435,9 @@ static void xml_read_shader_graph(const XMLReadState& state, Shader *shader, pug else if(string_iequals(node.name(), "add_closure")) { snode = new AddClosureNode(); } + else if(string_iequals(node.name(), "invert")) { + snode = new InvertNode(); + } else if(string_iequals(node.name(), "mix")) { MixNode *mix = new MixNode(); xml_read_enum(&mix->type, MixNode::type_enum, node, "type"); @@ -454,7 +457,7 @@ static void xml_read_shader_graph(const XMLReadState& state, Shader *shader, pug xml_read_ustring(&attr->attribute, node, "attribute"); snode = attr; } - else if(string_ieuals(node.name(), "camera")) { + else if(string_iequals(node.name(), "camera")) { snode = new CameraNode(); } else if(string_iequals(node.name(), "fresnel")) { diff --git a/intern/cycles/blender/blender_shader.cpp b/intern/cycles/blender/blender_shader.cpp index 43359bf5352..930ac1d495a 100644 --- a/intern/cycles/blender/blender_shader.cpp +++ b/intern/cycles/blender/blender_shader.cpp @@ -130,7 +130,6 @@ static ShaderNode *add_node(BL::BlendData b_data, ShaderGraph *graph, BL::Node * case BL::ShaderNode::type_CURVE_RGB: break; case BL::ShaderNode::type_CURVE_VEC: break; case BL::ShaderNode::type_GEOMETRY: break; - case BL::ShaderNode::type_INVERT: break; case BL::ShaderNode::type_MATERIAL: break; case BL::ShaderNode::type_MATERIAL_EXT: break; case BL::ShaderNode::type_NORMAL: break; @@ -158,6 +157,10 @@ static ShaderNode *add_node(BL::BlendData b_data, ShaderGraph *graph, BL::Node * node = new CameraNode(); break; } + case BL::ShaderNode::type_INVERT: { + node = new InvertNode(); + break; + } case BL::ShaderNode::type_MIX_RGB: { BL::ShaderNodeMixRGB b_mix_node(b_node); MixNode *mix = new MixNode(); diff --git a/intern/cycles/kernel/CMakeLists.txt b/intern/cycles/kernel/CMakeLists.txt index 59f7e04c9d8..601b95d262a 100644 --- a/intern/cycles/kernel/CMakeLists.txt +++ b/intern/cycles/kernel/CMakeLists.txt @@ -63,6 +63,7 @@ set(SRC_SVM_HEADERS svm/svm_gradient.h svm/svm_hsv.h svm/svm_image.h + svm/svm_invert.h svm/svm_light_path.h svm/svm_magic.h svm/svm_mapping.h diff --git a/intern/cycles/kernel/osl/nodes/CMakeLists.txt b/intern/cycles/kernel/osl/nodes/CMakeLists.txt index 02f4a5a55bf..433fc2155fe 100644 --- a/intern/cycles/kernel/osl/nodes/CMakeLists.txt +++ b/intern/cycles/kernel/osl/nodes/CMakeLists.txt @@ -24,6 +24,7 @@ set(SRC_OSL node_glossy_bsdf.osl node_hsv.osl node_image_texture.osl + node_invert.osl node_light_path.osl node_magic_texture.osl node_mapping.osl diff --git a/intern/cycles/kernel/osl/nodes/node_invert.osl b/intern/cycles/kernel/osl/nodes/node_invert.osl new file mode 100644 index 00000000000..817198c4561 --- /dev/null +++ b/intern/cycles/kernel/osl/nodes/node_invert.osl @@ -0,0 +1,29 @@ +/* + * Copyright 2011, Blender Foundation. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include "stdosl.h" + +shader node_invert( + float Fac = 1.0, + color ColorIn = color(0.8, 0.8, 0.8), + output ColorOut = color(0.8, 0.8, 0.8) +{ + color ColorInv = color(1.0) - ColorIn; + ColorOut = mix(ColorIn, ColorInv, Fac); +} + diff --git a/intern/cycles/kernel/svm/svm.h b/intern/cycles/kernel/svm/svm.h index 443715600ca..5fde44e2769 100644 --- a/intern/cycles/kernel/svm/svm.h +++ b/intern/cycles/kernel/svm/svm.h @@ -130,6 +130,7 @@ CCL_NAMESPACE_END #include "svm_geometry.h" #include "svm_hsv.h" #include "svm_image.h" +#include "svm_invert.h" #include "svm_light_path.h" #include "svm_magic.h" #include "svm_mapping.h" @@ -257,6 +258,9 @@ __device_noinline void svm_eval_nodes(KernelGlobals *kg, ShaderData *sd, ShaderT case NODE_VALUE_V: svm_node_value_v(kg, sd, stack, node.y, &offset); break; + case NODE_INVERT: + svm_node_invert(sd, stack, node.y, node.z, node.w); + break; case NODE_MIX: svm_node_mix(kg, sd, stack, node.y, node.z, node.w, &offset); break; diff --git a/intern/cycles/kernel/svm/svm_invert.h b/intern/cycles/kernel/svm/svm_invert.h new file mode 100644 index 00000000000..a14d8ec82fa --- /dev/null +++ b/intern/cycles/kernel/svm/svm_invert.h @@ -0,0 +1,40 @@ +/* + * Copyright 2011, Blender Foundation. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +CCL_NAMESPACE_BEGIN + +__device float invert(float color, float factor) +{ + return factor*(1.0f - color) + (1.0f - factor) * color; +} + +__device void svm_node_invert(ShaderData *sd, float *stack, uint in_fac, uint in_color, uint out_color) +{ + float factor = stack_load_float(stack, in_fac); + float3 color = stack_load_float3(stack, in_color); + + color.x = invert(color.x, factor); + color.y = invert(color.y, factor); + color.z = invert(color.z, factor); + + if (stack_valid(out_color)) + stack_store_float3(stack, out_color, color); +} + +CCL_NAMESPACE_END + diff --git a/intern/cycles/kernel/svm/svm_types.h b/intern/cycles/kernel/svm/svm_types.h index fcd345b9359..efec5c7650d 100644 --- a/intern/cycles/kernel/svm/svm_types.h +++ b/intern/cycles/kernel/svm/svm_types.h @@ -83,7 +83,8 @@ typedef enum NodeType { NODE_SEPARATE_RGB = 5000, NODE_COMBINE_RGB = 5100, NODE_HSV = 5200, - NODE_CAMERA = 5300 + NODE_CAMERA = 5300, + NODE_INVERT = 5400 } NodeType; typedef enum NodeAttributeType { diff --git a/intern/cycles/render/nodes.cpp b/intern/cycles/render/nodes.cpp index 9f12fe6002f..45f0ab41775 100644 --- a/intern/cycles/render/nodes.cpp +++ b/intern/cycles/render/nodes.cpp @@ -1566,6 +1566,34 @@ void MixClosureNode::compile(OSLCompiler& compiler) compiler.add(this, "node_mix_closure"); } +/* Invert */ + +InvertNode::InvertNode() +: ShaderNode("invert") +{ + add_input("Fac", SHADER_SOCKET_FLOAT, 1.0f); + add_input("Color", SHADER_SOCKET_COLOR); + add_output("Color", SHADER_SOCKET_COLOR); +} + +void InvertNode::compile(SVMCompiler& compiler) +{ + ShaderInput *fac_in = input("Fac"); + ShaderInput *color_in = input("Color"); + ShaderOutput *color_out = output("Color"); + + compiler.stack_assign(fac_in); + compiler.stack_assign(color_in); + compiler.stack_assign(color_out); + + compiler.add_node(NODE_INVERT, fac_in->stack_offset, color_in->stack_offset, color_out->stack_offset); +} + +void InvertNode::compile(OSLCompiler& compiler) +{ + compiler.add(this, "node_invert"); +} + /* Mix */ MixNode::MixNode() diff --git a/intern/cycles/render/nodes.h b/intern/cycles/render/nodes.h index fd5271d8434..e08651cf1eb 100644 --- a/intern/cycles/render/nodes.h +++ b/intern/cycles/render/nodes.h @@ -284,6 +284,11 @@ public: SHADER_NODE_CLASS(MixClosureNode) }; +class InvertNode : public ShaderNode { +public: + SHADER_NODE_CLASS(InvertNode) +}; + class MixNode : public ShaderNode { public: SHADER_NODE_CLASS(MixNode) diff --git a/intern/cycles/util/util_boundbox.h b/intern/cycles/util/util_boundbox.h index b4c5e4e71ca..0114a9a26a5 100644 --- a/intern/cycles/util/util_boundbox.h +++ b/intern/cycles/util/util_boundbox.h @@ -19,12 +19,15 @@ #ifndef __UTIL_BOUNDBOX_H__ #define __UTIL_BOUNDBOX_H__ +#include <math.h> #include <float.h> #include "util_math.h" #include "util_transform.h" #include "util_types.h" +using namespace std; + CCL_NAMESPACE_BEGIN class BoundBox diff --git a/release/scripts/startup/bl_ui/properties_texture.py b/release/scripts/startup/bl_ui/properties_texture.py index 9f67edd7653..d16b2f15f52 100644 --- a/release/scripts/startup/bl_ui/properties_texture.py +++ b/release/scripts/startup/bl_ui/properties_texture.py @@ -166,6 +166,10 @@ class TEXTURE_PT_preview(TextureButtonsPanel, Panel): layout.template_preview(tex, parent=idblock, slot=slot) else: layout.template_preview(tex, slot=slot) + + #Show Alpha Button for Brush Textures, see #29502 + if context.space_data.texture_context == 'BRUSH': + layout.prop(tex, "use_preview_alpha") class TEXTURE_PT_colors(TextureButtonsPanel, Panel): diff --git a/release/scripts/startup/bl_ui/space_clip.py b/release/scripts/startup/bl_ui/space_clip.py index cacf61249dc..5cdd1de547f 100644 --- a/release/scripts/startup/bl_ui/space_clip.py +++ b/release/scripts/startup/bl_ui/space_clip.py @@ -129,7 +129,7 @@ class CLIP_PT_tools_marker(Panel): if settings.default_tracker == 'KLT': col.prop(settings, "default_pyramid_levels") - else: + elif settings.default_tracker == 'SAD': col.prop(settings, "default_correlation_min") col.separator() diff --git a/source/blender/CMakeLists.txt b/source/blender/CMakeLists.txt index 5149b32b242..cb17a87fd76 100644 --- a/source/blender/CMakeLists.txt +++ b/source/blender/CMakeLists.txt @@ -38,6 +38,7 @@ set(SRC_DNA_INC ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_controller_types.h ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_curve_types.h ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_customdata_types.h + ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_defs.h ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_documentation.h ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_dynamicpaint_types.h ${CMAKE_CURRENT_SOURCE_DIR}/makesdna/DNA_effect_types.h diff --git a/source/blender/blenkernel/BKE_effect.h b/source/blender/blenkernel/BKE_effect.h index 7f4e809718c..3ebd57dde39 100644 --- a/source/blender/blenkernel/BKE_effect.h +++ b/source/blender/blenkernel/BKE_effect.h @@ -109,15 +109,10 @@ typedef struct EffectorCache { int flag; } EffectorCache; -void free_effect(struct Effect *eff); -void free_effects(struct ListBase *lb); struct Effect *copy_effect(struct Effect *eff); void copy_effects(struct ListBase *lbn, struct ListBase *lb); void deselectall_eff(struct Object *ob); -struct PartEff *give_parteff(struct Object *ob); - - void free_partdeflect(struct PartDeflect *pd); struct ListBase *pdInitEffectors(struct Scene *scene, struct Object *ob_src, struct ParticleSystem *psys_src, struct EffectorWeights *weights); void pdEndEffectors(struct ListBase **effectors); diff --git a/source/blender/blenkernel/BKE_group.h b/source/blender/blenkernel/BKE_group.h index 554314c419a..044a40658c3 100644 --- a/source/blender/blenkernel/BKE_group.h +++ b/source/blender/blenkernel/BKE_group.h @@ -52,8 +52,10 @@ int group_is_animated(struct Object *parent, struct Group *group); void group_tag_recalc(struct Group *group); void group_handle_recalc_and_update(struct Scene *scene, struct Object *parent, struct Group *group); +#if 0 /* UNUSED */ struct Object *group_get_member_with_action(struct Group *group, struct bAction *act); void group_relink_nla_objects(struct Object *ob); +#endif #endif diff --git a/source/blender/blenkernel/BKE_object.h b/source/blender/blenkernel/BKE_object.h index 5eb9529b2fc..b5a5090a5eb 100644 --- a/source/blender/blenkernel/BKE_object.h +++ b/source/blender/blenkernel/BKE_object.h @@ -128,7 +128,7 @@ void object_tfm_restore(struct Object *ob, void *obtfm_pt); typedef struct ObjectTfmProtectedChannels { float loc[3], dloc[3]; - float size[3], dsize[3]; + float size[3], dscale[3]; float rot[3], drot[3]; float quat[4], dquat[4]; float rotAxis[3], drotAxis[3]; diff --git a/source/blender/blenkernel/intern/armature.c b/source/blender/blenkernel/intern/armature.c index 2157bd5999b..68d2cf940af 100644 --- a/source/blender/blenkernel/intern/armature.c +++ b/source/blender/blenkernel/intern/armature.c @@ -2120,6 +2120,8 @@ void pchan_calc_mat(bPoseChannel *pchan) pchan_to_mat4(pchan, pchan->chan_mat); } +#if 0 /* XXX OLD ANIMSYS, NLASTRIPS ARE NO LONGER USED */ + /* NLA strip modifiers */ static void do_strip_modifiers(Scene *scene, Object *armob, Bone *bone, bPoseChannel *pchan) { @@ -2242,6 +2244,8 @@ static void do_strip_modifiers(Scene *scene, Object *armob, Bone *bone, bPoseCha } } +#endif + /* calculate tail of posechannel */ void where_is_pose_bone_tail(bPoseChannel *pchan) { @@ -2351,9 +2355,12 @@ void where_is_pose_bone(Scene *scene, Object *ob, bPoseChannel *pchan, float cti } if(do_extra) { + +#if 0 /* XXX OLD ANIMSYS, NLASTRIPS ARE NO LONGER USED */ /* do NLA strip modifiers - i.e. curve follow */ do_strip_modifiers(scene, ob, bone, pchan); - +#endif + /* Do constraints */ if (pchan->constraints.first) { bConstraintOb *cob; diff --git a/source/blender/blenkernel/intern/effect.c b/source/blender/blenkernel/intern/effect.c index 99a609f7ce2..69d860bfb08 100644 --- a/source/blender/blenkernel/intern/effect.c +++ b/source/blender/blenkernel/intern/effect.c @@ -154,43 +154,6 @@ typedef struct VeNoCo { /* ***************** PARTICLES ***************** */ -/* deprecated, only keep this for readfile.c */ -PartEff *give_parteff(Object *ob) -{ - PartEff *paf; - - paf= ob->effect.first; - while(paf) { - if(paf->type==EFF_PARTICLE) return paf; - paf= paf->next; - } - return NULL; -} - -void free_effect(Effect *eff) -{ - PartEff *paf; - - if(eff->type==EFF_PARTICLE) { - paf= (PartEff *)eff; - if(paf->keys) MEM_freeN(paf->keys); - } - MEM_freeN(eff); -} - - -void free_effects(ListBase *lb) -{ - Effect *eff; - - eff= lb->first; - while(eff) { - BLI_remlink(lb, eff); - free_effect(eff); - eff= lb->first; - } -} - /* -------------------------- Effectors ------------------ */ void free_partdeflect(PartDeflect *pd) { diff --git a/source/blender/blenkernel/intern/group.c b/source/blender/blenkernel/intern/group.c index 76c3e6e5502..7ac395212ab 100644 --- a/source/blender/blenkernel/intern/group.c +++ b/source/blender/blenkernel/intern/group.c @@ -108,23 +108,28 @@ void unlink_group(Group *group) } for(ob= bmain->object.first; ob; ob= ob->id.next) { - bActionStrip *strip; if(ob->dup_group==group) { ob->dup_group= NULL; - - /* duplicator strips use a group object, we remove it */ - for(strip= ob->nlastrips.first; strip; strip= strip->next) { - if(strip->object) - strip->object= NULL; +#if 0 /* XXX OLD ANIMSYS, NLASTRIPS ARE NO LONGER USED */ + { + bActionStrip *strip; + /* duplicator strips use a group object, we remove it */ + for(strip= ob->nlastrips.first; strip; strip= strip->next) { + if(strip->object) + strip->object= NULL; + } } +#endif } for(psys=ob->particlesystem.first; psys; psys=psys->next){ if(psys->part->dup_group==group) psys->part->dup_group= NULL; +#if 0 /* not used anymore, only keps for readfile.c, no need to account for this */ if(psys->part->eff_group==group) psys->part->eff_group= NULL; +#endif } } @@ -273,13 +278,14 @@ void group_tag_recalc(Group *group) } } -int group_is_animated(Object *parent, Group *group) +int group_is_animated(Object *UNUSED(parent), Group *group) { GroupObject *go; - - // XXX: old animsys depreceated... + +#if 0 /* XXX OLD ANIMSYS, NLASTRIPS ARE NO LONGER USED */ if(parent->nlastrips.first) return 1; +#endif for(go= group->gobject.first; go; go= go->next) if(go->ob && go->ob->proxy) @@ -381,6 +387,7 @@ void group_handle_recalc_and_update(Scene *scene, Object *UNUSED(parent), Group } } +#if 0 Object *group_get_member_with_action(Group *group, bAction *act) { GroupObject *go; @@ -432,3 +439,4 @@ void group_relink_nla_objects(Object *ob) } } +#endif diff --git a/source/blender/blenkernel/intern/ipo.c b/source/blender/blenkernel/intern/ipo.c index 034f4a96879..622ec093a3f 100644 --- a/source/blender/blenkernel/intern/ipo.c +++ b/source/blender/blenkernel/intern/ipo.c @@ -43,7 +43,8 @@ #include <string.h> #include <stddef.h> -#include "MEM_guardedalloc.h" +/* since we have versioning code here */ +#define DNA_DEPRECATED_ALLOW #include "DNA_anim_types.h" #include "DNA_constraint_types.h" @@ -73,6 +74,7 @@ #include "BKE_nla.h" #include "BKE_sequencer.h" +#include "MEM_guardedalloc.h" /* *************************************************** */ /* Old-Data Freeing Tools */ diff --git a/source/blender/blenkernel/intern/lattice.c b/source/blender/blenkernel/intern/lattice.c index 4f02fdd1f46..fe07662795e 100644 --- a/source/blender/blenkernel/intern/lattice.c +++ b/source/blender/blenkernel/intern/lattice.c @@ -462,7 +462,7 @@ void end_latt_deform(Object *ob) so we store in latmat transform from path coord inside object */ typedef struct { - float dmin[3], dmax[3], dsize, dloc[3]; + float dmin[3], dmax[3], dscale, dloc[3]; float curvespace[4][4], objectspace[4][4], objectspace3[3][3]; int no_rot_axis; } CurveDeform; diff --git a/source/blender/blenkernel/intern/library.c b/source/blender/blenkernel/intern/library.c index 28524668bd3..740b7535fcd 100644 --- a/source/blender/blenkernel/intern/library.c +++ b/source/blender/blenkernel/intern/library.c @@ -1319,19 +1319,23 @@ static void lib_indirect_test_id(ID *id, Library *lib) if(GS(id->name)==ID_OB) { Object *ob= (Object *)id; - bActionStrip *strip; Mesh *me; int a; - + +#if 0 /* XXX OLD ANIMSYS, NLASTRIPS ARE NO LONGER USED */ // XXX old animation system! -------------------------------------- - for (strip=ob->nlastrips.first; strip; strip=strip->next){ - LIBTAG(strip->object); - LIBTAG(strip->act); - LIBTAG(strip->ipo); + { + bActionStrip *strip; + for (strip=ob->nlastrips.first; strip; strip=strip->next){ + LIBTAG(strip->object); + LIBTAG(strip->act); + LIBTAG(strip->ipo); + } } // XXX: new animation system needs something like this? - +#endif + for(a=0; a<ob->totcol; a++) { LIBTAG(ob->mat[a]); } diff --git a/source/blender/blenkernel/intern/mesh.c b/source/blender/blenkernel/intern/mesh.c index e281d6405eb..dc5f3e1a80b 100644 --- a/source/blender/blenkernel/intern/mesh.c +++ b/source/blender/blenkernel/intern/mesh.c @@ -380,9 +380,7 @@ void unlink_mesh(Mesh *me) } if(me->key) { - me->key->id.us--; - if (me->key->id.us == 0 && me->key->ipo ) - me->key->ipo->id.us--; + me->key->id.us--; } me->key= NULL; diff --git a/source/blender/blenkernel/intern/multires.c b/source/blender/blenkernel/intern/multires.c index 6db24258dca..40de735e15f 100644 --- a/source/blender/blenkernel/intern/multires.c +++ b/source/blender/blenkernel/intern/multires.c @@ -32,6 +32,9 @@ #include "MEM_guardedalloc.h" +/* for reading old multires */ +#define DNA_DEPRECATED_ALLOW + #include "DNA_mesh_types.h" #include "DNA_meshdata_types.h" #include "DNA_object_types.h" diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c index 79857c7658c..68269ef3aac 100644 --- a/source/blender/blenkernel/intern/object.c +++ b/source/blender/blenkernel/intern/object.c @@ -121,7 +121,7 @@ void clear_workob(Object *workob) memset(workob, 0, sizeof(Object)); workob->size[0]= workob->size[1]= workob->size[2]= 1.0f; - workob->dsize[0]= workob->dsize[1]= workob->dsize[2]= 1.0f; + workob->dscale[0]= workob->dscale[1]= workob->dscale[2]= 1.0f; workob->rotmode= ROT_MODE_EUL; } @@ -776,7 +776,7 @@ Object *add_only_object(int type, const char *name) ob->col[3]= 1.0; ob->size[0]= ob->size[1]= ob->size[2]= 1.0; - ob->dsize[0]= ob->dsize[1]= ob->dsize[2]= 1.0; + ob->dscale[0]= ob->dscale[1]= ob->dscale[2]= 1.0; /* objects should default to having Euler XYZ rotations, * but rotations default to quaternions @@ -1398,7 +1398,6 @@ void object_make_proxy(Object *ob, Object *target, Object *gob) ob->matbits= NULL; if ((target->totcol) && (target->mat) && OB_TYPE_SUPPORT_MATERIAL(ob->type)) { int i; - ob->colbits = target->colbits; ob->actcol= target->actcol; ob->totcol= target->totcol; @@ -1444,7 +1443,7 @@ void object_make_proxy(Object *ob, Object *target, Object *gob) void object_scale_to_mat3(Object *ob, float mat[][3]) { float vec[3]; - mul_v3_v3v3(vec, ob->size, ob->dsize); + mul_v3_v3v3(vec, ob->size, ob->dscale); size_to_mat3( mat,vec); } @@ -1530,7 +1529,7 @@ void object_tfm_protected_backup(const Object *ob, TFMCPY3D(loc); TFMCPY3D(dloc); TFMCPY3D(size); - TFMCPY3D(dsize); + TFMCPY3D(dscale); TFMCPY3D(rot); TFMCPY3D(drot); TFMCPY4D(quat); @@ -1560,7 +1559,7 @@ void object_tfm_protected_restore(Object *ob, if (protectflag & (OB_LOCK_SCALEX<<i)) { ob->size[i]= obtfm->size[i]; - ob->dsize[i]= obtfm->dsize[i]; + ob->dscale[i]= obtfm->dscale[i]; } if (protectflag & (OB_LOCK_ROTX<<i)) { @@ -1607,9 +1606,9 @@ void object_apply_mat4(Object *ob, float mat[][4], const short use_compat, const sub_v3_v3(ob->loc, ob->dloc); - if (ob->dsize[0] != 0.0f) ob->size[0] /= ob->dsize[0]; - if (ob->dsize[1] != 0.0f) ob->size[1] /= ob->dsize[1]; - if (ob->dsize[2] != 0.0f) ob->size[2] /= ob->dsize[2]; + if (ob->dscale[0] != 0.0f) ob->size[0] /= ob->dscale[0]; + if (ob->dscale[1] != 0.0f) ob->size[1] /= ob->dscale[1]; + if (ob->dscale[2] != 0.0f) ob->size[2] /= ob->dscale[2]; /* object_mat3_to_rot handles delta rotations */ } @@ -2430,7 +2429,7 @@ void BKE_scene_foreach_display_point( /* copied from DNA_object_types.h */ typedef struct ObTfmBack { float loc[3], dloc[3], orig[3]; - float size[3], dsize[3]; /* scale and delta scale */ + float size[3], dscale[3]; /* scale and delta scale */ float rot[3], drot[3]; /* euler rotation */ float quat[4], dquat[4]; /* quaternion rotation */ float rotAxis[3], drotAxis[3]; /* axis angle rotation - axis part */ @@ -2448,7 +2447,7 @@ void *object_tfm_backup(Object *ob) copy_v3_v3(obtfm->dloc, ob->dloc); copy_v3_v3(obtfm->orig, ob->orig); copy_v3_v3(obtfm->size, ob->size); - copy_v3_v3(obtfm->dsize, ob->dsize); + copy_v3_v3(obtfm->dscale, ob->dscale); copy_v3_v3(obtfm->rot, ob->rot); copy_v3_v3(obtfm->drot, ob->drot); copy_qt_qt(obtfm->quat, ob->quat); @@ -2472,7 +2471,7 @@ void object_tfm_restore(Object *ob, void *obtfm_pt) copy_v3_v3(ob->dloc, obtfm->dloc); copy_v3_v3(ob->orig, obtfm->orig); copy_v3_v3(ob->size, obtfm->size); - copy_v3_v3(ob->dsize, obtfm->dsize); + copy_v3_v3(ob->dscale, obtfm->dscale); copy_v3_v3(ob->rot, obtfm->rot); copy_v3_v3(ob->drot, obtfm->drot); copy_qt_qt(ob->quat, obtfm->quat); diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c index c284ed02868..ebe360ef91b 100644 --- a/source/blender/blenkernel/intern/scene.c +++ b/source/blender/blenkernel/intern/scene.c @@ -394,10 +394,6 @@ Scene *add_scene(const char *name) sce->r.simplify_shadowsamples= 16; sce->r.simplify_aosss= 1.0f; - sce->r.cineonblack= 95; - sce->r.cineonwhite= 685; - sce->r.cineongamma= 1.7f; - sce->r.border.xmin= 0.0f; sce->r.border.ymin= 0.0f; sce->r.border.xmax= 1.0f; diff --git a/source/blender/blenkernel/intern/text.c b/source/blender/blenkernel/intern/text.c index 28d68892a2a..60cc029bf6e 100644 --- a/source/blender/blenkernel/intern/text.c +++ b/source/blender/blenkernel/intern/text.c @@ -479,17 +479,11 @@ void unlink_text(Main *bmain, Text *text) bScreen *scr; ScrArea *area; SpaceLink *sl; - Scene *scene; Object *ob; bController *cont; bConstraint *con; short update; - /* dome */ - for(scene=bmain->scene.first; scene; scene=scene->id.next) - if(scene->r.dometext == text) - scene->r.dometext = NULL; - for(ob=bmain->object.first; ob; ob=ob->id.next) { /* game controllers */ for(cont=ob->controllers.first; cont; cont=cont->next) { diff --git a/source/blender/blenkernel/intern/tracking.c b/source/blender/blenkernel/intern/tracking.c index 20871dc5b52..4b5dc917cb6 100644 --- a/source/blender/blenkernel/intern/tracking.c +++ b/source/blender/blenkernel/intern/tracking.c @@ -128,17 +128,17 @@ void BKE_tracking_clamp_track(MovieTrackingTrack *track, int event) } else if(event==CLAMP_PAT_POS) { float dim[2]; - sub_v2_v2v2(dim, track->pat_max, pat_min); + sub_v2_v2v2(dim, track->pat_max, track->pat_min); for(a= 0; a<2; a++) { /* pattern shouldn't be moved outside of search */ if(pat_min[a] < track->search_min[a]) { track->pat_min[a]= track->search_min[a] - (pat_min[a] - track->pat_min[a]); - track->pat_max[a]= (pat_min[a] - track->pat_min[a])+dim[a]; + track->pat_max[a]= track->pat_min[a] + dim[a]; } if(track->pat_max[a] > track->search_max[a]) { track->pat_max[a]= track->search_max[a] - (pat_max[a] - track->pat_max[a]); - track->pat_min[a]= track->pat_max[a]-dim[a] - (pat_min[a] - track->pat_min[a]); + track->pat_min[a]= track->pat_max[a] - dim[a]; } } } @@ -248,7 +248,8 @@ MovieTrackingTrack *BKE_tracking_add_track(MovieTracking *tracking, float x, flo BKE_tracking_insert_marker(track, &marker); - BKE_tracking_clamp_track(track, CLAMP_PYRAMID_LEVELS); + if(track->tracker == TRACKER_KLT) + BKE_tracking_clamp_track(track, CLAMP_PYRAMID_LEVELS); BLI_addtail(&tracking->tracks, track); BKE_track_unique_name(tracking, track); @@ -790,7 +791,7 @@ MovieTrackingContext *BKE_tracking_context_new(MovieClip *clip, MovieClipUser *u patx= (int)((track->pat_max[0]-track->pat_min[0])*width); paty= (int)((track->pat_max[1]-track->pat_min[1])*height); - if(track->tracker==TRACKER_KLT) { + if(ELEM(track->tracker, TRACKER_KLT, TRACKER_HYBRID)) { float search_size_x= (track->search_max[0]-track->search_min[0])*width; float search_size_y= (track->search_max[1]-track->search_min[1])*height; float pattern_size_x= (track->pat_max[0]-track->pat_min[0])*width; @@ -808,7 +809,10 @@ MovieTrackingContext *BKE_tracking_context_new(MovieClip *clip, MovieClipUser *u * than the search size */ int level= MIN2(track->pyramid_levels, max_pyramid_levels); - track_context.region_tracker= libmv_regionTrackerNew(100, level, MAX2(wndx, wndy)); + if(track->tracker==TRACKER_KLT) + track_context.region_tracker= libmv_pyramidRegionTrackerNew(100, level, MAX2(wndx, wndy)); + else + track_context.region_tracker= libmv_hybridRegionTrackerNew(100, MAX2(wndx, wndy)); } else if(track->tracker==TRACKER_SAD) { track_context.pattern_size= MAX2(patx, paty); @@ -1180,7 +1184,7 @@ int BKE_tracking_next(MovieTrackingContext *context) marker->pos[1]<margin[1] || marker->pos[1]>1.0f-margin[1]) { onbound= 1; } - else if(track->tracker==TRACKER_KLT) { + else if(ELEM(track->tracker, TRACKER_KLT, TRACKER_HYBRID)) { float *patch_new; if(need_readjust) { diff --git a/source/blender/blenlib/intern/bpath.c b/source/blender/blenlib/intern/bpath.c index 8ad6cfc7cdf..140e1752648 100644 --- a/source/blender/blenlib/intern/bpath.c +++ b/source/blender/blenlib/intern/bpath.c @@ -56,6 +56,7 @@ #include "DNA_image_types.h" #include "DNA_mesh_types.h" #include "DNA_modifier_types.h" +#include "DNA_movieclip_types.h" #include "DNA_object_fluidsim.h" #include "DNA_object_force.h" #include "DNA_object_types.h" @@ -542,6 +543,12 @@ void bpath_traverse_id(Main *bmain, ID *id, BPathVisitor visit_cb, const int fla } } break; + case ID_MC: + { + MovieClip *clip= (MovieClip *)id; + rewrite_path_fixed(clip->name, visit_cb, absbase, bpath_user_data); + } + break; default: /* Nothing to do for other IDs that don't contain file paths. */ break; diff --git a/source/blender/blenlib/intern/math_matrix.c b/source/blender/blenlib/intern/math_matrix.c index b2c9a5706a3..37cb49fc17b 100644 --- a/source/blender/blenlib/intern/math_matrix.c +++ b/source/blender/blenlib/intern/math_matrix.c @@ -1121,18 +1121,18 @@ void blend_m3_m3m3(float out[][3], float dst[][3], float src[][3], const float s { float srot[3][3], drot[3][3]; float squat[4], dquat[4], fquat[4]; - float ssize[3], dsize[3], fsize[3]; + float sscale[3], dscale[3], fsize[3]; float rmat[3][3], smat[3][3]; - mat3_to_rot_size(drot, dsize, dst); - mat3_to_rot_size(srot, ssize, src); + mat3_to_rot_size(drot, dscale, dst); + mat3_to_rot_size(srot, sscale, src); mat3_to_quat(dquat, drot); mat3_to_quat(squat, srot); /* do blending */ interp_qt_qtqt(fquat, dquat, squat, srcweight); - interp_v3_v3v3(fsize, dsize, ssize, srcweight); + interp_v3_v3v3(fsize, dscale, sscale, srcweight); /* compose new matrix */ quat_to_mat3(rmat,fquat); @@ -1145,10 +1145,10 @@ void blend_m4_m4m4(float out[][4], float dst[][4], float src[][4], const float s float sloc[3], dloc[3], floc[3]; float srot[3][3], drot[3][3]; float squat[4], dquat[4], fquat[4]; - float ssize[3], dsize[3], fsize[3]; + float sscale[3], dscale[3], fsize[3]; - mat4_to_loc_rot_size(dloc, drot, dsize, dst); - mat4_to_loc_rot_size(sloc, srot, ssize, src); + mat4_to_loc_rot_size(dloc, drot, dscale, dst); + mat4_to_loc_rot_size(sloc, srot, sscale, src); mat3_to_quat(dquat, drot); mat3_to_quat(squat, srot); @@ -1156,7 +1156,7 @@ void blend_m4_m4m4(float out[][4], float dst[][4], float src[][4], const float s /* do blending */ interp_v3_v3v3(floc, dloc, sloc, srcweight); interp_qt_qtqt(fquat, dquat, squat, srcweight); - interp_v3_v3v3(fsize, dsize, ssize, srcweight); + interp_v3_v3v3(fsize, dscale, sscale, srcweight); /* compose new matrix */ loc_quat_size_to_mat4(out, floc, fquat, fsize); diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 090e32ce5fe..a8fd617ef5b 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -48,6 +48,9 @@ #include "BLI_winstuff.h" #endif +/* allow readfile to use deprecated functionality */ +#define DNA_DEPRECATED_ALLOW + #include "DNA_anim_types.h" #include "DNA_armature_types.h" #include "DNA_actuator_types.h" @@ -108,7 +111,7 @@ #include "BKE_context.h" #include "BKE_curve.h" #include "BKE_deform.h" -#include "BKE_effect.h" /* give_parteff */ +#include "BKE_effect.h" #include "BKE_fcurve.h" #include "BKE_global.h" // for G #include "BKE_group.h" @@ -7163,6 +7166,40 @@ static void do_versions_gpencil_2_50(Main *main, bScreen *screen) } } +/* deprecated, only keep this for readfile.c */ +static PartEff *do_version_give_parteff_245(Object *ob) +{ + PartEff *paf; + + paf= ob->effect.first; + while(paf) { + if(paf->type==EFF_PARTICLE) return paf; + paf= paf->next; + } + return NULL; +} +static void do_version_free_effect_245(Effect *eff) +{ + PartEff *paf; + + if(eff->type==EFF_PARTICLE) { + paf= (PartEff *)eff; + if(paf->keys) MEM_freeN(paf->keys); + } + MEM_freeN(eff); +} +static void do_version_free_effects_245(ListBase *lb) +{ + Effect *eff; + + eff= lb->first; + while(eff) { + BLI_remlink(lb, eff); + do_version_free_effect_245(eff); + eff= lb->first; + } +} + static void do_version_mtex_factor_2_50(MTex **mtex_array, short idtype) { MTex *mtex; @@ -7738,7 +7775,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main) Object *ob = main->object.first; PartEff *paf; while (ob) { - paf = give_parteff(ob); + paf = do_version_give_parteff_245(ob); if (paf) { if (paf->staticstep == 0) { paf->staticstep= 5; @@ -8754,11 +8791,6 @@ static void do_versions(FileData *fd, Library *lib, Main *main) View3D *v3d= (View3D *)sl; if(v3d->twtype==0) v3d->twtype= V3D_MANIP_TRANSLATE; } - else if(sl->spacetype==SPACE_TIME) { - SpaceTime *stime= (SpaceTime *)sl; - if(stime->redraws==0) - stime->redraws= TIME_ALL_3D_WIN|TIME_ALL_ANIM_WIN; - } } } } @@ -8947,7 +8979,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main) } } - paf = give_parteff(ob); + paf = do_version_give_parteff_245(ob); if (paf) { if(paf->disp == 0) paf->disp = 100; @@ -9955,7 +9987,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main) } /* convert old particles to new system */ - if((paf = give_parteff(ob))) { + if((paf = do_version_give_parteff_245(ob))) { ParticleSystem *psys; ModifierData *md; ParticleSystemModifierData *psmd; @@ -10068,7 +10100,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main) part->type = PART_FLUID; } - free_effects(&ob->effect); + do_version_free_effects_245(&ob->effect); printf("Old particle system converted to new system.\n"); } @@ -10482,13 +10514,6 @@ static void do_versions(FileData *fd, Library *lib, Main *main) wrld->maxphystep = 5; } } - - if (main->versionfile < 249) { - Scene *sce; - for (sce= main->scene.first; sce; sce= sce->id.next) - sce->r.renderer= 0; - - } // correct introduce of seed for wind force if (main->versionfile < 249 && main->subversionfile < 1) { @@ -12699,10 +12724,10 @@ static void do_versions(FileData *fd, Library *lib, Main *main) if ( (ob->dsize[i] == 0.0f) || /* simple case, user never touched dsize */ (ob->size[i] == 0.0f)) /* cant scale the dsize to give a non zero result, so fallback to 1.0f */ { - ob->dsize[i]= 1.0f; + ob->dscale[i]= 1.0f; } else { - ob->size[i]= (ob->size[i] + ob->dsize[i]) / ob->size[i]; + ob->dscale[i]= (ob->size[i] + ob->dsize[i]) / ob->size[i]; } } } @@ -13530,7 +13555,7 @@ static void expand_object(FileData *fd, Main *mainvar, Object *ob) expand_doit(fd, mainvar, ob->mat[a]); } - paf = give_parteff(ob); + paf = do_version_give_parteff_245(ob); if (paf && paf->group) expand_doit(fd, mainvar, paf->group); diff --git a/source/blender/editors/gpencil/drawgpencil.c b/source/blender/editors/gpencil/drawgpencil.c index d40831f9e87..cf3961e0820 100644 --- a/source/blender/editors/gpencil/drawgpencil.c +++ b/source/blender/editors/gpencil/drawgpencil.c @@ -703,7 +703,7 @@ void draw_gpencil_2dimage (bContext *C, ImBuf *ibuf) dflag |= GP_DRAWDATA_ONLYV2D|GP_DRAWDATA_IEDITHACK; } break; - +#if 0 /* removed since 2.5x, needs to be added back */ case SPACE_SEQ: /* sequence */ { SpaceSeq *sseq= (SpaceSeq *)sa->spacedata.first; @@ -728,7 +728,7 @@ void draw_gpencil_2dimage (bContext *C, ImBuf *ibuf) dflag |= GP_DRAWDATA_ONLYI2D; } break; - +#endif default: /* for spacetype not yet handled */ offsx= 0; offsy= 0; diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c index c875f887f84..8afd4e64b03 100644 --- a/source/blender/editors/interface/interface_templates.c +++ b/source/blender/editors/interface/interface_templates.c @@ -1223,7 +1223,7 @@ void uiTemplatePreview(uiLayout *layout, ID *id, int show_buttons, ID *parent, M uiDefButS(block, ROW, B_MATPRV, IFACE_("World"), 0, 0,UI_UNIT_X*10,UI_UNIT_Y, pr_texture, 10, TEX_PR_OTHER, 0, 0, ""); uiDefButS(block, ROW, B_MATPRV, IFACE_("Both"), 0, 0,UI_UNIT_X*10,UI_UNIT_Y, pr_texture, 10, TEX_PR_BOTH, 0, 0, ""); - /* Alpha buton for texture preview */ + /* Alpha button for texture preview */ if(*pr_texture!=TEX_PR_OTHER) { row = uiLayoutRow(layout, 0); uiItemR(row, &texture_ptr, "use_preview_alpha", 0, NULL, ICON_NONE); diff --git a/source/blender/editors/mesh/mesh_data.c b/source/blender/editors/mesh/mesh_data.c index 9749714791d..a1e3b84f898 100644 --- a/source/blender/editors/mesh/mesh_data.c +++ b/source/blender/editors/mesh/mesh_data.c @@ -601,7 +601,7 @@ void MESH_OT_drop_named_image(wmOperatorType *ot) { /* identifiers */ ot->name= "Assign Image to UV Map"; - ot->description= "Assigns Image to active UV Map, or creates a UV Map"; + ot->description= "Assign Image to active UV Map, or create an UV Map"; ot->idname= "MESH_OT_drop_named_image"; diff --git a/source/blender/editors/mesh/meshtools.c b/source/blender/editors/mesh/meshtools.c index c74a994b9b6..4fcc2071d26 100644 --- a/source/blender/editors/mesh/meshtools.c +++ b/source/blender/editors/mesh/meshtools.c @@ -548,7 +548,6 @@ int join_mesh_exec(bContext *C, wmOperator *op) MEM_freeN(matar); ob->totcol= me->totcol= totcol; - ob->colbits= 0; if (matmap) MEM_freeN(matmap); diff --git a/source/blender/editors/metaball/mball_edit.c b/source/blender/editors/metaball/mball_edit.c index f378fac6ac7..dfb990d9d49 100644 --- a/source/blender/editors/metaball/mball_edit.c +++ b/source/blender/editors/metaball/mball_edit.c @@ -40,6 +40,7 @@ #include "BLI_rand.h" #include "BLI_utildefines.h" +#include "DNA_defs.h" #include "DNA_meta_types.h" #include "DNA_object_types.h" #include "DNA_scene_types.h" diff --git a/source/blender/editors/object/object_bake.c b/source/blender/editors/object/object_bake.c index 6de4fa5476c..16198e9e50e 100644 --- a/source/blender/editors/object/object_bake.c +++ b/source/blender/editors/object/object_bake.c @@ -1262,9 +1262,7 @@ static int test_bake_internal(bContext *C, ReportList *reports) { Scene *scene= CTX_data_scene(C); - if(scene->r.renderer!=R_INTERN) { - BKE_report(reports, RPT_ERROR, "Bake only supported for Internal Renderer"); - } else if((scene->r.bake_flag & R_BAKE_TO_ACTIVE) && CTX_data_active_object(C)==NULL) { + if((scene->r.bake_flag & R_BAKE_TO_ACTIVE) && CTX_data_active_object(C)==NULL) { BKE_report(reports, RPT_ERROR, "No active object"); } else if(scene->r.bake_mode==RE_BAKE_AO && scene->world==NULL) { diff --git a/source/blender/editors/object/object_edit.c b/source/blender/editors/object/object_edit.c index 6392672da26..9ace0f1e40b 100644 --- a/source/blender/editors/object/object_edit.c +++ b/source/blender/editors/object/object_edit.c @@ -1143,7 +1143,7 @@ static void copy_attr(Main *bmain, Scene *scene, View3D *v3d, short event) } else if(event==3) { /* size */ copy_v3_v3(base->object->size, ob->size); - copy_v3_v3(base->object->dsize, ob->dsize); + copy_v3_v3(base->object->dscale, ob->dscale); } else if(event==4) { /* drawtype */ base->object->dt= ob->dt; diff --git a/source/blender/editors/object/object_transform.c b/source/blender/editors/object/object_transform.c index 9d8112c323a..d1e4568b1cc 100644 --- a/source/blender/editors/object/object_transform.c +++ b/source/blender/editors/object/object_transform.c @@ -189,15 +189,15 @@ static void object_clear_scale(Object *ob) { /* clear scale factors which are not locked */ if ((ob->protectflag & OB_LOCK_SCALEX)==0) { - ob->dsize[0]= 1.0f; + ob->dscale[0]= 1.0f; ob->size[0]= 1.0f; } if ((ob->protectflag & OB_LOCK_SCALEY)==0) { - ob->dsize[1]= 1.0f; + ob->dscale[1]= 1.0f; ob->size[1]= 1.0f; } if ((ob->protectflag & OB_LOCK_SCALEZ)==0) { - ob->dsize[2]= 1.0f; + ob->dscale[2]= 1.0f; ob->size[2]= 1.0f; } } diff --git a/source/blender/editors/space_clip/clip_ops.c b/source/blender/editors/space_clip/clip_ops.c index 7b1dbc82e82..491014357e4 100644 --- a/source/blender/editors/space_clip/clip_ops.c +++ b/source/blender/editors/space_clip/clip_ops.c @@ -929,7 +929,7 @@ void CLIP_OT_rebuild_proxy(wmOperatorType *ot) /* identifiers */ ot->name= "Rebuild Proxy and Timecode Indices"; ot->idname= "CLIP_OT_rebuild_proxy"; - ot->description= "Rebuild all selected proxies and timecode indeces in the background"; + ot->description= "Rebuild all selected proxies and timecode indices in the background"; /* api callbacks */ ot->exec= clip_rebuild_proxy_exec; diff --git a/source/blender/editors/space_clip/tracking_ops.c b/source/blender/editors/space_clip/tracking_ops.c index 89c58ab5d81..3d004ab73da 100644 --- a/source/blender/editors/space_clip/tracking_ops.c +++ b/source/blender/editors/space_clip/tracking_ops.c @@ -1209,11 +1209,16 @@ static int track_count_markers(SpaceClip *sc, MovieClip *clip) { int tot= 0; MovieTrackingTrack *track; + int framenr= sc->user.framenr; track= clip->tracking.tracks.first; while(track) { - if(TRACK_VIEW_SELECTED(sc, track) && (track->flag&TRACK_LOCKED)==0) - tot++; + if(TRACK_VIEW_SELECTED(sc, track) && (track->flag&TRACK_LOCKED)==0) { + MovieTrackingMarker *marker= BKE_tracking_exact_marker(track, framenr); + + if (!marker || (marker->flag&MARKER_DISABLED) == 0) + tot++; + } track= track->next; } diff --git a/source/blender/editors/space_outliner/outliner_select.c b/source/blender/editors/space_outliner/outliner_select.c index 42fe14cd59c..aa50b3d5154 100644 --- a/source/blender/editors/space_outliner/outliner_select.c +++ b/source/blender/editors/space_outliner/outliner_select.c @@ -237,7 +237,6 @@ static int tree_element_active_material(bContext *C, Scene *scene, SpaceOops *so if(set) { ob->actcol= te->index+1; ob->matbits[te->index]= 1; // make ob material active too - ob->colbits |= (1<<te->index); } else { if(ob->actcol == te->index+1) @@ -249,7 +248,6 @@ static int tree_element_active_material(bContext *C, Scene *scene, SpaceOops *so if(set) { ob->actcol= te->index+1; ob->matbits[te->index]= 0; // make obdata material active too - ob->colbits &= ~(1<<te->index); } else { if(ob->actcol == te->index+1) diff --git a/source/blender/editors/space_sequencer/space_sequencer.c b/source/blender/editors/space_sequencer/space_sequencer.c index bf268b0e304..303f6912ff1 100644 --- a/source/blender/editors/space_sequencer/space_sequencer.c +++ b/source/blender/editors/space_sequencer/space_sequencer.c @@ -105,7 +105,6 @@ static SpaceLink *sequencer_new(const bContext *C) sseq= MEM_callocN(sizeof(SpaceSeq), "initsequencer"); sseq->spacetype= SPACE_SEQ; - sseq->zoom= 4; sseq->chanshown = 0; sseq->view = SEQ_VIEW_SEQUENCE; sseq->mainb = SEQ_DRAW_IMG_IMBUF; diff --git a/source/blender/editors/space_time/space_time.c b/source/blender/editors/space_time/space_time.c index b3baccde5c9..65ef3273e30 100644 --- a/source/blender/editors/space_time/space_time.c +++ b/source/blender/editors/space_time/space_time.c @@ -580,7 +580,6 @@ static SpaceLink *time_new(const bContext *C) stime= MEM_callocN(sizeof(SpaceTime), "inittime"); stime->spacetype= SPACE_TIME; - stime->redraws= TIME_ALL_3D_WIN|TIME_ALL_ANIM_WIN; // XXX: depreceated stime->flag |= TIME_DRAWFRAMES; /* header */ diff --git a/source/blender/editors/transform/transform.h b/source/blender/editors/transform/transform.h index 9bc62fdf952..f999cd2c669 100644 --- a/source/blender/editors/transform/transform.h +++ b/source/blender/editors/transform/transform.h @@ -133,7 +133,7 @@ typedef struct TransDataExtension { // float drotAngle; /* Initial object drotAngle, TODO: not yet implimented */ // float drotAxis[3]; /* Initial object drotAxis, TODO: not yet implimented */ float dquat[4]; /* Initial object dquat */ - float dsize[3]; /* Initial object dsize */ + float dscale[3]; /* Initial object dscale */ float *rot; /* Rotation of the data to transform (Faculative) */ float irot[3]; /* Initial rotation */ float *quat; /* Rotation quaternion of the data to transform (Faculative) */ diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c index e4db5562ddf..ff081f64940 100644 --- a/source/blender/editors/transform/transform_conversions.c +++ b/source/blender/editors/transform/transform_conversions.c @@ -4443,7 +4443,7 @@ static void ObjectToTransData(TransInfo *t, TransData *td, Object *ob) td->ext->size = ob->size; copy_v3_v3(td->ext->isize, ob->size); - copy_v3_v3(td->ext->dsize, ob->dsize); + copy_v3_v3(td->ext->dscale, ob->dscale); copy_v3_v3(td->center, ob->obmat[3]); diff --git a/source/blender/imbuf/intern/allocimbuf.c b/source/blender/imbuf/intern/allocimbuf.c index d08c86aacbc..d85251a8ccb 100644 --- a/source/blender/imbuf/intern/allocimbuf.c +++ b/source/blender/imbuf/intern/allocimbuf.c @@ -1,7 +1,4 @@ /* - * allocimbuf.c - * - * * ***** BEGIN GPL LICENSE BLOCK ***** * * This program is free software; you can redistribute it and/or @@ -47,8 +44,8 @@ #include "imbuf.h" -#include "MEM_CacheLimiterC-Api.h" #include "MEM_guardedalloc.h" +#include "MEM_CacheLimiterC-Api.h" void imb_freemipmapImBuf(ImBuf *ibuf) { diff --git a/source/blender/imbuf/intern/thumbs.c b/source/blender/imbuf/intern/thumbs.c index 41278e8381a..19eb917469d 100644 --- a/source/blender/imbuf/intern/thumbs.c +++ b/source/blender/imbuf/intern/thumbs.c @@ -309,7 +309,7 @@ ImBuf* IMB_thumb_create(const char* path, ThumbSize size, ThumbSource source, Im if (img != NULL) { stat(path, &info); - BLI_snprintf(mtime, sizeof(mtime), "%ld", info.st_mtime); + BLI_snprintf(mtime, sizeof(mtime), "%ld", (long int)info.st_mtime); BLI_snprintf(cwidth, sizeof(cwidth), "%d", img->x); BLI_snprintf(cheight, sizeof(cheight), "%d", img->y); } @@ -327,7 +327,7 @@ ImBuf* IMB_thumb_create(const char* path, ThumbSize size, ThumbSource source, Im IMB_free_anim(anim); } stat(path, &info); - BLI_snprintf(mtime, sizeof(mtime), "%ld", info.st_mtime); + BLI_snprintf(mtime, sizeof(mtime), "%ld", (long int)info.st_mtime); } if (!img) return NULL; diff --git a/source/blender/makesdna/DNA_action_types.h b/source/blender/makesdna/DNA_action_types.h index b198231df3a..7dce437e543 100644 --- a/source/blender/makesdna/DNA_action_types.h +++ b/source/blender/makesdna/DNA_action_types.h @@ -582,7 +582,7 @@ typedef struct SpaceAction { short blockhandler[8]; - View2D v2d; /* depricated, copied to region */ + View2D v2d DNA_DEPRECATED; /* copied to region */ bAction *action; /* the currently active action */ bDopeSheet ads; /* the currently active context (when not showing action) */ diff --git a/source/blender/makesdna/DNA_camera_types.h b/source/blender/makesdna/DNA_camera_types.h index 292f920da66..ff04a7fd366 100644 --- a/source/blender/makesdna/DNA_camera_types.h +++ b/source/blender/makesdna/DNA_camera_types.h @@ -31,6 +31,8 @@ * \ingroup DNA */ +#include "DNA_defs.h" + #include "DNA_ID.h" #ifdef __cplusplus @@ -59,7 +61,7 @@ typedef struct Camera { The name was not changed so that no other files need to be modified */ float YF_dofdist; - struct Ipo *ipo; // XXX depreceated... old animation system + struct Ipo *ipo DNA_DEPRECATED; /* old animation system, deprecated for 2.5 */ struct Object *dof_ob; diff --git a/source/blender/makesdna/DNA_constraint_types.h b/source/blender/makesdna/DNA_constraint_types.h index c85ef72d337..4aff540a948 100644 --- a/source/blender/makesdna/DNA_constraint_types.h +++ b/source/blender/makesdna/DNA_constraint_types.h @@ -33,6 +33,7 @@ * \ingroup DNA */ +#include "DNA_defs.h" #include "DNA_ID.h" #include "DNA_listBase.h" @@ -66,7 +67,7 @@ typedef struct bConstraint { float headtail; /* Point along subtarget bone where the actual target is. 0=head (default for all), 1=tail*/ int pad; - struct Ipo *ipo; /* local influence ipo or driver */ // XXX depreceated for 2.5... old animation system hack + struct Ipo *ipo DNA_DEPRECATED; /* local influence ipo or driver */ /* old animation system, deprecated for 2.5 */ /* below are readonly fields that are set at runtime by the solver for use in the GE (only IK atm) */ float lin_error; /* residual error on constraint expressed in blender unit*/ diff --git a/source/blender/makesdna/DNA_curve_types.h b/source/blender/makesdna/DNA_curve_types.h index 236d6dd4732..8214a32e9fb 100644 --- a/source/blender/makesdna/DNA_curve_types.h +++ b/source/blender/makesdna/DNA_curve_types.h @@ -31,6 +31,7 @@ * \ingroup DNA */ +#include "DNA_defs.h" #include "DNA_listBase.h" #include "DNA_vec_types.h" #include "DNA_ID.h" @@ -174,7 +175,7 @@ typedef struct Curve { EditNurb *editnurb; /* edited data, not in file, use pointer so we can check for it */ struct Object *bevobj, *taperobj, *textoncurve; - struct Ipo *ipo; // XXX depreceated... old animation system + struct Ipo *ipo DNA_DEPRECATED; /* old animation system, deprecated for 2.5 */ Path *path; struct Key *key; struct Material **mat; diff --git a/source/blender/makesdna/DNA_defs.h b/source/blender/makesdna/DNA_defs.h new file mode 100644 index 00000000000..88401d3d2d4 --- /dev/null +++ b/source/blender/makesdna/DNA_defs.h @@ -0,0 +1,45 @@ +/* + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * Contributor(s): Campbell Barton + * + * ***** END GPL LICENSE BLOCK ***** + */ + +#ifndef DNA_DEFS_H +#define DNA_DEFS_H + +/** \file DNA_defs.h + * \ingroup DNA + */ + +/* makesdna ignores */ +#ifdef DNA_DEPRECATED_ALLOW + /* allow use of deprecated items */ +# define DNA_DEPRECATED +#else +# ifndef DNA_DEPRECATED +# ifdef __GNUC__ +# define DNA_DEPRECATED __attribute__ ((deprecated)) +# else + /* TODO, msvc & others */ +# define DNA_DEPRECATED +# endif +# endif +#endif + +#endif /* DNA_DEFS_H */ diff --git a/source/blender/makesdna/DNA_key_types.h b/source/blender/makesdna/DNA_key_types.h index f8b48a2c60f..ee5cf96f110 100644 --- a/source/blender/makesdna/DNA_key_types.h +++ b/source/blender/makesdna/DNA_key_types.h @@ -31,6 +31,7 @@ * \ingroup DNA */ +#include "DNA_defs.h" #include "DNA_listBase.h" #include "DNA_ID.h" @@ -64,10 +65,10 @@ typedef struct Key { KeyBlock *refkey; char elemstr[32]; int elemsize; - float curval; + float curval DNA_DEPRECATED; ListBase block; - struct Ipo *ipo; // XXX depreceated... old animation system + struct Ipo *ipo DNA_DEPRECATED; /* old animation system, deprecated for 2.5 */ ID *from; @@ -98,4 +99,3 @@ typedef struct Key { #define KEYBLOCK_LOCKED (1<<2) #define KEYBLOCK_MISSING (1<<3) /*temporary flag*/ #endif - diff --git a/source/blender/makesdna/DNA_lamp_types.h b/source/blender/makesdna/DNA_lamp_types.h index 91930f5766e..1c22583b82c 100644 --- a/source/blender/makesdna/DNA_lamp_types.h +++ b/source/blender/makesdna/DNA_lamp_types.h @@ -31,6 +31,7 @@ * \ingroup DNA */ +#include "DNA_defs.h" #include "DNA_ID.h" #ifndef MAX_MTEX @@ -97,7 +98,7 @@ typedef struct Lamp { short sky_colorspace; char pad4[6]; - struct Ipo *ipo; // XXX depreceated... old animation system + struct Ipo *ipo DNA_DEPRECATED; /* old animation system, deprecated for 2.5 */ struct MTex *mtex[18]; /* MAX_MTEX */ short pr_texture, use_nodes; char pad6[4]; diff --git a/source/blender/makesdna/DNA_lattice_types.h b/source/blender/makesdna/DNA_lattice_types.h index f694e611089..baa2f5f911a 100644 --- a/source/blender/makesdna/DNA_lattice_types.h +++ b/source/blender/makesdna/DNA_lattice_types.h @@ -31,6 +31,7 @@ * \ingroup DNA */ +#include "DNA_defs.h" #include "DNA_ID.h" struct AnimData; @@ -60,7 +61,7 @@ typedef struct Lattice { struct BPoint *def; - struct Ipo *ipo; /* XXX: depreceated... old animation system */ + struct Ipo *ipo DNA_DEPRECATED; /* old animation system, deprecated for 2.5 */ struct Key *key; struct MDeformVert *dvert; diff --git a/source/blender/makesdna/DNA_material_types.h b/source/blender/makesdna/DNA_material_types.h index ea168d953bc..3e1cdd08086 100644 --- a/source/blender/makesdna/DNA_material_types.h +++ b/source/blender/makesdna/DNA_material_types.h @@ -31,6 +31,7 @@ * \ingroup DNA */ +#include "DNA_defs.h" #include "DNA_ID.h" #include "DNA_listBase.h" @@ -150,7 +151,7 @@ typedef struct Material { struct MTex *mtex[18]; /* MAX_MTEX */ struct bNodeTree *nodetree; - struct Ipo *ipo; // XXX depreceated... old animation system + struct Ipo *ipo DNA_DEPRECATED; /* old animation system, deprecated for 2.5 */ struct Group *group; /* light group */ struct PreviewImage * preview; diff --git a/source/blender/makesdna/DNA_mesh_types.h b/source/blender/makesdna/DNA_mesh_types.h index 125c18fa7c4..443bdfe8dd6 100644 --- a/source/blender/makesdna/DNA_mesh_types.h +++ b/source/blender/makesdna/DNA_mesh_types.h @@ -31,6 +31,7 @@ * \ingroup DNA */ +#include "DNA_defs.h" #include "DNA_listBase.h" #include "DNA_ID.h" #include "DNA_customdata_types.h" @@ -62,7 +63,7 @@ typedef struct Mesh { struct BoundBox *bb; - struct Ipo *ipo; // XXX depreceated... old animation system + struct Ipo *ipo DNA_DEPRECATED; /* old animation system, deprecated for 2.5 */ struct Key *key; struct Material **mat; @@ -109,13 +110,13 @@ typedef struct Mesh { short texflag, drawflag; short smoothresh, flag; - short subdiv, subdivr; - char subsurftype; /* only kept for backwards compat, not used anymore */ + short subdiv DNA_DEPRECATED, subdivr DNA_DEPRECATED; + char subsurftype DNA_DEPRECATED; /* only kept for backwards compat, not used anymore */ char editflag; short totcol; - struct Multires *mr; /* deprecated multiresolution modeling data, only keep for loading old files */ + struct Multires *mr DNA_DEPRECATED; /* deprecated multiresolution modeling data, only keep for loading old files */ struct PartialVisibility *pv; } Mesh; diff --git a/source/blender/makesdna/DNA_meta_types.h b/source/blender/makesdna/DNA_meta_types.h index 12345ede3c4..1ce90e7d526 100644 --- a/source/blender/makesdna/DNA_meta_types.h +++ b/source/blender/makesdna/DNA_meta_types.h @@ -70,7 +70,7 @@ typedef struct MetaBall { ListBase elems; ListBase disp; ListBase *editelems; /* not saved in files, note we use pointer for editmode check */ - struct Ipo *ipo; // XXX... depreceated (old animation system) + struct Ipo *ipo DNA_DEPRECATED; /* old animation system, deprecated for 2.5 */ /* material of the mother ball will define the material used of all others */ struct Material **mat; diff --git a/source/blender/makesdna/DNA_modifier_types.h b/source/blender/makesdna/DNA_modifier_types.h index 77ee74c0420..0ace54fdb3a 100644 --- a/source/blender/makesdna/DNA_modifier_types.h +++ b/source/blender/makesdna/DNA_modifier_types.h @@ -25,6 +25,7 @@ * \ingroup DNA */ +#include "DNA_defs.h" #include "DNA_listBase.h" @@ -241,7 +242,7 @@ typedef struct ArrayModifierData { typedef struct MirrorModifierData { ModifierData modifier; - short axis; /* deprecated, use flag instead */ + short axis DNA_DEPRECATED; /* deprecated, use flag instead */ short flag; float tolerance; struct Object *mirror_ob; diff --git a/source/blender/makesdna/DNA_node_types.h b/source/blender/makesdna/DNA_node_types.h index 8f22b1b31cb..845d8a87c5b 100644 --- a/source/blender/makesdna/DNA_node_types.h +++ b/source/blender/makesdna/DNA_node_types.h @@ -91,7 +91,7 @@ typedef struct bNodeSocket { /* internal data to retrieve relations and groups */ int own_index; /* group socket identifiers, to find matching pairs after reading files */ - int to_index; /* XXX deprecated, only used for restoring old group node links */ + int to_index DNA_DEPRECATED; /* XXX deprecated, only used for restoring old group node links */ struct bNodeSocket *groupsock; struct bNodeLink *link; /* a link pointer, set in ntreeUpdateTree */ diff --git a/source/blender/makesdna/DNA_object_types.h b/source/blender/makesdna/DNA_object_types.h index e7061544ebd..e4237197fca 100644 --- a/source/blender/makesdna/DNA_object_types.h +++ b/source/blender/makesdna/DNA_object_types.h @@ -32,6 +32,7 @@ * \brief Object is a sort of wrapper for general info. */ +#include "DNA_defs.h" #include "DNA_listBase.h" #include "DNA_ID.h" #include "DNA_action_types.h" /* bAnimVizSettings */ @@ -110,10 +111,10 @@ typedef struct Object { /* if ob->proxy (or proxy_group), this object is proxy for object ob->proxy */ /* proxy_from is set in target back to the proxy. */ struct Object *proxy, *proxy_group, *proxy_from; - struct Ipo *ipo; // XXX depreceated... old animation system + struct Ipo *ipo DNA_DEPRECATED; /* old animation system, deprecated for 2.5 */ /* struct Path *path; */ struct BoundBox *bb; - struct bAction *action; // XXX depreceated... old animation system + struct bAction *action DNA_DEPRECATED; // XXX depreceated... old animation system struct bAction *poselib; struct bPose *pose; /* pose data, armature objects only */ void *data; /* pointer to objects data - an 'ID' or NULL */ @@ -123,8 +124,8 @@ typedef struct Object { bAnimVizSettings avs; /* settings for visualisation of object-transform animation */ bMotionPath *mpath; /* motion path cache for this object */ - ListBase constraintChannels; // XXX depreceated... old animation system - ListBase effect; // XXX depreceated... keep for readfile + ListBase constraintChannels DNA_DEPRECATED; // XXX depreceated... old animation system + ListBase effect DNA_DEPRECATED; // XXX depreceated... keep for readfile ListBase disp; /* list of DispList, used by lattice, metaballs curve & surfaces */ ListBase defbase; /* list of bDeformGroup (vertex groups) names and flag only */ ListBase modifiers; /* list of ModifierData structures */ @@ -140,7 +141,9 @@ typedef struct Object { /* rot en drot have to be together! (transform('r' en 's')) */ float loc[3], dloc[3], orig[3]; - float size[3], dsize[3]; /* scale and delta scale */ + float size[3]; /* scale infact */ + float dsize[3] DNA_DEPRECATED ; /* DEPRECATED, 2.60 and older only */ + float dscale[3]; /* ack!, changing */ float rot[3], drot[3]; /* euler rotation */ float quat[4], dquat[4]; /* quaternion rotation */ float rotAxis[3], drotAxis[3]; /* axis angle rotation - axis part */ @@ -158,8 +161,10 @@ typedef struct Object { unsigned int lay; /* copy of Base's layer in the scene */ + int pad6; + short flag; /* copy of Base */ - short colbits; /* deprecated */ + short colbits DNA_DEPRECATED; /* deprecated */ short transflag, protectflag; /* transformation settings and transform locks */ short trackflag, upflag; @@ -229,8 +234,8 @@ typedef struct Object { float anisotropicFriction[3]; ListBase constraints; /* object constraints */ - ListBase nlastrips; // XXX depreceated... old animation system - ListBase hooks; // XXX depreceated... old animation system + ListBase nlastrips DNA_DEPRECATED; // XXX depreceated... old animation system + ListBase hooks DNA_DEPRECATED; // XXX depreceated... old animation system ListBase particlesystem; /* particle systems */ struct PartDeflect *pd; /* particle deflector/attractor/collision data */ diff --git a/source/blender/makesdna/DNA_particle_types.h b/source/blender/makesdna/DNA_particle_types.h index 11a6460b1fc..c56d771d3b3 100644 --- a/source/blender/makesdna/DNA_particle_types.h +++ b/source/blender/makesdna/DNA_particle_types.h @@ -32,6 +32,7 @@ * \ingroup DNA */ +#include "DNA_defs.h" #include "DNA_ID.h" #include "DNA_boid_types.h" @@ -225,10 +226,10 @@ typedef struct ParticleSettings { struct Group *dup_group; struct ListBase dupliweights; - struct Group *eff_group; // deprecated + struct Group *eff_group DNA_DEPRECATED; // deprecated struct Object *dup_ob; struct Object *bb_ob; - struct Ipo *ipo; // xxx depreceated... old animation system + struct Ipo *ipo DNA_DEPRECATED; /* old animation system, deprecated for 2.5 */ struct PartDeflect *pd; struct PartDeflect *pd2; } ParticleSettings; diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h index faacde9e44f..1b849754db8 100644 --- a/source/blender/makesdna/DNA_scene_types.h +++ b/source/blender/makesdna/DNA_scene_types.h @@ -31,6 +31,8 @@ * \ingroup DNA */ +#include "DNA_defs.h" + // XXX, temp feature - campbell #define DURIAN_CAMERA_SWITCH @@ -331,11 +333,11 @@ typedef struct RenderData { /** For UR edge rendering: give the edges this color */ float edgeR, edgeG, edgeB; - short fullscreen, xplay, yplay, freqplay; /* standalone player */ // XXX deprecated since 2.5 - short depth, attrib; /* standalone player */ // XXX deprecated since 2.5 + short fullscreen DNA_DEPRECATED, xplay DNA_DEPRECATED, yplay DNA_DEPRECATED, freqplay DNA_DEPRECATED; /* standalone player */ // XXX deprecated since 2.5 + short depth DNA_DEPRECATED, attrib DNA_DEPRECATED; /* standalone player */ // XXX deprecated since 2.5 int frame_step; /* frames to jump during render/playback */ - short stereomode; /* standalone player stereo settings */ // XXX deprecated since 2.5 + short stereomode DNA_DEPRECATED; /* standalone player stereo settings */ // XXX deprecated since 2.5 short dimensionspreset; /* for the dimensions presets menu */ @@ -360,7 +362,7 @@ typedef struct RenderData { */ short yparts; - short planes, imtype, subimtype, quality; /*deprecated!*/ + short planes DNA_DEPRECATED, imtype DNA_DEPRECATED, subimtype DNA_DEPRECATED, quality DNA_DEPRECATED; /*deprecated!*/ /** * Render to image editor, fullscreen or to new window. @@ -387,8 +389,7 @@ typedef struct RenderData { */ short raytrace_structure; - /* renderer (deprecated) */ - short renderer; + short pad1; /* octree resolution */ short ocres; @@ -434,7 +435,7 @@ typedef struct RenderData { /* color management settings - color profiles, gamma correction, etc */ int color_mgt_flag; - /** post-production settings. Depricated, but here for upwards compat (initialized to 1) */ + /** post-production settings. deprecated, but here for upwards compat (initialized to 1) */ float postgamma, posthue, postsat; /* Dither noise intensity */ @@ -473,19 +474,19 @@ typedef struct RenderData { float simplify_aosss; /* cineon */ - short cineonwhite, cineonblack; /*deprecated*/ - float cineongamma; /*deprecated*/ + short cineonwhite DNA_DEPRECATED, cineonblack DNA_DEPRECATED; /*deprecated*/ + float cineongamma DNA_DEPRECATED; /*deprecated*/ /* jpeg2000 */ - short jp2_preset, jp2_depth; /*deprecated*/ + short jp2_preset DNA_DEPRECATED, jp2_depth DNA_DEPRECATED; /*deprecated*/ int rpad3; /* Dome variables */ // XXX deprecated since 2.5 - short domeres, domemode; // XXX deprecated since 2.5 - short domeangle, dometilt; // XXX deprecated since 2.5 - float domeresbuf; // XXX deprecated since 2.5 - float pad2; // XXX deprecated since 2.5 - struct Text *dometext; // XXX deprecated since 2.5 + short domeres DNA_DEPRECATED, domemode DNA_DEPRECATED; // XXX deprecated since 2.5 + short domeangle DNA_DEPRECATED, dometilt DNA_DEPRECATED; // XXX deprecated since 2.5 + float domeresbuf DNA_DEPRECATED; // XXX deprecated since 2.5 + float pad2; + struct Text *dometext DNA_DEPRECATED; // XXX deprecated since 2.5 /* render engine */ char engine[32]; @@ -744,7 +745,7 @@ typedef struct VPaint { #define VP_NORMALS 8 #define VP_SPRAY 16 -// #define VP_MIRROR_X 32 // depricated in 2.5x use (me->editflag & ME_EDIT_MIRROR_X) +// #define VP_MIRROR_X 32 // deprecated in 2.5x use (me->editflag & ME_EDIT_MIRROR_X) #define VP_ONLYVGROUP 128 @@ -956,7 +957,7 @@ typedef struct Scene { ListBase keyingsets; /* KeyingSets for the given frame */ /* Game Settings */ - struct GameFraming framing; // XXX deprecated since 2.5 + struct GameFraming framing DNA_DEPRECATED; // XXX deprecated since 2.5 struct GameData gm; /* Units */ @@ -1034,10 +1035,6 @@ typedef struct Scene { #define R_FILTER_MITCH 6 #define R_FILTER_FAST_GAUSS 7 /* note, this is only used for nodes at the moment */ -/* yafray: renderer flag (not only exclusive to yafray) */ -#define R_INTERN 0 -#define R_YAFRAY 1 - /* raytrace structure */ #define R_RAYSTRUCTURE_AUTO 0 #define R_RAYSTRUCTURE_OCTREE 1 diff --git a/source/blender/makesdna/DNA_sequence_types.h b/source/blender/makesdna/DNA_sequence_types.h index 399ae0208bd..ce01f100239 100644 --- a/source/blender/makesdna/DNA_sequence_types.h +++ b/source/blender/makesdna/DNA_sequence_types.h @@ -32,6 +32,7 @@ * \author nzc */ +#include "DNA_defs.h" #include "DNA_listBase.h" #include "DNA_vec_types.h" @@ -142,7 +143,7 @@ typedef struct Sequence { Strip *strip; - struct Ipo *ipo; // xxx depreceated... old animation system + struct Ipo *ipo DNA_DEPRECATED; /* old animation system, deprecated for 2.5 */ struct Scene *scene; struct Object *scene_camera; /* override scene camera */ diff --git a/source/blender/makesdna/DNA_space_types.h b/source/blender/makesdna/DNA_space_types.h index 01bb6a5235e..6bcea71b5e9 100644 --- a/source/blender/makesdna/DNA_space_types.h +++ b/source/blender/makesdna/DNA_space_types.h @@ -32,6 +32,7 @@ * \author nzc */ +#include "DNA_defs.h" #include "DNA_listBase.h" #include "DNA_color_types.h" /* for Histogram */ #include "DNA_vec_types.h" @@ -76,17 +77,17 @@ typedef struct SpaceLink { struct SpaceLink *next, *prev; ListBase regionbase; /* storage of regions for inactive spaces */ int spacetype; - float blockscale; /* XXX depricate this */ - short blockhandler[8]; /* XXX depricate this */ + float blockscale DNA_DEPRECATED; /* XXX make deprecated */ + short blockhandler[8] DNA_DEPRECATED; /* XXX make deprecated */ } SpaceLink; typedef struct SpaceInfo { SpaceLink *next, *prev; ListBase regionbase; /* storage of regions for inactive spaces */ int spacetype; - float blockscale; + float blockscale DNA_DEPRECATED; - short blockhandler[8]; /* XXX depricate this */ + short blockhandler[8] DNA_DEPRECATED; /* XXX make deprecated */ char rpt_mask; char pad[7]; @@ -107,10 +108,10 @@ typedef struct SpaceIpo { SpaceLink *next, *prev; ListBase regionbase; /* storage of regions for inactive spaces */ int spacetype; - float blockscale; + float blockscale DNA_DEPRECATED; - short blockhandler[8]; - View2D v2d; /* deprecated, copied to region */ + short blockhandler[8] DNA_DEPRECATED; + View2D v2d DNA_DEPRECATED; /* deprecated, copied to region */ struct bDopeSheet *ads; /* settings for filtering animation data (NOTE: we use a pointer due to code-linking issues) */ @@ -128,13 +129,13 @@ typedef struct SpaceButs { SpaceLink *next, *prev; ListBase regionbase; /* storage of regions for inactive spaces */ int spacetype; - float blockscale; + float blockscale DNA_DEPRECATED; - short blockhandler[8]; + short blockhandler[8] DNA_DEPRECATED; struct RenderInfo *ri; - View2D v2d; /* deprecated, copied to region */ + View2D v2d DNA_DEPRECATED; /* deprecated, copied to region */ short mainb, mainbo, mainbuser; /* context tabs */ short re_align, align; /* align for panels */ @@ -153,19 +154,19 @@ typedef struct SpaceSeq { SpaceLink *next, *prev; ListBase regionbase; /* storage of regions for inactive spaces */ int spacetype; - float blockscale; + float blockscale DNA_DEPRECATED; - short blockhandler[8]; + short blockhandler[8] DNA_DEPRECATED; - View2D v2d; /* deprecated, copied to region */ + View2D v2d DNA_DEPRECATED; /* deprecated, copied to region */ - float xof, yof; /* deprecated: offset for drawing the image preview */ + float xof DNA_DEPRECATED, yof DNA_DEPRECATED; /* deprecated: offset for drawing the image preview */ short mainb; /* weird name for the sequencer subtype (seq, image, luma... etc) */ short render_size; short chanshown; short zebra; int flag; - float zoom; /* deprecated, handled by View2D now */ + float zoom DNA_DEPRECATED; /* deprecated, handled by View2D now */ int view; /* see SEQ_VIEW_* below */ int pad; @@ -232,11 +233,11 @@ typedef struct SpaceOops { SpaceLink *next, *prev; ListBase regionbase; /* storage of regions for inactive spaces */ int spacetype; - float blockscale; + float blockscale DNA_DEPRECATED; - short blockhandler[8]; + short blockhandler[8] DNA_DEPRECATED; - View2D v2d; /* deprecated, copied to region */ + View2D v2d DNA_DEPRECATED; /* deprecated, copied to region */ ListBase tree; struct TreeStore *treestore; @@ -283,25 +284,25 @@ typedef struct SpaceNla { struct SpaceLink *next, *prev; ListBase regionbase; /* storage of regions for inactive spaces */ int spacetype; - float blockscale; + float blockscale DNA_DEPRECATED; - short blockhandler[8]; + short blockhandler[8] DNA_DEPRECATED; short autosnap; /* this uses the same settings as autosnap for Action Editor */ short flag; int pad; struct bDopeSheet *ads; - View2D v2d; /* deprecated, copied to region */ + View2D v2d DNA_DEPRECATED; /* deprecated, copied to region */ } SpaceNla; typedef struct SpaceText { SpaceLink *next, *prev; ListBase regionbase; /* storage of regions for inactive spaces */ int spacetype; - float blockscale; + float blockscale DNA_DEPRECATED; - short blockhandler[8]; + short blockhandler[8] DNA_DEPRECATED; struct Text *text; @@ -352,7 +353,7 @@ typedef struct SpaceScript { SpaceLink *next, *prev; ListBase regionbase; /* storage of regions for inactive spaces */ int spacetype; - float blockscale; + float blockscale DNA_DEPRECATED; struct Script *script; short flags, menunr; @@ -372,31 +373,29 @@ typedef struct SpaceTime { SpaceLink *next, *prev; ListBase regionbase; /* storage of regions for inactive spaces */ int spacetype; - float blockscale; - - View2D v2d; /* deprecated, copied to region */ + float blockscale DNA_DEPRECATED; + View2D v2d DNA_DEPRECATED; /* deprecated, copied to region */ + ListBase caches; - int cache_display, pad; - - int flag, redraws; /* redraws is deprecated... moved to screen */ - + + int cache_display; + int flag; } SpaceTime; typedef struct SpaceNode { SpaceLink *next, *prev; ListBase regionbase; /* storage of regions for inactive spaces */ int spacetype; - float blockscale; + float blockscale DNA_DEPRECATED; - short blockhandler[8]; + short blockhandler[8] DNA_DEPRECATED; - View2D v2d; /* deprecated, copied to region */ + View2D v2d DNA_DEPRECATED; /* deprecated, copied to region */ struct ID *id, *from; /* context, no need to save in file? well... pinning... */ - short flag, menunr; /* menunr: browse id block in header */ + short flag, pad1; /* menunr: browse id block in header */ float aspect; - void *curfont; float xof, yof; /* offset for drawing the backdrop */ float zoom, padf; /* zoom for backdrop */ @@ -433,9 +432,9 @@ typedef struct SpaceLogic { SpaceLink *next, *prev; ListBase regionbase; /* storage of regions for inactive spaces */ int spacetype; - float blockscale; + float blockscale DNA_DEPRECATED; - short blockhandler[8]; + short blockhandler[8] DNA_DEPRECATED; short flag, scaflag; int pad; @@ -467,9 +466,9 @@ typedef struct SpaceConsole { SpaceLink *next, *prev; ListBase regionbase; /* storage of regions for inactive spaces */ int spacetype; - float blockscale; // XXX are these needed? + float blockscale DNA_DEPRECATED; // XXX are these needed? - short blockhandler[8]; // XXX are these needed? + short blockhandler[8] DNA_DEPRECATED; // XXX are these needed? /* space vars */ int lheight, pad; diff --git a/source/blender/makesdna/DNA_texture_types.h b/source/blender/makesdna/DNA_texture_types.h index 6a4a9970b40..cb545d2ee73 100644 --- a/source/blender/makesdna/DNA_texture_types.h +++ b/source/blender/makesdna/DNA_texture_types.h @@ -33,6 +33,7 @@ * \author nzc */ +#include "DNA_defs.h" #include "DNA_ID.h" #include "DNA_image_types.h" /* ImageUser */ @@ -263,7 +264,7 @@ typedef struct Tex { struct ImageUser iuser; struct bNodeTree *nodetree; - struct Ipo *ipo; // XXX depreceated... old animation system + struct Ipo *ipo DNA_DEPRECATED; /* old animation system, deprecated for 2.5 */ struct Image *ima; struct PluginTex *plugin; struct ColorBand *coba; diff --git a/source/blender/makesdna/DNA_tracking_types.h b/source/blender/makesdna/DNA_tracking_types.h index c4e6fcc4dc8..82ccbf87c0b 100644 --- a/source/blender/makesdna/DNA_tracking_types.h +++ b/source/blender/makesdna/DNA_tracking_types.h @@ -211,6 +211,7 @@ enum { /* MovieTrackingTrack->tracker */ #define TRACKER_KLT 0 #define TRACKER_SAD 1 +#define TRACKER_HYBRID 2 /* MovieTrackingTrack->adjframes */ #define TRACK_MATCH_KEYFRAME 0 diff --git a/source/blender/makesdna/DNA_userdef_types.h b/source/blender/makesdna/DNA_userdef_types.h index 198a66499ae..e5393089bf0 100644 --- a/source/blender/makesdna/DNA_userdef_types.h +++ b/source/blender/makesdna/DNA_userdef_types.h @@ -356,7 +356,7 @@ typedef struct UserDef { struct ListBase themes; struct ListBase uifonts; struct ListBase uistyles; - struct ListBase keymaps; /* deprecated in favor of user_keymaps */ + struct ListBase keymaps DNA_DEPRECATED; /* deprecated in favor of user_keymaps */ struct ListBase user_keymaps; struct ListBase addons; char keyconfigstr[64]; diff --git a/source/blender/makesdna/DNA_view3d_types.h b/source/blender/makesdna/DNA_view3d_types.h index 50136fdcc99..51ee8f63df5 100644 --- a/source/blender/makesdna/DNA_view3d_types.h +++ b/source/blender/makesdna/DNA_view3d_types.h @@ -55,6 +55,7 @@ struct wmTimer; #define far clipend #endif +#include "DNA_defs.h" #include "DNA_listBase.h" #include "DNA_image_types.h" #include "DNA_movieclip_types.h" @@ -150,8 +151,9 @@ typedef struct View3D { int spacetype; float blockscale; short blockhandler[8]; - - float viewquat[4], dist; /* XXX depricated */ + + float viewquat[4] DNA_DEPRECATED; + float dist DNA_DEPRECATED; float bundle_size; /* size of bundles in reconstructed data */ short bundle_drawtype; /* display style for bundle */ @@ -160,13 +162,13 @@ typedef struct View3D { unsigned int lay_used; /* used while drawing */ - short persp; /* XXX depricated */ - short view; /* XXX depricated */ + short persp DNA_DEPRECATED; + short view DNA_DEPRECATED; struct Object *camera, *ob_centre; struct ListBase bgpicbase; - struct BGpic *bgpic; /* deprecated, use bgpicbase, only kept for do_versions(...) */ + struct BGpic *bgpic DNA_DEPRECATED; /* deprecated, use bgpicbase, only kept for do_versions(...) */ struct View3D *localvd; /* allocated backup of its self while in localview */ @@ -185,7 +187,7 @@ typedef struct View3D { float lens, grid; float near, far; - float ofs[3]; /* XXX deprecated */ + float ofs[3] DNA_DEPRECATED; /* XXX deprecated */ float cursor[3]; short modeselect; @@ -208,8 +210,8 @@ typedef struct View3D { void *properties_storage; /* Nkey panel stores stuff here (runtime only!) */ - /* XXX depricated? */ - struct bGPdata *gpd; /* Grease-Pencil Data (annotation layers) */ + /* XXX deprecated? */ + struct bGPdata *gpd DNA_DEPRECATED; /* Grease-Pencil Data (annotation layers) */ } View3D; diff --git a/source/blender/makesdna/DNA_world_types.h b/source/blender/makesdna/DNA_world_types.h index 0c455022db4..1e8a4574120 100644 --- a/source/blender/makesdna/DNA_world_types.h +++ b/source/blender/makesdna/DNA_world_types.h @@ -31,6 +31,7 @@ * \ingroup DNA */ +#include "DNA_defs.h" #include "DNA_ID.h" struct AnimData; @@ -96,7 +97,7 @@ typedef struct World { float misi, miststa, mistdist, misthi; - float starr, starg, starb, stark; /* Deprecated */ + float starr DNA_DEPRECATED, starg DNA_DEPRECATED, starb DNA_DEPRECATED, stark DNA_DEPRECATED; /* Deprecated */ float starsize, starmindist; float stardist, starcolnoise; @@ -119,7 +120,7 @@ typedef struct World { float *aosphere, *aotables; - struct Ipo *ipo; // XXX depreceated... old animation system + struct Ipo *ipo DNA_DEPRECATED; /* old animation system, deprecated for 2.5 */ struct MTex *mtex[18]; /* MAX_MTEX */ short pr_texture, use_nodes, pad[2]; diff --git a/source/blender/makesdna/intern/makesdna.c b/source/blender/makesdna/intern/makesdna.c index b9bd2c073bf..11ab9b1efcf 100644 --- a/source/blender/makesdna/intern/makesdna.c +++ b/source/blender/makesdna/intern/makesdna.c @@ -475,6 +475,13 @@ static int preprocess_include(char *maindata, int len) if(comment); else if( cp[0]==' ' && cp[1]==' ' ); else if( cp[-1]=='*' && cp[0]==' ' ); /* pointers with a space */ + + /* skip special keywords */ + else if (strncmp("DNA_DEPRECATED", cp, 14)==0) { + /* single values are skipped already, so decrement 1 less */ + a -= 13; + cp += 13; + } else { md[0]= cp[0]; md++; diff --git a/source/blender/makesrna/intern/rna_brush.c b/source/blender/makesrna/intern/rna_brush.c index 60658e98c8d..4fb672fd203 100644 --- a/source/blender/makesrna/intern/rna_brush.c +++ b/source/blender/makesrna/intern/rna_brush.c @@ -336,7 +336,7 @@ static void rna_def_brush_texture_slot(BlenderRNA *brna) prop= RNA_def_property(srna, "angle", PROP_FLOAT, PROP_ANGLE); RNA_def_property_float_sdna(prop, NULL, "rot"); RNA_def_property_range(prop, 0, M_PI*2); - RNA_def_property_ui_text(prop, "Angle", "Defines brush texture rotation"); + RNA_def_property_ui_text(prop, "Angle", "Brush texture rotation"); RNA_def_property_update(prop, 0, "rna_TextureSlot_update"); prop= RNA_def_property(srna, "map_mode", PROP_ENUM, PROP_NONE); diff --git a/source/blender/makesrna/intern/rna_lamp.c b/source/blender/makesrna/intern/rna_lamp.c index c783fc2238c..7de2d550875 100644 --- a/source/blender/makesrna/intern/rna_lamp.c +++ b/source/blender/makesrna/intern/rna_lamp.c @@ -172,9 +172,9 @@ static void rna_def_lamp_mtex(BlenderRNA *brna) PropertyRNA *prop; static EnumPropertyItem prop_texture_coordinates_items[] = { - {TEXCO_GLOB, "GLOBAL", 0, "Global", "Uses global coordinates for the texture coordinates"}, - {TEXCO_VIEW, "VIEW", 0, "View", "Uses view coordinates for the texture coordinates"}, - {TEXCO_OBJECT, "OBJECT", 0, "Object", "Uses linked object's coordinates for texture coordinates"}, + {TEXCO_GLOB, "GLOBAL", 0, "Global", "Use global coordinates for the texture coordinates"}, + {TEXCO_VIEW, "VIEW", 0, "View", "Use view coordinates for the texture coordinates"}, + {TEXCO_OBJECT, "OBJECT", 0, "Object", "Use linked object's coordinates for texture coordinates"}, {0, NULL, 0, NULL, NULL}}; srna= RNA_def_struct(brna, "LampTextureSlot", "TextureSlot"); diff --git a/source/blender/makesrna/intern/rna_material.c b/source/blender/makesrna/intern/rna_material.c index 6400946d582..35c720b5069 100644 --- a/source/blender/makesrna/intern/rna_material.c +++ b/source/blender/makesrna/intern/rna_material.c @@ -480,12 +480,12 @@ static void rna_def_material_mtex(BlenderRNA *brna) prop= RNA_def_property(srna, "use_map_diffuse", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "mapto", MAP_REF); - RNA_def_property_ui_text(prop, "Diffuse", "The texture to affects the value of the materials diffuse reflectivity"); + RNA_def_property_ui_text(prop, "Diffuse", "The texture affects the value of diffuse reflectivity"); RNA_def_property_update(prop, 0, "rna_Material_update"); prop= RNA_def_property(srna, "use_map_specular", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "mapto", MAP_SPEC); - RNA_def_property_ui_text(prop, "Specular", "The texture to affects the value of specular reflectivity"); + RNA_def_property_ui_text(prop, "Specular", "The texture affects the value of specular reflectivity"); RNA_def_property_update(prop, 0, "rna_Material_update"); prop= RNA_def_property(srna, "use_map_ambient", PROP_BOOLEAN, PROP_NONE); diff --git a/source/blender/makesrna/intern/rna_object.c b/source/blender/makesrna/intern/rna_object.c index 8d299c5b41f..a25a039ee04 100644 --- a/source/blender/makesrna/intern/rna_object.c +++ b/source/blender/makesrna/intern/rna_object.c @@ -2072,7 +2072,7 @@ static void rna_def_object(BlenderRNA *brna) #endif prop= RNA_def_property(srna, "delta_scale", PROP_FLOAT, PROP_XYZ); - RNA_def_property_float_sdna(prop, NULL, "dsize"); + RNA_def_property_float_sdna(prop, NULL, "dscale"); RNA_def_property_ui_text(prop, "Delta Scale", "Extra scaling added to the scale of the object"); RNA_def_property_update(prop, NC_OBJECT|ND_TRANSFORM, "rna_Object_internal_update"); diff --git a/source/blender/makesrna/intern/rna_particle.c b/source/blender/makesrna/intern/rna_particle.c index fb6e837365d..2c71fffb5b5 100644 --- a/source/blender/makesrna/intern/rna_particle.c +++ b/source/blender/makesrna/intern/rna_particle.c @@ -1233,18 +1233,18 @@ static void rna_def_particle_settings_mtex(BlenderRNA *brna) PropertyRNA *prop; static EnumPropertyItem texco_items[] = { - {TEXCO_GLOB, "GLOBAL", 0, "Global", "Uses global coordinates for the texture coordinates"}, - {TEXCO_OBJECT, "OBJECT", 0, "Object", "Uses linked object's coordinates for texture coordinates"}, - {TEXCO_UV, "UV", 0, "UV", "Uses UV coordinates for texture coordinates"}, - {TEXCO_ORCO, "ORCO", 0, "Generated", "Uses the original undeformed coordinates of the object"}, - {TEXCO_STRAND, "STRAND", 0, "Strand / Particle", "Uses normalized strand texture coordinate (1D) or particle age (X) and trail position (Y)"}, + {TEXCO_GLOB, "GLOBAL", 0, "Global", "Use global coordinates for the texture coordinates"}, + {TEXCO_OBJECT, "OBJECT", 0, "Object", "Use linked object's coordinates for texture coordinates"}, + {TEXCO_UV, "UV", 0, "UV", "Use UV coordinates for texture coordinates"}, + {TEXCO_ORCO, "ORCO", 0, "Generated", "Use the original undeformed coordinates of the object"}, + {TEXCO_STRAND, "STRAND", 0, "Strand / Particle", "Use normalized strand texture coordinate (1D) or particle age (X) and trail position (Y)"}, {0, NULL, 0, NULL, NULL}}; static EnumPropertyItem prop_mapping_items[] = { - {MTEX_FLAT, "FLAT", 0, "Flat", "Maps X and Y coordinates directly"}, - {MTEX_CUBE, "CUBE", 0, "Cube", "Maps using the normal vector"}, - {MTEX_TUBE, "TUBE", 0, "Tube", "Maps with Z as central axis"}, - {MTEX_SPHERE, "SPHERE", 0, "Sphere", "Maps with Z as central axis"}, + {MTEX_FLAT, "FLAT", 0, "Flat", "Map X and Y coordinates directly"}, + {MTEX_CUBE, "CUBE", 0, "Cube", "Map using the normal vector"}, + {MTEX_TUBE, "TUBE", 0, "Tube", "Map with Z as central axis"}, + {MTEX_SPHERE, "SPHERE", 0, "Sphere", "Map with Z as central axis"}, {0, NULL, 0, NULL, NULL}}; static EnumPropertyItem prop_x_mapping_items[] = { diff --git a/source/blender/makesrna/intern/rna_sculpt_paint.c b/source/blender/makesrna/intern/rna_sculpt_paint.c index d0a50ba6bad..a15ca5de5c1 100644 --- a/source/blender/makesrna/intern/rna_sculpt_paint.c +++ b/source/blender/makesrna/intern/rna_sculpt_paint.c @@ -304,7 +304,7 @@ static void rna_def_vertex_paint(BlenderRNA *brna) prop= RNA_def_property(srna, "use_normal", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", VP_NORMALS); - RNA_def_property_ui_text(prop, "Normals", "Applies the vertex normal before painting"); + RNA_def_property_ui_text(prop, "Normals", "Apply the vertex normal before painting"); prop= RNA_def_property(srna, "use_spray", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", VP_SPRAY); @@ -348,7 +348,7 @@ static void rna_def_image_paint(BlenderRNA *brna) prop= RNA_def_property(srna, "use_clone_layer", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", IMAGEPAINT_PROJECT_LAYER_CLONE); RNA_def_property_ui_text(prop, "Clone Map", - "Use another UV map as clone source, otherwise use 3D the cursor as the source"); + "Use another UV map as clone source, otherwise use the 3D cursor as the source"); /* integers */ diff --git a/source/blender/makesrna/intern/rna_sensor.c b/source/blender/makesrna/intern/rna_sensor.c index ba58a66a2d6..6459c145a3a 100644 --- a/source/blender/makesrna/intern/rna_sensor.c +++ b/source/blender/makesrna/intern/rna_sensor.c @@ -387,7 +387,7 @@ static void rna_def_mouse_sensor(BlenderRNA *brna) prop= RNA_def_property(srna, "mouse_event", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "type"); RNA_def_property_enum_items(prop, mouse_event_items); - RNA_def_property_ui_text(prop, "Mouse Event", "Specify the type of event this mouse sensor should trigger on"); + RNA_def_property_ui_text(prop, "Mouse Event", "Type of event this mouse sensor should trigger on"); RNA_def_property_update(prop, NC_LOGIC, NULL); } @@ -442,7 +442,7 @@ static void rna_def_keyboard_sensor(BlenderRNA *brna) prop= RNA_def_property(srna, "target", PROP_STRING, PROP_NONE); RNA_def_property_string_sdna(prop, NULL, "targetName"); - RNA_def_property_ui_text(prop, "Target", "Property that receive the keystrokes in case a string is logged"); + RNA_def_property_ui_text(prop, "Target", "Property that receives the keystrokes in case a string is logged"); RNA_def_property_update(prop, NC_LOGIC, NULL); prop= RNA_def_property(srna, "log", PROP_STRING, PROP_NONE); @@ -490,12 +490,12 @@ static void rna_def_property_sensor(BlenderRNA *brna) prop= RNA_def_property(srna, "value_min", PROP_STRING, PROP_NONE); RNA_def_property_string_sdna(prop, NULL, "value"); - RNA_def_property_ui_text(prop, "Minimum Value", "Specify minimum value in Interval type"); + RNA_def_property_ui_text(prop, "Minimum Value", "Minimum value in Interval type"); RNA_def_property_update(prop, NC_LOGIC, NULL); prop= RNA_def_property(srna, "value_max", PROP_STRING, PROP_NONE); RNA_def_property_string_sdna(prop, NULL, "maxvalue"); - RNA_def_property_ui_text(prop, "Maximum Value", "Specify maximum value in Interval type"); + RNA_def_property_ui_text(prop, "Maximum Value", "Maximum value in Interval type"); RNA_def_property_update(prop, NC_LOGIC, NULL); } @@ -533,7 +533,7 @@ static void rna_def_armature_sensor(BlenderRNA *brna) prop= RNA_def_property(srna, "value", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "value"); - RNA_def_property_ui_text(prop, "Compare Value", "Specify value to be used in comparison"); + RNA_def_property_ui_text(prop, "Compare Value", "Value to be used in comparison"); RNA_def_property_update(prop, NC_LOGIC, NULL); } @@ -574,7 +574,7 @@ static void rna_def_delay_sensor(BlenderRNA *brna) prop= RNA_def_property(srna, "use_repeat", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", SENS_DELAY_REPEAT); - RNA_def_property_ui_text(prop, "Repeat", "Toggle repeat option. If selected, the sensor restarts after Delay+Dur logic tics"); + RNA_def_property_ui_text(prop, "Repeat", "Toggle repeat option (if selected, the sensor restarts after Delay+Duration logic tics)"); RNA_def_property_update(prop, NC_LOGIC, NULL); } @@ -589,7 +589,7 @@ static void rna_def_collision_sensor(BlenderRNA *brna) prop= RNA_def_property(srna, "use_pulse", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "mode", SENS_COLLISION_PULSE); - RNA_def_property_ui_text(prop, "Pulse", "Changes to the set of colliding objects generates pulse"); + RNA_def_property_ui_text(prop, "Pulse", "Change to the set of colliding objects generates pulse"); RNA_def_property_update(prop, NC_LOGIC, NULL); prop= RNA_def_property(srna, "use_material", PROP_BOOLEAN, PROP_NONE); @@ -599,13 +599,13 @@ static void rna_def_collision_sensor(BlenderRNA *brna) prop= RNA_def_property(srna, "property", PROP_STRING, PROP_NONE); RNA_def_property_string_sdna(prop, NULL, "name"); - RNA_def_property_ui_text(prop, "Property", "Only look for Objects with this property (blank = all objects)"); + RNA_def_property_ui_text(prop, "Property", "Only look for objects with this property (blank = all objects)"); RNA_def_property_update(prop, NC_LOGIC, NULL); //XXX to make a setFunction to create a lookup with all materials in Blend File (not only this object mat.) prop= RNA_def_property(srna, "material", PROP_STRING, PROP_NONE); RNA_def_property_string_sdna(prop, NULL, "materialName"); - RNA_def_property_ui_text(prop, "Material", "Only look for Objects with this material (blank = all objects)"); + RNA_def_property_ui_text(prop, "Material", "Only look for objects with this material (blank = all objects)"); RNA_def_property_update(prop, NC_LOGIC, NULL); /*//XXX either use a datablock look up to store the string name (material) @@ -614,7 +614,7 @@ static void rna_def_collision_sensor(BlenderRNA *brna) RNA_def_property_struct_type(prop, "Material"); RNA_def_property_flag(prop, PROP_EDITABLE); RNA_def_property_pointer_sdna(prop, NULL, "ma"); - RNA_def_property_ui_text(prop, "Material", "Only look for Objects with this material (blank = all objects)"); + RNA_def_property_ui_text(prop, "Material", "Only look for objects with this material (blank = all objects)"); */ } @@ -637,12 +637,12 @@ static void rna_def_radar_sensor(BlenderRNA *brna) prop= RNA_def_property(srna, "property", PROP_STRING, PROP_NONE); RNA_def_property_string_sdna(prop, NULL, "name"); - RNA_def_property_ui_text(prop, "Property", "Only look for Objects with this property (blank = all objects)"); + RNA_def_property_ui_text(prop, "Property", "Only look for objects with this property (blank = all objects)"); RNA_def_property_update(prop, NC_LOGIC, NULL); prop= RNA_def_property(srna, "axis", PROP_ENUM, PROP_NONE); RNA_def_property_enum_items(prop, axis_items); - RNA_def_property_ui_text(prop, "Axis", "Specify along which axis the radar cone is cast"); + RNA_def_property_ui_text(prop, "Axis", "Along which axis the radar cone is cast"); RNA_def_property_update(prop, NC_LOGIC, NULL); //XXX TODO - use radians internally then change to PROP_ANGLE @@ -669,7 +669,7 @@ static void rna_def_random_sensor(BlenderRNA *brna) prop= RNA_def_property(srna, "seed", PROP_INT, PROP_NONE); RNA_def_property_range(prop, 0, 1000); - RNA_def_property_ui_text(prop, "Seed", "Initial seed of the generator. (Choose 0 for not random)"); + RNA_def_property_ui_text(prop, "Seed", "Initial seed of the generator (choose 0 for not random)"); RNA_def_property_update(prop, NC_LOGIC, NULL); } @@ -703,12 +703,12 @@ static void rna_def_ray_sensor(BlenderRNA *brna) prop= RNA_def_property(srna, "property", PROP_STRING, PROP_NONE); RNA_def_property_string_sdna(prop, NULL, "propname"); - RNA_def_property_ui_text(prop, "Property", "Only look for Objects with this property (blank = all objects)"); + RNA_def_property_ui_text(prop, "Property", "Only look for objects with this property (blank = all objects)"); RNA_def_property_update(prop, NC_LOGIC, NULL); prop= RNA_def_property(srna, "material", PROP_STRING, PROP_NONE); RNA_def_property_string_sdna(prop, NULL, "matname"); - RNA_def_property_ui_text(prop, "Material", "Only look for Objects with this material (blank = all objects)"); + RNA_def_property_ui_text(prop, "Material", "Only look for objects with this material (blank = all objects)"); RNA_def_property_update(prop, NC_LOGIC, NULL); /* //XXX either use a datablock look up to store the string name (material) @@ -717,7 +717,7 @@ static void rna_def_ray_sensor(BlenderRNA *brna) RNA_def_property_struct_type(prop, "Material"); RNA_def_property_flag(prop, PROP_EDITABLE); RNA_def_property_pointer_sdna(prop, NULL, "ma"); - RNA_def_property_ui_text(prop, "Material", "Only look for Objects with this material (blank = all objects)"); + RNA_def_property_ui_text(prop, "Material", "Only look for objects with this material (blank = all objects)"); */ prop= RNA_def_property(srna, "use_x_ray", PROP_BOOLEAN, PROP_NONE); @@ -733,7 +733,7 @@ static void rna_def_ray_sensor(BlenderRNA *brna) prop= RNA_def_property(srna, "axis", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "axisflag"); RNA_def_property_enum_items(prop, axis_items); - RNA_def_property_ui_text(prop, "Axis", "Specify along which axis the ray is cast"); + RNA_def_property_ui_text(prop, "Axis", "Along which axis the ray is cast"); RNA_def_property_update(prop, NC_LOGIC, NULL); } @@ -747,7 +747,7 @@ static void rna_def_message_sensor(BlenderRNA *brna) RNA_def_struct_sdna_from(srna, "bMessageSensor", "data"); prop= RNA_def_property(srna, "subject", PROP_STRING, PROP_NONE); - RNA_def_property_ui_text(prop, "Subject", "Optional subject filter: only accept messages with this subject, or empty for all"); + RNA_def_property_ui_text(prop, "Subject", "Optional subject filter: only accept messages with this subject, or empty to accept all"); RNA_def_property_update(prop, NC_LOGIC, NULL); } @@ -788,7 +788,7 @@ static void rna_def_joystick_sensor(BlenderRNA *brna) prop= RNA_def_property(srna, "joystick_index", PROP_INT, PROP_NONE); RNA_def_property_int_sdna(prop, NULL, "joyindex"); - RNA_def_property_ui_text(prop, "Index", "Specify which joystick to use"); + RNA_def_property_ui_text(prop, "Index", "Which joystick to use"); RNA_def_property_range(prop, 0, SENS_JOY_MAXINDEX-1); RNA_def_property_update(prop, NC_LOGIC, NULL); @@ -800,26 +800,26 @@ static void rna_def_joystick_sensor(BlenderRNA *brna) prop= RNA_def_property(srna, "use_all_events", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", SENS_JOY_ANY_EVENT); - RNA_def_property_ui_text(prop, "All Events", "Triggered by all events on this joysticks current type (axis/button/hat)"); + RNA_def_property_ui_text(prop, "All Events", "Triggered by all events on this joystick's current type (axis/button/hat)"); RNA_def_property_update(prop, NC_LOGIC, NULL); /* Button */ prop= RNA_def_property(srna, "button_number", PROP_INT, PROP_NONE); RNA_def_property_int_sdna(prop, NULL, "button"); - RNA_def_property_ui_text(prop, "Button Number", "Specify which button to use"); + RNA_def_property_ui_text(prop, "Button Number", "Which button to use"); RNA_def_property_range(prop, 0, 18); RNA_def_property_update(prop, NC_LOGIC, NULL); /* Axis */ prop= RNA_def_property(srna, "axis_number", PROP_INT, PROP_NONE); RNA_def_property_int_sdna(prop, NULL, "axis"); - RNA_def_property_ui_text(prop, "Axis Number", "Specify which axis pair to use, 1 is usually the main direction input"); + RNA_def_property_ui_text(prop, "Axis Number", "Which axis pair to use, 1 is usually the main direction input"); RNA_def_property_range(prop, 1, 8); RNA_def_property_update(prop, NC_LOGIC, NULL); prop= RNA_def_property(srna, "axis_threshold", PROP_INT, PROP_NONE); RNA_def_property_int_sdna(prop, NULL, "precision"); - RNA_def_property_ui_text(prop, "Axis Threshold", "Specify the precision of the axis"); + RNA_def_property_ui_text(prop, "Axis Threshold", "Precision of the axis"); RNA_def_property_range(prop, 0, 32768); RNA_def_property_update(prop, NC_LOGIC, NULL); @@ -832,21 +832,21 @@ static void rna_def_joystick_sensor(BlenderRNA *brna) /* Single Axis */ prop= RNA_def_property(srna, "single_axis_number", PROP_INT, PROP_NONE); RNA_def_property_int_sdna(prop, NULL, "axis_single"); - RNA_def_property_ui_text(prop, "Axis Number", "Specify a single axis (verticle/horizontal/other) to detect"); + RNA_def_property_ui_text(prop, "Axis Number", "Single axis (vertical/horizontal/other) to detect"); RNA_def_property_range(prop, 1, 16); RNA_def_property_update(prop, NC_LOGIC, NULL); /* Hat */ prop= RNA_def_property(srna, "hat_number", PROP_INT, PROP_NONE); RNA_def_property_int_sdna(prop, NULL, "hat"); - RNA_def_property_ui_text(prop, "Hat Number", "Specify which hat to use"); + RNA_def_property_ui_text(prop, "Hat Number", "Which hat to use"); RNA_def_property_range(prop, 1, 2); RNA_def_property_update(prop, NC_LOGIC, NULL); prop= RNA_def_property(srna, "hat_direction", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "hatf"); RNA_def_property_enum_items(prop, hat_direction_items); - RNA_def_property_ui_text(prop, "Hat Direction", "Specify hat direction"); + RNA_def_property_ui_text(prop, "Hat Direction", "Hat direction"); RNA_def_property_update(prop, NC_LOGIC, NULL); } diff --git a/source/blender/makesrna/intern/rna_sequencer.c b/source/blender/makesrna/intern/rna_sequencer.c index 4db23443895..64adac7dd5e 100644 --- a/source/blender/makesrna/intern/rna_sequencer.c +++ b/source/blender/makesrna/intern/rna_sequencer.c @@ -1618,7 +1618,7 @@ static void rna_def_glow(BlenderRNA *brna) prop= RNA_def_property(srna, "clamp", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "fClamp"); RNA_def_property_range(prop, 0.0f, 1.0f); - RNA_def_property_ui_text(prop, "Clamp", "rightness limit of intensity"); + RNA_def_property_ui_text(prop, "Clamp", "Brightness limit of intensity"); RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, "rna_Sequence_update"); prop= RNA_def_property(srna, "boost_factor", PROP_FLOAT, PROP_NONE); @@ -1722,7 +1722,7 @@ static void rna_def_solid_color(BlenderRNA *brna) PropertyRNA *prop; srna = RNA_def_struct(brna, "ColorSequence", "EffectSequence"); - RNA_def_struct_ui_text(srna, "Color Sequence", "Sequence strip creating an image filled with a single g"); + RNA_def_struct_ui_text(srna, "Color Sequence", "Sequence strip creating an image filled with a single color"); RNA_def_struct_sdna_from(srna, "SolidColorVars", "effectdata"); prop= RNA_def_property(srna, "color", PROP_FLOAT, PROP_COLOR); diff --git a/source/blender/makesrna/intern/rna_tracking.c b/source/blender/makesrna/intern/rna_tracking.c index 89c17819265..5a2ef54cfc1 100644 --- a/source/blender/makesrna/intern/rna_tracking.c +++ b/source/blender/makesrna/intern/rna_tracking.c @@ -269,6 +269,7 @@ static MovieTrackingMarker *rna_trackingTrack_marker_find_frame(MovieTrackingTra static EnumPropertyItem tracker_items[] = { {TRACKER_KLT, "KLT", 0, "KLT", "Kanade–Lucas–Tomasi tracker which works with most of video clips, a bit slower than SAD"}, {TRACKER_SAD, "SAD", 0, "SAD", "Sum of Absolute Differences tracker which can be used when KLT tracker fails"}, + {TRACKER_HYBRID, "Hybrid", 0, "Hybrid", "A hybrid tracker that uses SAD for rough tracking, KLT for refinement."}, {0, NULL, 0, NULL, NULL}}; static EnumPropertyItem pattern_match_items[] = { diff --git a/source/blender/modifiers/intern/MOD_mirror.c b/source/blender/modifiers/intern/MOD_mirror.c index d3d5babb41e..aae7be5f883 100644 --- a/source/blender/modifiers/intern/MOD_mirror.c +++ b/source/blender/modifiers/intern/MOD_mirror.c @@ -63,7 +63,6 @@ static void copyData(ModifierData *md, ModifierData *target) MirrorModifierData *mmd = (MirrorModifierData*) md; MirrorModifierData *tmmd = (MirrorModifierData*) target; - tmmd->axis = mmd->axis; tmmd->flag = mmd->flag; tmmd->tolerance = mmd->tolerance; tmmd->mirror_ob = mmd->mirror_ob; diff --git a/source/blender/nodes/shader/nodes/node_shader_invert.c b/source/blender/nodes/shader/nodes/node_shader_invert.c index 6d21b93fb65..2c20df2274d 100644 --- a/source/blender/nodes/shader/nodes/node_shader_invert.c +++ b/source/blender/nodes/shader/nodes/node_shader_invert.c @@ -77,7 +77,7 @@ void register_node_type_sh_invert(bNodeTreeType *ttype) static bNodeType ntype; node_type_base(ttype, &ntype, SH_NODE_INVERT, "Invert", NODE_CLASS_OP_COLOR, NODE_OPTIONS); - node_type_compatibility(&ntype, NODE_OLD_SHADING); + node_type_compatibility(&ntype, NODE_OLD_SHADING|NODE_NEW_SHADING); node_type_socket_templates(&ntype, sh_node_invert_in, sh_node_invert_out); node_type_size(&ntype, 90, 80, 100); node_type_exec(&ntype, node_shader_exec_invert); diff --git a/source/blender/render/intern/source/convertblender.c b/source/blender/render/intern/source/convertblender.c index 95c40508e86..e3c63978a21 100644 --- a/source/blender/render/intern/source/convertblender.c +++ b/source/blender/render/intern/source/convertblender.c @@ -1718,7 +1718,7 @@ static int render_new_particle_system(Render *re, ObjectRen *obr, ParticleSystem sd.adapt_angle = cosf(DEG2RADF((float)part->adapt_angle)); } - if(re->r.renderer==R_INTERN && part->draw&PART_DRAW_REN_STRAND) { + if (part->draw & PART_DRAW_REN_STRAND) { strandbuf= RE_addStrandBuffer(obr, (totpart+totchild)*(path_nbr+1)); strandbuf->ma= ma; strandbuf->lay= ob->lay; @@ -2391,7 +2391,7 @@ static void do_displacement(Render *re, ObjectRen *obr, float mat[][4], float im /* Object Size with parenting */ obt=obr->ob; while(obt){ - mul_v3_v3v3(temp, obt->size, obt->dsize); + mul_v3_v3v3(temp, obt->size, obt->dscale); scale[0]*=temp[0]; scale[1]*=temp[1]; scale[2]*=temp[2]; obt=obt->parent; } @@ -3872,8 +3872,9 @@ static GroupObject *add_render_lamp(Render *re, Object *ob) } } } - /* yafray: shadow flag should not be cleared, only used with internal renderer */ - if (re->r.renderer==R_INTERN) { + + /* old code checked for internal render (aka not yafray) */ + { /* to make sure we can check ray shadow easily in the render code */ if(lar->mode & LA_SHAD_RAY) { if( (re->r.mode & R_RAYTRACE)==0) @@ -5109,10 +5110,9 @@ void RE_Database_FromScene(Render *re, Main *bmain, Scene *scene, unsigned int l /* SHADOW BUFFER */ threaded_makeshadowbufs(re); - - /* yafray: 'direct' radiosity, environment maps and raytree init not needed for yafray render */ - /* although radio mode could be useful at some point, later */ - if (re->r.renderer==R_INTERN) { + + /* old code checked for internal render (aka not yafray) */ + { /* raytree */ if(!re->test_break(re->tbh)) { if(re->r.mode & R_RAYTRACE) { @@ -5137,14 +5137,12 @@ void RE_Database_FromScene(Render *re, Main *bmain, Scene *scene, unsigned int l /* Occlusion */ if((re->wrld.mode & (WO_AMB_OCC|WO_ENV_LIGHT|WO_INDIRECT_LIGHT)) && !re->test_break(re->tbh)) if(re->wrld.ao_gather_method == WO_AOGATHER_APPROX) - if(re->r.renderer==R_INTERN) - if(re->r.mode & R_SHADOW) - make_occ_tree(re); + if(re->r.mode & R_SHADOW) + make_occ_tree(re); /* SSS */ if((re->r.mode & R_SSS) && !re->test_break(re->tbh)) - if(re->r.renderer==R_INTERN) - make_sss_tree(re); + make_sss_tree(re); if(!re->test_break(re->tbh)) if(re->r.mode & R_RAYTRACE) diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c index 52fb1eb48dc..0bad1a13a5a 100644 --- a/source/blender/render/intern/source/pipeline.c +++ b/source/blender/render/intern/source/pipeline.c @@ -2832,12 +2832,6 @@ int RE_is_rendering_allowed(Scene *scene, Object *camera_override, ReportList *r BKE_report(reports, RPT_ERROR, "All RenderLayers are disabled"); return 0; } - - /* renderer */ - if(!ELEM(scene->r.renderer, R_INTERN, R_YAFRAY)) { - BKE_report(reports, RPT_ERROR, "Unknown render engine set"); - return 0; - } return 1; } |