Commit: 8e66dbdf9788c7b0f11d4d2a588f148719afc742
Author: Tianwei Shen
Date:   Wed Aug 3 00:04:12 2016 +0800
Branches: soc-2016-multiview
https://developer.blender.org/rB8e66dbdf9788c7b0f11d4d2a588f148719afc742

seperate zoom from SpaceClip to RegionSpaceClip

- mark zoom in SpaceClip as deprecated
- known issue: versioning is not done

===================================================================

M       source/blender/blenkernel/BKE_context.h
M       source/blender/blenkernel/intern/context.c
M       source/blender/blenloader/intern/writefile.c
M       source/blender/editors/space_clip/clip_draw.c
M       source/blender/editors/space_clip/clip_editor.c
M       source/blender/editors/space_clip/clip_ops.c
M       source/blender/editors/space_clip/space_clip.c
M       source/blender/editors/space_clip/tracking_ops.c
M       source/blender/editors/space_clip/tracking_ops_plane.c
M       source/blender/makesdna/DNA_space_types.h

===================================================================

diff --git a/source/blender/blenkernel/BKE_context.h 
b/source/blender/blenkernel/BKE_context.h
index 65a68a4..8a46800 100644
--- a/source/blender/blenkernel/BKE_context.h
+++ b/source/blender/blenkernel/BKE_context.h
@@ -49,6 +49,7 @@ struct ScrArea;
 struct SpaceLink;
 struct View3D;
 struct RegionView3D;
+struct RegionSpaceClip;
 struct StructRNA;
 struct ToolSettings;
 struct Image;
@@ -146,6 +147,7 @@ struct ReportList *CTX_wm_reports(const bContext *C);
 
 struct View3D *CTX_wm_view3d(const bContext *C);
 struct RegionView3D *CTX_wm_region_view3d(const bContext *C);
+struct RegionSpaceClip *CTX_wm_region_clip(const bContext *C);
 struct SpaceText *CTX_wm_space_text(const bContext *C);
 struct SpaceImage *CTX_wm_space_image(const bContext *C);
 struct SpaceConsole *CTX_wm_space_console(const bContext *C);
diff --git a/source/blender/blenkernel/intern/context.c 
b/source/blender/blenkernel/intern/context.c
index 5b76985..1855f0a 100644
--- a/source/blender/blenkernel/intern/context.c
+++ b/source/blender/blenkernel/intern/context.c
@@ -685,6 +685,36 @@ RegionView3D *CTX_wm_region_view3d(const bContext *C)
        return NULL;
 }
 
+RegionSpaceClip *CTX_wm_region_clip(const bContext *C)
+{
+       ScrArea *sa = CTX_wm_area(C);
+       ARegion *ar_curr = CTX_wm_region(C);
+
+       if (sa && sa->spacetype == SPACE_CLIP)
+               /* only RGN_TYPE_WINDOW has regiondata */
+               if (ar_curr && ar_curr->regiontype == RGN_TYPE_WINDOW) {
+                       return ar_curr->regiondata;
+               }
+               else {
+                       /* search forward and backward to find regiondata */
+                       ARegion *ar = ar_curr->prev;
+                       while (ar) {
+                               if (ar->regiontype == RGN_TYPE_WINDOW) {
+                                       return ar->regiondata;
+                               }
+                               ar = ar->prev;
+                       }
+                       ar = ar_curr->next;
+                       while (ar) {
+                               if (ar->regiontype == RGN_TYPE_WINDOW) {
+                                       return ar->regiondata;
+                               }
+                               ar = ar->next;
+                       }
+               }
+       return NULL;
+}
+
 struct SpaceText *CTX_wm_space_text(const bContext *C)
 {
        ScrArea *sa = CTX_wm_area(C);
diff --git a/source/blender/blenloader/intern/writefile.c 
b/source/blender/blenloader/intern/writefile.c
index 5052b78..44c0546 100644
--- a/source/blender/blenloader/intern/writefile.c
+++ b/source/blender/blenloader/intern/writefile.c
@@ -2909,6 +2909,11 @@ static void write_region(WriteData *wd, ARegion *ar, int 
spacetype)
                                else
                                        printf("regiondata write missing!\n");
                                break;
+                       case SPACE_CLIP:
+                               if (ar->regiontype == RGN_TYPE_WINDOW) {
+                                       RegionSpaceClip *rsc = ar->regiondata;
+                                       writestruct(wd, DATA, RegionSpaceClip, 
1, rsc);
+                               }
                        default:
                                printf("regiondata write missing!\n");
                }
diff --git a/source/blender/editors/space_clip/clip_draw.c 
b/source/blender/editors/space_clip/clip_draw.c
index 99e1202..f59df48 100644
--- a/source/blender/editors/space_clip/clip_draw.c
+++ b/source/blender/editors/space_clip/clip_draw.c
@@ -472,7 +472,7 @@ static void draw_track_path(SpaceClip *sc, MovieClip 
*UNUSED(clip), MovieTrackin
        glEnd();
 }
 
-static void draw_marker_outline(SpaceClip *sc, MovieTrackingTrack *track, 
MovieTrackingMarker *marker,
+static void draw_marker_outline(SpaceClip *sc, ARegion *ar, MovieTrackingTrack 
*track, MovieTrackingMarker *marker,
                                 const float marker_pos[2], int width, int 
height)
 {
        int tiny = sc->flag & SC_SHOW_TINY_MARKER;
@@ -481,8 +481,9 @@ static void draw_marker_outline(SpaceClip *sc, 
MovieTrackingTrack *track, MovieT
 
        UI_ThemeColor(TH_MARKER_OUTLINE);
 
-       px[0] = 1.0f / width / sc->zoom;
-       px[1] = 1.0f / height / sc->zoom;
+       RegionSpaceClip *rsc = (RegionSpaceClip*) ar->regiondata;
+       px[0] = 1.0f / width / rsc->zoom;
+       px[1] = 1.0f / height / rsc->zoom;
 
        glLineWidth(tiny ? 1.0f : 3.0f);
 
@@ -586,7 +587,7 @@ static void track_colors(MovieTrackingTrack *track, int 
act, int link, float col
        }
 }
 
-static void draw_marker_areas(SpaceClip *sc, MovieTrackingTrack *track, 
MovieTrackingMarker *marker,
+static void draw_marker_areas(SpaceClip *sc, ARegion *ar, MovieTrackingTrack 
*track, MovieTrackingMarker *marker,
                               const float marker_pos[2], int width, int 
height, int act, int sel)
 {
        int tiny = sc->flag & SC_SHOW_TINY_MARKER;
@@ -597,8 +598,9 @@ static void draw_marker_areas(SpaceClip *sc, 
MovieTrackingTrack *track, MovieTra
        bool link = is_track_linked(tracking, track);
        track_colors(track, act, link, col, scol);
 
-       px[0] = 1.0f / width / sc->zoom;
-       px[1] = 1.0f / height / sc->zoom;
+       RegionSpaceClip *rsc = (RegionSpaceClip*) ar->regiondata;
+       px[0] = 1.0f / width / rsc->zoom;
+       px[1] = 1.0f / height / rsc->zoom;
 
        glLineWidth(1.0f);
 
@@ -806,7 +808,7 @@ static void draw_marker_slide_triangle(float x, float y, 
float dx, float dy, int
        glEnd();
 }
 
-static void draw_marker_slide_zones(SpaceClip *sc, MovieTrackingTrack *track, 
MovieTrackingMarker *marker,
+static void draw_marker_slide_zones(SpaceClip *sc, ARegion *ar, 
MovieTrackingTrack *track, MovieTrackingMarker *marker,
                                     const float marker_pos[2], int outline, 
int sel, int act, int width, int height)
 {
        float dx, dy, patdx, patdy, searchdx, searchdy;
@@ -830,8 +832,9 @@ static void draw_marker_slide_zones(SpaceClip *sc, 
MovieTrackingTrack *track, Mo
        glPushMatrix();
        glTranslate2fv(marker_pos);
 
-       dx = 6.0f / width / sc->zoom;
-       dy = 6.0f / height / sc->zoom;
+       RegionSpaceClip *rsc = (RegionSpaceClip*) ar->regiondata;
+       dx = 6.0f / width / rsc->zoom;
+       dy = 6.0f / height / rsc->zoom;
 
        side = get_shortest_pattern_side(marker);
        patdx = min_ff(dx * 2.0f / 3.0f, side / 6.0f) * UI_DPI_FAC;
@@ -840,8 +843,8 @@ static void draw_marker_slide_zones(SpaceClip *sc, 
MovieTrackingTrack *track, Mo
        searchdx = min_ff(dx, (marker->search_max[0] - marker->search_min[0]) / 
6.0f) * UI_DPI_FAC;
        searchdy = min_ff(dy, (marker->search_max[1] - marker->search_min[1]) / 
6.0f) * UI_DPI_FAC;
 
-       px[0] = 1.0f / sc->zoom / width / sc->scale;
-       px[1] = 1.0f / sc->zoom / height / sc->scale;
+       px[0] = 1.0f / rsc->zoom / width / sc->scale;
+       px[1] = 1.0f / rsc->zoom / height / sc->scale;
 
        if ((sc->flag & SC_SHOW_MARKER_SEARCH) && ((track->search_flag & 
SELECT) == sel || outline)) {
                if (!outline) {
@@ -1122,7 +1125,7 @@ static void draw_plane_marker_image(Scene *scene,
        BKE_image_release_ibuf(image, ibuf, lock);
 }
 
-static void draw_plane_marker_ex(SpaceClip *sc, Scene *scene, 
MovieTrackingPlaneTrack *plane_track,
+static void draw_plane_marker_ex(SpaceClip *sc, ARegion *ar, Scene *scene, 
MovieTrackingPlaneTrack *plane_track,
                                  MovieTrackingPlaneMarker *plane_marker, bool 
is_active_track,
                                  bool draw_outline, int width, int height)
 {
@@ -1147,8 +1150,9 @@ static void draw_plane_marker_ex(SpaceClip *sc, Scene 
*scene, MovieTrackingPlane
                }
        }
 
-       px[0] = 1.0f / width / sc->zoom;
-       px[1] = 1.0f / height / sc->zoom;
+       RegionSpaceClip *rsc = (RegionSpaceClip*) ar->regiondata;
+       px[0] = 1.0f / width / rsc->zoom;
+       px[1] = 1.0f / height / rsc->zoom;
 
        /* Draw image */
        if (draw_outline == false) {
@@ -1185,12 +1189,12 @@ static void draw_plane_marker_ex(SpaceClip *sc, Scene 
*scene, MovieTrackingPlane
 
                        glBegin(GL_LINES);
 
-                       getArrowEndPoint(width, height, sc->zoom, 
plane_marker->corners[0], plane_marker->corners[1], end_point);
+                       getArrowEndPoint(width, height, rsc->zoom, 
plane_marker->corners[0], plane_marker->corners[1], end_point);
                        glColor3f(1.0, 0.0, 0.0f);
                        glVertex2fv(plane_marker->corners[0]);
                        glVertex2fv(end_point);
 
-                       getArrowEndPoint(width, height, sc->zoom, 
plane_marker->corners[0], plane_marker->corners[3], end_point);
+                       getArrowEndPoint(width, height, rsc->zoom, 
plane_marker->corners[0], plane_marker->corners[3], end_point);
                        glColor3f(0.0, 1.0, 0.0f);
                        glVertex2fv(plane_marker->corners[0]);
                        glVertex2fv(end_point);
@@ -1218,28 +1222,28 @@ static void draw_plane_marker_ex(SpaceClip *sc, Scene 
*scene, MovieTrackingPlane
        }
 }
 
-static void draw_plane_marker_outline(SpaceClip *sc, Scene *scene, 
MovieTrackingPlaneTrack *plane_track,
+static void draw_plane_marker_outline(SpaceClip *sc, ARegion *ar, Scene 
*scene, MovieTrackingPlaneTrack *plane_track,
                                       MovieTrackingPlaneMarker *plane_marker, 
int width, int height)
 {
-       draw_plane_marker_ex(sc, scene, plane_track, plane_marker, false, true, 
width, height);
+       draw_plane_marker_ex(sc, ar, scene, plane_track, plane_marker, false, 
true, width, height);
 }
 
-static void draw_plane_marker(SpaceClip *sc, Scene *scene, 
MovieTrackingPlaneTrack *plane_track,
+static void draw_plane_marker(SpaceClip *sc, ARegion *ar, Scene *scene, 
MovieTrackingPlaneTrack *plane_track,
                               MovieTrackingPlaneMarker *plane_marker, bool 
is_active_track,
                               int width, int height)
 {
-       draw_plane_marker_ex(sc, scene, plane_track, plane_marker, 
is_active_track, false, width, height);
+       draw_plane_marker_ex(sc, ar, scene, plane_track, plane_marker, 
is_active_track, false, width, height);
 }
 
-static void draw_plane_track(SpaceClip *sc, Scene *scene, 
MovieTrackingPlaneTrack *plane_track,
+static void draw_plane_track(SpaceClip *sc, ARegion *ar, Scene *scene, 
MovieTrackingPlaneTrack *plane_track,
                              int framenr, bool is_active_track, int width, int 
height)
 {
        MovieTrackingPlaneMarker *plane_marker;
 
        plane_marker = BKE_tracking_plane_marker_get(plane_track, framenr);
 
-       draw_plane_marker_outline(sc, scene, plane_track, plane_marker, width, 
height);
-       draw_plane_marker(sc, scene, plane_track, plane_marker, 
is_active_track, width, height);
+       draw_plane_marker_outline(sc, ar, scene, plane_track, plane_marker, 
width, height);
+       draw_plane_marker(sc, ar, scene, plane_track, plane_marker, 
is_active_track, width, height);
 }
 
 /* Draw all kind of tracks. */
@@ -1283,7 +1287,7 @@ static void draw_tracking_tracks(SpaceClip *sc, Scene 
*scene, ARegion *ar, Movie
             plane_track = plane_track->next)
        {
                if ((plane_track->flag & PLANE_TRACK_HIDDEN) == 0) {
-                       draw_plane_track(sc, scene, plane_track, framenr, 
plane_track == active_plane_track, width, height);
+                       draw_plane_track(sc, ar, scene, plane_track, framenr, 
plane_track == active_plane_track, width, height);
                }
        }
 


@@ Diff output truncated at 10240 characters. @@

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

Reply via email to