文章目录
1.AE内部结构定义
- 1.AE内部结构定义
- 2.作者答疑
开发AE插件会使用到非常多的AE内部数据结构,先大致了解这些结构对于开发AE插件,还是非常有帮助,源代码如下所示:
//CC
#define PF_AE141_PLUG_IN_VERSION 13 // auto-set by prep_codeline_for_release.py, adjust comment if manually edit is okay
#define PF_AE141_PLUG_IN_SUBVERS 14 // auto-set by prep_codeline_for_release.py, adjust comment if manually edit is okay
#define PF_AE140_PLUG_IN_VERSION 13 // auto-set by prep_codeline_for_release.py, adjust comment if manually edit is okay
#define PF_AE140_PLUG_IN_SUBVERS 13 // auto-set by prep_codeline_for_release.py, adjust comment if manually edit is okay
#define PF_AE138_PLUG_IN_VERSION 13 // auto-set by prep_codeline_for_release.py, adjust comment if manually edit is okay
#define PF_AE138_PLUG_IN_SUBVERS 11 // auto-set by prep_codeline_for_release.py, adjust comment if manually edit is okay
// AE137 is same plugin version as AE136, below
#define PF_AE136_PLUG_IN_VERSION 13 // auto-set by prep_codeline_for_release.py, adjust comment if manually edit is okay
#define PF_AE136_PLUG_IN_SUBVERS 10 // auto-set by prep_codeline_for_release.py, adjust comment if manually edit is okay
#define PF_AE135_PLUG_IN_VERSION 13 // auto-set by prep_codeline_for_release.py, adjust comment if manually edit is okay
#define PF_AE135_PLUG_IN_SUBVERS 9 // auto-set by prep_codeline_for_release.py, adjust comment if manually edit is okay
// AE131 and AE132 are the same plugin version as AE130, below
#define PF_AE130_PLUG_IN_VERSION 13 // auto-set by prep_codeline_for_release.py, adjust comment if manually edit okay
#define PF_AE130_PLUG_IN_SUBVERS 7 // auto-set by prep_codeline_for_release.py, adjust comment if manually edit okay
#define PF_AE122_PLUG_IN_VERSION 13 // auto-set by prep_codeline_for_release.py, adjust comment if manually edit okay
#define PF_AE122_PLUG_IN_SUBVERS 6 // auto-set by prep_codeline_for_release.py, adjust comment if manually edit okay
#define PF_AE121_PLUG_IN_VERSION 13 // auto-set by prep_codeline_for_release.py, adjust comment if manually edit okay
#define PF_AE121_PLUG_IN_SUBVERS 5 // auto-set by prep_codeline_for_release.py, adjust comment if manually edit okay
#define PF_AE120_PLUG_IN_VERSION 13
#define PF_AE120_PLUG_IN_SUBVERS 4
//CS6.0.1
//Plugins have to make dummy checkout (hack) to fix W3163764 in CS6. The bug has been fixed in CS6.0.1 so increase SDK minor version
//so that plugins can constrain the hack only for CS6.
#define PF_AE1101_PLUG_IN_VERSION 13
#define PF_AE1101_PLUG_IN_SUBVERS 3
#define PF_AE110_PLUG_IN_VERSION 13
#define PF_AE110_PLUG_IN_SUBVERS 2
#define PF_AE105_PLUG_IN_VERSION 13
#define PF_AE105_PLUG_IN_SUBVERS 1
#define PF_AE100_PLUG_IN_VERSION 13
#define PF_AE100_PLUG_IN_SUBVERS 0
#define PF_AE90_PLUG_IN_VERSION 12
#define PF_AE90_PLUG_IN_SUBVERS 14
#define PF_AE80_PLUG_IN_VERSION 12
#define PF_AE80_PLUG_IN_SUBVERS 13
#define PF_AE70_PLUG_IN_VERSION 12
#define PF_AE70_PLUG_IN_SUBVERS 12
#define PF_AE65_PLUG_IN_VERSION 12
#define PF_AE65_PLUG_IN_SUBVERS 11
#define PF_AE41_PLUG_IN_VERSION 12
#define PF_AE41_PLUG_IN_SUBVERS 2
#define PF_AE40_PLUG_IN_VERSION 12
#define PF_AE40_PLUG_IN_SUBVERS 1
#define PF_AE31_PLUG_IN_VERSION 11
#define PF_AE31_PLUG_IN_SUBVERS 6
#define PF_AE31_PLUG_IN_SUBVERS_STRICTIFY 8
#define PF_AE_PLUG_IN_VERSION PF_AE141_PLUG_IN_VERSION // auto-set by prep_codeline_for_release.py, adjust comment if manually edit is okay
#define PF_AE_PLUG_IN_SUBVERS PF_AE141_PLUG_IN_SUBVERS // auto-set by prep_codeline_for_release.py, adjust comment if manually edit is okay
/* Note: AE3.1 will drive any v11.x plugin
AE4.0 will drive any v11.x or v12.x plugin
AE4.1 will drive any v11.x or v12.x plugin, changed current version from 12.1 -> 12.2
If you use PF_AE31_PLUG_IN_VERSION, PF_AE31_PLUG_IN_SUBVERS_STRICTIFY
or later (e.g. 11.8 or 12.0) AE4.0 will enforce new stricter rules and
report more plug-in errors.
*/
这一部分是版本定义,区别各种不同版本。部分常用参数和枚举变量,代码如下:
#define PF_MAX_EFFECT_NAME_LEN 31
#define PF_MAX_EFFECT_CATEGORY_NAME_LEN 31
#define PF_MAX_EFFECT_PARAM_NAME_LEN 31
#define PF_MAX_PARAM_DESCRIPTION_LEN 31
#define PF_MAX_PARAM_VALUE_LEN 31
#define PF_MAX_EFFECT_MSG_LEN 255
// Through AE6.5, effects could only have this many parameters. Now the number is unlimited.
#define PF_AE65_AND_EARLIER_MAX_NUM_EFFECT_PARAMS 127
#define PF_MAX_WORLD_WIDTH 30000
#define PF_MAX_WORLD_HEIGHT 30000
#define PF_FIRST_ERR 512
/* Standard effect categories for After Effects effects modules.
* These need to be set in the PiPL.
*/
#define PF_Category_BLUR_AND_SHARPEN "Blur & Sharpen"
#define PF_Category_CHANNEL "Channel"
#define PF_Category_DISTORT "Distort"
#define PF_Category_IMAGE_CONTROL "Image Control"
#define PF_Category_KEYING "Keying"
#define PF_Category_PERSPECTIVE "Perspective"
#define PF_Category_STYLIZE "Stylize"
#define PF_Category_TEXT "Text"
#define PF_Category_VIDEO "Video"
#define PF_Category_TRANSITION "Transition"
#define PF_Category_AUDIO "Audio"
#define PF_Category_OTHER "Other"
enum {
PF_Quality_DRAWING_AUDIO = -1, // only used to inform audio plugins that the output
// will be used to draw the waveform; the plugin should
// not perform any filtering operations that may weaken
// the amplitude when rendering at low sampling rates
PF_Quality_LO = 0, // LO & HI are sent to both audio & visual effects
PF_Quality_HI
};
typedef A_long PF_Quality;
enum {
PF_MF_Alpha_PREMUL = 0,
PF_MF_Alpha_STRAIGHT = (1L
关注
打赏
热门博文
- Adobe illustrator插件开发-SPInterfaceSuite-插件A向插件B传递消息-插件通信-AI插件开发
- javascript-ztree-树形控件-初始化-加载节点数据-节点数据获取
- Adobe illustrator插件开发-坐标系统-AIHardSoftSuite-画板坐标-页面坐标-AI插件开发
- Adobe illustrator插件开发-AIUIDUtilsSuite-AIUIDPoolSuite-AIUIDSuite-AIUIDREFSuite-Art唯一标识符与索引-AI插件开发
- C++-逆向分析-类的成员函数地址与对象地址动态绑定-this指针-成员函数和成员虚函数反汇编解析
- C++-逆向分析-结构体和类-内存布局-this指针-静态数据成员-对象作为参数和返回值
- Adobe illustrator插件开发-命令名称-AddCommand -AI插件开发
- Adobe illustrator插件开发-事件-PlugPlugAddEventListener-向系统注册事件-AI插件开发
- Adobe illustrator插件开发-ole拖拽粘贴交换数据格式-RegisterClipboardFormat函数-AI插件开发
- Adobe illustrator插件开发-所有模块列表-内部存在大量非公开的Suite-AI插件开发