| 
									
										
										
										
											2020-12-19 06:44:57 +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
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-01-04 12:03:34 +11:00
										 |  |  | struct ListBase; | 
					
						
							|  |  |  | struct Main; | 
					
						
							|  |  |  | struct Scene; | 
					
						
							| 
									
										
										
										
											2020-12-19 06:44:57 +01:00
										 |  |  | struct Sequence; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | typedef enum eSeqTaskId { | 
					
						
							|  |  |  |   SEQ_TASK_MAIN_RENDER, | 
					
						
							|  |  |  |   SEQ_TASK_PREFETCH_RENDER, | 
					
						
							|  |  |  | } eSeqTaskId; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | typedef struct SeqRenderData { | 
					
						
							|  |  |  |   struct Main *bmain; | 
					
						
							|  |  |  |   struct Depsgraph *depsgraph; | 
					
						
							|  |  |  |   struct Scene *scene; | 
					
						
							|  |  |  |   int rectx; | 
					
						
							|  |  |  |   int recty; | 
					
						
							|  |  |  |   int preview_render_size; | 
					
						
							| 
									
										
										
										
											2021-03-16 17:59:30 +01:00
										 |  |  |   bool use_proxies; | 
					
						
							| 
									
										
										
										
											2020-12-19 06:44:57 +01:00
										 |  |  |   int for_render; | 
					
						
							|  |  |  |   int motion_blur_samples; | 
					
						
							|  |  |  |   float motion_blur_shutter; | 
					
						
							|  |  |  |   bool skip_cache; | 
					
						
							|  |  |  |   bool is_proxy_render; | 
					
						
							|  |  |  |   bool is_prefetch_render; | 
					
						
							|  |  |  |   int view_id; | 
					
						
							| 
									
										
										
										
											2021-02-05 19:07:03 -08:00
										 |  |  |   /* ID of task for assigning temp cache entries to particular task(thread, etc.) */ | 
					
						
							| 
									
										
										
										
											2020-12-19 06:44:57 +01:00
										 |  |  |   eSeqTaskId task_id; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   /* special case for OpenGL render */ | 
					
						
							|  |  |  |   struct GPUOffScreen *gpu_offscreen; | 
					
						
							|  |  |  |   // int gpu_samples;
 | 
					
						
							|  |  |  |   // bool gpu_full_samples;
 | 
					
						
							|  |  |  | } SeqRenderData; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | struct ImBuf *SEQ_render_give_ibuf(const SeqRenderData *context, | 
					
						
							|  |  |  |                                    float timeline_frame, | 
					
						
							|  |  |  |                                    int chanshown); | 
					
						
							|  |  |  | struct ImBuf *SEQ_render_give_ibuf_direct(const SeqRenderData *context, | 
					
						
							|  |  |  |                                           float timeline_frame, | 
					
						
							|  |  |  |                                           struct Sequence *seq); | 
					
						
							|  |  |  | void SEQ_render_init_colorspace(struct Sequence *seq); | 
					
						
							|  |  |  | void SEQ_render_new_render_data(struct Main *bmain, | 
					
						
							|  |  |  |                                 struct Depsgraph *depsgraph, | 
					
						
							|  |  |  |                                 struct Scene *scene, | 
					
						
							|  |  |  |                                 int rectx, | 
					
						
							|  |  |  |                                 int recty, | 
					
						
							|  |  |  |                                 int preview_render_size, | 
					
						
							|  |  |  |                                 int for_render, | 
					
						
							|  |  |  |                                 SeqRenderData *r_context); | 
					
						
							|  |  |  | int SEQ_render_evaluate_frame(struct ListBase *seqbase, int timeline_frame); | 
					
						
							|  |  |  | struct StripElem *SEQ_render_give_stripelem(struct Sequence *seq, int timeline_frame); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void SEQ_render_imbuf_from_sequencer_space(struct Scene *scene, struct ImBuf *ibuf); | 
					
						
							|  |  |  | void SEQ_render_pixel_from_sequencer_space_v4(struct Scene *scene, float pixel[4]); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifdef __cplusplus
 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | #endif
 |