[Bf-blender-cvs] [8e66dbd] soc-2016-multiview: seperate zoom from SpaceClip to RegionSpaceClip
Tianwei Shen
noreply at git.blender.org
Tue Aug 2 18:05:06 CEST 2016
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. @@
More information about the Bf-blender-cvs
mailing list