89 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			89 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
/*
 | 
						|
 * 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 BlendDataReader;
 | 
						|
struct BlendLibReader;
 | 
						|
struct BlendWriter;
 | 
						|
struct ImBuf;
 | 
						|
struct ListBase;
 | 
						|
struct Scene;
 | 
						|
struct SeqRenderData;
 | 
						|
struct Sequence;
 | 
						|
struct SequenceModifierData;
 | 
						|
 | 
						|
typedef struct SequenceModifierTypeInfo {
 | 
						|
  /* default name for the modifier */
 | 
						|
  char name[64]; /* MAX_NAME */
 | 
						|
 | 
						|
  /* DNA structure name used on load/save filed */
 | 
						|
  char struct_name[64]; /* MAX_NAME */
 | 
						|
 | 
						|
  /* size of modifier data structure, used by allocation */
 | 
						|
  int struct_size;
 | 
						|
 | 
						|
  /* data initialization */
 | 
						|
  void (*init_data)(struct SequenceModifierData *smd);
 | 
						|
 | 
						|
  /* free data used by modifier,
 | 
						|
   * only modifier-specific data should be freed, modifier descriptor would
 | 
						|
   * be freed outside of this callback
 | 
						|
   */
 | 
						|
  void (*free_data)(struct SequenceModifierData *smd);
 | 
						|
 | 
						|
  /* copy data from one modifier to another */
 | 
						|
  void (*copy_data)(struct SequenceModifierData *smd, struct SequenceModifierData *target);
 | 
						|
 | 
						|
  /* apply modifier on a given image buffer */
 | 
						|
  void (*apply)(struct SequenceModifierData *smd, struct ImBuf *ibuf, struct ImBuf *mask);
 | 
						|
} SequenceModifierTypeInfo;
 | 
						|
 | 
						|
const struct SequenceModifierTypeInfo *SEQ_modifier_type_info_get(int type);
 | 
						|
struct SequenceModifierData *SEQ_modifier_new(struct Sequence *seq, const char *name, int type);
 | 
						|
bool SEQ_modifier_remove(struct Sequence *seq, struct SequenceModifierData *smd);
 | 
						|
void SEQ_modifier_clear(struct Sequence *seq);
 | 
						|
void SEQ_modifier_free(struct SequenceModifierData *smd);
 | 
						|
void SEQ_modifier_unique_name(struct Sequence *seq, struct SequenceModifierData *smd);
 | 
						|
struct SequenceModifierData *SEQ_modifier_find_by_name(struct Sequence *seq, const char *name);
 | 
						|
struct ImBuf *SEQ_modifier_apply_stack(const struct SeqRenderData *context,
 | 
						|
                                       struct Sequence *seq,
 | 
						|
                                       struct ImBuf *ibuf,
 | 
						|
                                       int timeline_frame);
 | 
						|
void SEQ_modifier_list_copy(struct Sequence *seqn, struct Sequence *seq);
 | 
						|
int SEQ_sequence_supports_modifiers(struct Sequence *seq);
 | 
						|
 | 
						|
void SEQ_modifier_blend_write(struct BlendWriter *writer, struct ListBase *modbase);
 | 
						|
void SEQ_modifier_blend_read_data(struct BlendDataReader *reader, struct ListBase *lb);
 | 
						|
void SEQ_modifier_blend_read_lib(struct BlendLibReader *reader,
 | 
						|
                                 struct Scene *scene,
 | 
						|
                                 struct ListBase *lb);
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
}
 | 
						|
#endif
 |