Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2011-11-20 00:14:57 +0400
committerSergey Sharybin <sergey.vfx@gmail.com>2011-11-20 00:14:57 +0400
commit120c0659ed24378bda02b03cac8854aa0c01283c (patch)
tree1d58373e862bd0a7a9600d29b44dd2d0812a0bc7
parent5d2a155f2bcc2d6d77d3a3753c23027b06942540 (diff)
Camera tracking fixes:
- Fixed incorrect memory access on distoritons more than 128 pixels - Do not use UNDO operators flags for delete proxy operator (files can't be restored form disk), and also do not use UNDO for set as background operator (background images are storing in 3d viewport which isn't getting re-loaded on undo which can lead to incorrect users count of movie clip user).
-rw-r--r--extern/libmv/libmv/simple_pipeline/camera_intrinsics.cc14
-rw-r--r--release/scripts/startup/bl_operators/clip.py4
2 files changed, 6 insertions, 12 deletions
diff --git a/extern/libmv/libmv/simple_pipeline/camera_intrinsics.cc b/extern/libmv/libmv/simple_pipeline/camera_intrinsics.cc
index 917f80e6926..ba88ce7676d 100644
--- a/extern/libmv/libmv/simple_pipeline/camera_intrinsics.cc
+++ b/extern/libmv/libmv/simple_pipeline/camera_intrinsics.cc
@@ -24,7 +24,7 @@
namespace libmv {
struct Offset {
- signed char ix, iy;
+ short ix, iy;
unsigned char fx,fy;
};
@@ -201,20 +201,14 @@ void CameraIntrinsics::ComputeLookupGrid(Grid* grid, int width, int height, doub
warp_y = warp_y*aspy + 0.5 * overscan * h;
int ix = int(warp_x), iy = int(warp_y);
int fx = round((warp_x-ix)*256), fy = round((warp_y-iy)*256);
- if(fx == 256) { fx=0; ix++; }
- if(fy == 256) { fy=0; iy++; }
// Use nearest border pixel
if( ix < 0 ) { ix = 0, fx = 0; }
if( iy < 0 ) { iy = 0, fy = 0; }
if( ix >= width-2 ) ix = width-2;
if( iy >= height-2 ) iy = height-2;
- if ( ix-x > -128 && ix-x < 128 && iy-y > -128 && iy-y < 128 ) {
- Offset offset = { ix-x, iy-y, fx, fy };
- grid->offset[y*width+x] = offset;
- } else {
- Offset offset = { 0, 0, 0, 0 };
- grid->offset[y*width+x] = offset;
- }
+
+ Offset offset = { ix-x, iy-y, fx, fy };
+ grid->offset[y*width+x] = offset;
}
}
}
diff --git a/release/scripts/startup/bl_operators/clip.py b/release/scripts/startup/bl_operators/clip.py
index dc0d35062e6..6c2256dc08b 100644
--- a/release/scripts/startup/bl_operators/clip.py
+++ b/release/scripts/startup/bl_operators/clip.py
@@ -116,7 +116,7 @@ class CLIP_OT_delete_proxy(Operator):
bl_idname = "clip.delete_proxy"
bl_label = "Delete Proxy"
- bl_options = {'UNDO', 'REGISTER'}
+ bl_options = {'REGISTER'}
@classmethod
def poll(cls, context):
@@ -191,7 +191,7 @@ class CLIP_OT_set_viewport_background(Operator):
bl_idname = "clip.set_viewport_background"
bl_label = "Set as Background"
- bl_options = {'UNDO', 'REGISTER'}
+ bl_options = {'REGISTER'}
@classmethod
def poll(cls, context):