Use a shorter/simpler license convention, stops the header taking so much space. Follow the SPDX license specification: https://spdx.org/licenses - C/C++/objc/objc++ - Python - Shell Scripts - CMake, GNUmakefile While most of the source tree has been included - `./extern/` was left out. - `./intern/cycles` & `./intern/atomic` are also excluded because they use different header conventions. doc/license/SPDX-license-identifiers.txt has been added to list SPDX all used identifiers. See P2788 for the script that automated these edits. Reviewed By: brecht, mont29, sergey Ref D14069
		
			
				
	
	
		
			98 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			98 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
/* SPDX-License-Identifier: GPL-2.0-or-later
 | 
						|
 * Copyright 2004 Blender Foundation. All rights reserved. */
 | 
						|
 | 
						|
#pragma once
 | 
						|
 | 
						|
/** \file
 | 
						|
 * \ingroup sequencer
 | 
						|
 */
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
extern "C" {
 | 
						|
#endif
 | 
						|
 | 
						|
struct ImBuf;
 | 
						|
struct SeqRenderData;
 | 
						|
struct Sequence;
 | 
						|
struct TextVars;
 | 
						|
 | 
						|
/* Wipe effect */
 | 
						|
enum {
 | 
						|
  DO_SINGLE_WIPE,
 | 
						|
  DO_DOUBLE_WIPE,
 | 
						|
  /* DO_BOX_WIPE, */   /* UNUSED */
 | 
						|
  /* DO_CROSS_WIPE, */ /* UNUSED */
 | 
						|
  DO_IRIS_WIPE,
 | 
						|
  DO_CLOCK_WIPE,
 | 
						|
};
 | 
						|
 | 
						|
struct SeqEffectHandle {
 | 
						|
  bool multithreaded;
 | 
						|
  bool supports_mask;
 | 
						|
 | 
						|
  /* constructors & destructor */
 | 
						|
  /* init is _only_ called on first creation */
 | 
						|
  void (*init)(struct Sequence *seq);
 | 
						|
 | 
						|
  /* number of input strips needed
 | 
						|
   * (called directly after construction) */
 | 
						|
  int (*num_inputs)(void);
 | 
						|
 | 
						|
  /* load is called first time after readblenfile in
 | 
						|
   * get_sequence_effect automatically */
 | 
						|
  void (*load)(struct Sequence *seqconst);
 | 
						|
 | 
						|
  /* duplicate */
 | 
						|
  void (*copy)(struct Sequence *dst, struct Sequence *src, int flag);
 | 
						|
 | 
						|
  /* destruct */
 | 
						|
  void (*free)(struct Sequence *seq, bool do_id_user);
 | 
						|
 | 
						|
  /* returns: -1: no input needed,
 | 
						|
   * 0: no early out,
 | 
						|
   * 1: out = ibuf1,
 | 
						|
   * 2: out = ibuf2 */
 | 
						|
  int (*early_out)(struct Sequence *seq, float fac);
 | 
						|
 | 
						|
  /* sets the default `fac` value */
 | 
						|
  void (*get_default_fac)(struct Sequence *seq, float timeline_frame, float *fac);
 | 
						|
 | 
						|
  /* execute the effect
 | 
						|
   * sequence effects are only required to either support
 | 
						|
   * float-rects or byte-rects
 | 
						|
   * (mixed cases are handled one layer up...) */
 | 
						|
 | 
						|
  struct ImBuf *(*execute)(const struct SeqRenderData *context,
 | 
						|
                           struct Sequence *seq,
 | 
						|
                           float timeline_frame,
 | 
						|
                           float fac,
 | 
						|
                           struct ImBuf *ibuf1,
 | 
						|
                           struct ImBuf *ibuf2,
 | 
						|
                           struct ImBuf *ibuf3);
 | 
						|
 | 
						|
  struct ImBuf *(*init_execution)(const struct SeqRenderData *context,
 | 
						|
                                  struct ImBuf *ibuf1,
 | 
						|
                                  struct ImBuf *ibuf2,
 | 
						|
                                  struct ImBuf *ibuf3);
 | 
						|
 | 
						|
  void (*execute_slice)(const struct SeqRenderData *context,
 | 
						|
                        struct Sequence *seq,
 | 
						|
                        float timeline_frame,
 | 
						|
                        float fac,
 | 
						|
                        struct ImBuf *ibuf1,
 | 
						|
                        struct ImBuf *ibuf2,
 | 
						|
                        struct ImBuf *ibuf3,
 | 
						|
                        int start_line,
 | 
						|
                        int total_lines,
 | 
						|
                        struct ImBuf *out);
 | 
						|
};
 | 
						|
 | 
						|
struct SeqEffectHandle SEQ_effect_handle_get(struct Sequence *seq);
 | 
						|
int SEQ_effect_get_num_inputs(int seq_type);
 | 
						|
void SEQ_effect_text_font_unload(struct TextVars *data, bool do_id_user);
 | 
						|
void SEQ_effect_text_font_load(struct TextVars *data, bool do_id_user);
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
}
 | 
						|
#endif
 |