文章目录
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
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?