Fix #34040: Moving Normal Node with enabled Cycles Material Preview crashes
[blender.git] / source / blender / blenkernel / BKE_movieclip.h
index 827134bcbee29751538d40c90cd0313f1e0e1416..5777a4094bccb86f1beb6bcc893673f4d0f5435f 100644 (file)
@@ -15,7 +15,7 @@
  * along with this program; if not, write to the Free Software Foundation,
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
 * The Original Code is Copyright (C) 2011 Blender Foundation.
+ * The Original Code is Copyright (C) 2011 Blender Foundation.
  * All rights reserved.
  *
  * Contributor(s): Blender Foundation,
@@ -24,8 +24,8 @@
  * ***** END GPL LICENSE BLOCK *****
  */
 
-#ifndef BKE_MOVIECLIP_H
-#define BKE_MOVIECLIP_H
+#ifndef __BKE_MOVIECLIP_H__
+#define __BKE_MOVIECLIP_H__
 
 /** \file BKE_movieclip.h
  *  \ingroup bke
@@ -40,32 +40,40 @@ struct MovieClipUser;
 struct MovieTrackingTrack;
 struct MovieDistortion;
 
-void free_movieclip(struct MovieClip *clip);
-void unlink_movieclip(struct Main *bmain, struct MovieClip *clip);
+void BKE_movieclip_free(struct MovieClip *clip);
+void BKE_movieclip_unlink(struct Main *bmain, struct MovieClip *clip);
 
-struct MovieClip *BKE_add_movieclip_file(const char *name);
+struct MovieClip *BKE_movieclip_file_add(struct Main *bmain, const char *name);
 void BKE_movieclip_reload(struct MovieClip *clip);
 
 struct ImBuf *BKE_movieclip_get_ibuf(struct MovieClip *clip, struct MovieClipUser *user);
-struct ImBuf *BKE_movieclip_get_stable_ibuf(struct MovieClip *clip, struct MovieClipUser *user, float loc[2], float *scale, float *angle);
-struct ImBuf *BKE_movieclip_get_ibuf_flag(struct MovieClip *clip, struct MovieClipUser *user, int flag);
+struct ImBuf *BKE_movieclip_get_postprocessed_ibuf(struct MovieClip *clip, struct MovieClipUser *user, int postprocess_flag);
+struct ImBuf *BKE_movieclip_get_stable_ibuf(struct MovieClip *clip, struct MovieClipUser *user, float loc[2], float *scale, float *angle, int postprocess_flag);
+struct ImBuf *BKE_movieclip_get_ibuf_flag(struct MovieClip *clip, struct MovieClipUser *user, int flag, int cache_flag);
 void BKE_movieclip_get_size(struct MovieClip *clip, struct MovieClipUser *user, int *width, int *height);
-void BKE_movieclip_aspect(struct MovieClip *clip, float *aspx, float *aspy);
-int BKE_movieclip_has_frame(struct MovieClip *clip, struct MovieClipUser *user);
+void BKE_movieclip_get_size_fl(struct MovieClip *clip, struct MovieClipUser *user, float size[2]);
+int  BKE_movieclip_get_duration(struct MovieClip *clip);
+void BKE_movieclip_get_aspect(struct MovieClip *clip, float *aspx, float *aspy);
+int  BKE_movieclip_has_frame(struct MovieClip *clip, struct MovieClipUser *user);
 void BKE_movieclip_user_set_frame(struct MovieClipUser *user, int framenr);
 
-void BKE_movieclip_select_track(struct MovieClip *clip, struct MovieTrackingTrack *track, int area, int extend);
-void BKE_movieclip_deselect_track(struct MovieClip *clip, struct MovieTrackingTrack *track, int area);
-
 void BKE_movieclip_update_scopes(struct MovieClip *clip, struct MovieClipUser *user, struct MovieClipScopes *scopes);
 
 void BKE_movieclip_get_cache_segments(struct MovieClip *clip, struct MovieClipUser *user, int *totseg_r, int **points_r);
 
-void BKE_movieclip_build_proxy_frame(struct MovieClip *clip, struct MovieDistortion *distortion,
-                       int cfra, int *build_sizes, int build_count, int undistorted);
+void BKE_movieclip_build_proxy_frame(struct MovieClip *clip, int clip_flag, struct MovieDistortion *distortion,
+                                     int cfra, int *build_sizes, int build_count, int undistorted);
+
+float BKE_movieclip_remap_scene_to_clip_frame(struct MovieClip *clip, float framenr);
+float BKE_movieclip_remap_clip_to_scene_frame(struct MovieClip *clip, float framenr);
+
+/* cacheing flags */
+#define MOVIECLIP_CACHE_SKIP        (1 << 0)
 
-#define TRACK_CLEAR_UPTO               0
-#define TRACK_CLEAR_REMAINED   1
-#define TRACK_CLEAR_ALL                        2
+/* postprocessing flags */
+#define MOVIECLIP_DISABLE_RED       (1 << 0)
+#define MOVIECLIP_DISABLE_GREEN     (1 << 1)
+#define MOVIECLIP_DISABLE_BLUE      (1 << 2)
+#define MOVIECLIP_PREVIEW_GRAYSCALE (1 << 3)
 
 #endif