| 
									
										
										
										
											2020-11-05 13:33:27 +01:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  * 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. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * The Original Code is Copyright (C) 2004 Blender Foundation. | 
					
						
							|  |  |  |  * All rights reserved. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #pragma once
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /** \file
 | 
					
						
							|  |  |  |  * \ingroup sequencer | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifdef __cplusplus
 | 
					
						
							|  |  |  | extern "C" { | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | struct ImBuf; | 
					
						
							| 
									
										
										
										
											2020-11-06 10:29:00 +11:00
										 |  |  | struct ListBase; | 
					
						
							| 
									
										
										
										
											2020-11-05 13:33:27 +01:00
										 |  |  | struct Scene; | 
					
						
							| 
									
										
										
										
											2021-01-04 12:03:34 +11:00
										 |  |  | struct SeqEffectHandle; | 
					
						
							| 
									
										
										
										
											2020-11-06 10:29:00 +11:00
										 |  |  | struct SeqRenderData; | 
					
						
							| 
									
										
										
										
											2020-11-05 13:33:27 +01:00
										 |  |  | struct Sequence; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-16 05:02:30 +01:00
										 |  |  | #define EARLY_NO_INPUT -1
 | 
					
						
							|  |  |  | #define EARLY_DO_EFFECT 0
 | 
					
						
							|  |  |  | #define EARLY_USE_INPUT_1 1
 | 
					
						
							|  |  |  | #define EARLY_USE_INPUT_2 2
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-05 13:33:27 +01:00
										 |  |  | /* mutable state for sequencer */ | 
					
						
							|  |  |  | typedef struct SeqRenderState { | 
					
						
							|  |  |  |   struct LinkNode *scene_parents; | 
					
						
							|  |  |  | } SeqRenderState; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void seq_render_state_init(SeqRenderState *state); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | struct ImBuf *seq_render_give_ibuf_seqbase(const struct SeqRenderData *context, | 
					
						
							| 
									
										
										
										
											2020-11-06 14:10:59 +01:00
										 |  |  |                                            float timeline_frame, | 
					
						
							| 
									
										
										
										
											2020-11-05 13:33:27 +01:00
										 |  |  |                                            int chan_shown, | 
					
						
							|  |  |  |                                            struct ListBase *seqbasep); | 
					
						
							|  |  |  | struct ImBuf *seq_render_effect_execute_threaded(struct SeqEffectHandle *sh, | 
					
						
							| 
									
										
										
										
											2020-12-19 06:44:57 +01:00
										 |  |  |                                                  const struct SeqRenderData *context, | 
					
						
							| 
									
										
										
										
											2020-11-05 13:33:27 +01:00
										 |  |  |                                                  struct Sequence *seq, | 
					
						
							| 
									
										
										
										
											2020-11-06 14:10:59 +01:00
										 |  |  |                                                  float timeline_frame, | 
					
						
							| 
									
										
										
										
											2020-11-05 13:33:27 +01:00
										 |  |  |                                                  float facf0, | 
					
						
							|  |  |  |                                                  float facf1, | 
					
						
							|  |  |  |                                                  struct ImBuf *ibuf1, | 
					
						
							|  |  |  |                                                  struct ImBuf *ibuf2, | 
					
						
							|  |  |  |                                                  struct ImBuf *ibuf3); | 
					
						
							|  |  |  | void seq_imbuf_to_sequencer_space(struct Scene *scene, struct ImBuf *ibuf, bool make_float); | 
					
						
							|  |  |  | int seq_get_shown_sequences(struct ListBase *seqbasep, | 
					
						
							| 
									
										
										
										
											2020-11-06 14:10:59 +01:00
										 |  |  |                             int timeline_frame, | 
					
						
							| 
									
										
										
										
											2020-11-05 13:33:27 +01:00
										 |  |  |                             int chanshown, | 
					
						
							|  |  |  |                             struct Sequence **seq_arr_out); | 
					
						
							|  |  |  | struct ImBuf *seq_render_strip(const struct SeqRenderData *context, | 
					
						
							|  |  |  |                                struct SeqRenderState *state, | 
					
						
							|  |  |  |                                struct Sequence *seq, | 
					
						
							| 
									
										
										
										
											2020-11-06 14:10:59 +01:00
										 |  |  |                                float timeline_frame); | 
					
						
							| 
									
										
										
										
											2020-11-05 13:33:27 +01:00
										 |  |  | struct ImBuf *seq_render_mask(const struct SeqRenderData *context, | 
					
						
							|  |  |  |                               struct Mask *mask, | 
					
						
							| 
									
										
										
										
											2020-11-06 14:10:59 +01:00
										 |  |  |                               float frame_index, | 
					
						
							| 
									
										
										
										
											2020-11-05 13:33:27 +01:00
										 |  |  |                               bool make_float); | 
					
						
							|  |  |  | void seq_imbuf_assign_spaces(struct Scene *scene, struct ImBuf *ibuf); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifdef __cplusplus
 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | #endif
 |