Blender  V2.93
SEQ_modifier.h
Go to the documentation of this file.
1 /*
2  * This program is free software; you can redistribute it and/or
3  * modify it under the terms of the GNU General Public License
4  * as published by the Free Software Foundation; either version 2
5  * of the License, or (at your option) any later version.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10  * GNU General Public License for more details.
11  *
12  * You should have received a copy of the GNU General Public License
13  * along with this program; if not, write to the Free Software Foundation,
14  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
15  *
16  * The Original Code is Copyright (C) 2004 Blender Foundation.
17  * All rights reserved.
18  */
19 
20 #pragma once
21 
26 #ifdef __cplusplus
27 extern "C" {
28 #endif
29 
30 struct BlendDataReader;
31 struct BlendLibReader;
32 struct BlendWriter;
33 struct ImBuf;
34 struct ListBase;
35 struct Scene;
36 struct SeqRenderData;
37 struct Sequence;
39 
40 typedef struct SequenceModifierTypeInfo {
41  /* default name for the modifier */
42  char name[64]; /* MAX_NAME */
43 
44  /* DNA structure name used on load/save filed */
45  char struct_name[64]; /* MAX_NAME */
46 
47  /* size of modifier data structure, used by allocation */
49 
50  /* data initialization */
51  void (*init_data)(struct SequenceModifierData *smd);
52 
53  /* free data used by modifier,
54  * only modifier-specific data should be freed, modifier descriptor would
55  * be freed outside of this callback
56  */
57  void (*free_data)(struct SequenceModifierData *smd);
58 
59  /* copy data from one modifier to another */
60  void (*copy_data)(struct SequenceModifierData *smd, struct SequenceModifierData *target);
61 
62  /* apply modifier on a given image buffer */
63  void (*apply)(struct SequenceModifierData *smd, struct ImBuf *ibuf, struct ImBuf *mask);
65 
67 struct SequenceModifierData *SEQ_modifier_new(struct Sequence *seq, const char *name, int type);
68 bool SEQ_modifier_remove(struct Sequence *seq, struct SequenceModifierData *smd);
69 void SEQ_modifier_clear(struct Sequence *seq);
70 void SEQ_modifier_free(struct SequenceModifierData *smd);
71 void SEQ_modifier_unique_name(struct Sequence *seq, struct SequenceModifierData *smd);
72 struct SequenceModifierData *SEQ_modifier_find_by_name(struct Sequence *seq, const char *name);
74  struct Sequence *seq,
75  struct ImBuf *ibuf,
76  int timeline_frame);
77 void SEQ_modifier_list_copy(struct Sequence *seqn, struct Sequence *seq);
79 
80 void SEQ_modifier_blend_write(struct BlendWriter *writer, struct ListBase *modbase);
81 void SEQ_modifier_blend_read_data(struct BlendDataReader *reader, struct ListBase *lb);
83  struct Scene *scene,
84  struct ListBase *lb);
85 
86 #ifdef __cplusplus
87 }
88 #endif
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum type
void SEQ_modifier_free(struct SequenceModifierData *smd)
void SEQ_modifier_list_copy(struct Sequence *seqn, struct Sequence *seq)
void SEQ_modifier_clear(struct Sequence *seq)
void SEQ_modifier_unique_name(struct Sequence *seq, struct SequenceModifierData *smd)
bool SEQ_modifier_remove(struct Sequence *seq, struct SequenceModifierData *smd)
struct ImBuf * SEQ_modifier_apply_stack(const struct SeqRenderData *context, struct Sequence *seq, struct ImBuf *ibuf, int timeline_frame)
struct SequenceModifierData * SEQ_modifier_new(struct Sequence *seq, const char *name, int type)
void SEQ_modifier_blend_read_data(struct BlendDataReader *reader, struct ListBase *lb)
int SEQ_sequence_supports_modifiers(struct Sequence *seq)
void SEQ_modifier_blend_read_lib(struct BlendLibReader *reader, struct Scene *scene, struct ListBase *lb)
struct SequenceModifierData * SEQ_modifier_find_by_name(struct Sequence *seq, const char *name)
struct SequenceModifierTypeInfo SequenceModifierTypeInfo
const struct SequenceModifierTypeInfo * SEQ_modifier_type_info_get(int type)
void SEQ_modifier_blend_write(struct BlendWriter *writer, struct ListBase *modbase)
Scene scene
struct SELECTID_Context context
Definition: select_engine.c:47
void(* init_data)(struct SequenceModifierData *smd)
Definition: SEQ_modifier.h:51
void(* free_data)(struct SequenceModifierData *smd)
Definition: SEQ_modifier.h:57
void(* apply)(struct SequenceModifierData *smd, struct ImBuf *ibuf, struct ImBuf *mask)
Definition: SEQ_modifier.h:63
void(* copy_data)(struct SequenceModifierData *smd, struct SequenceModifierData *target)
Definition: SEQ_modifier.h:60
ccl_device_inline float4 mask(const int4 &mask, const float4 &a)