Adobe AE插件原理及其实现

PICA构件体系
在PICA的实现中,有一个与COM类似的接口Suite。Suite实际上是函数指针的结构体,PICA体系按功能将PICA API函数做成不同的Suite提供给用户。下面是PlCA最基本的Suite,其它的Suite都是通过该Suite获得。

与COM区别
将PICA与COM的接口进行对比。PICA将所有接口做成全局的静态结构,并将它们组成不同的链表,因而实现和操作相对简单。COM的所有接口都是动态的,接口中的虚函数是通过类来实现。每个类都有一个128位的GUID(全局唯一标识符)来标识,并将该标识存放在注册表中,通过对注册表的查询丽得到其它接口。要定位一个插件,必须首先知道插件名和版本号。插件名和该插件的版本唯一确定了一个插件,这样相同的插件可以有不同的版本,从而解决了插件新旧版本共存的问题,实现了插件的版本管理。
在这里插入图片描述

PICA的消息传送机制
PICA将其内部的消息称为Selector,根据消息的不同作用,PICA的消息可以分为五个部分。

具体来说插件的调用过程为:
第一次调用插件时,插件首先会依次收到的消息为: PF_Cmd_GLOBAL_SETUP, PF_Cmd_PARAMS_SETUP . 用每次使用插件对某一帧施加效果时,都将产 生 PF_Cmd_PARAMS_SETUP 消息。

要产生(Render)—帧,应用程序要依次发送以下 消息:

PF_Cmd_FRAME_SETUP,PF_Cmd_RENDEP,PF_Cmd_FRAME_SETDOWN,退_出,用户放操作或者关闭应用程序时产生消息PF_Cmd_SEQUENCE_SETDOWN.
工程文件被打开或层被改变时,消息PF_Cmd_ SEQUENCE_RESETUP 将触发。
存盘时 ,触发消息PF_Cmd_SEQUENCE_ FLATTEN。
这里,必须设置全局标志PF_OutFIag_SEQUENCE_DAIA_NEEDS_FLArTENING。

用户选择About项时触发PF_Cmd_ABOUT消息。 应用程序关闭时触发消息 PF_Cmd_GLOBAL_SETDOWN。


欢迎光临广州知了软件工作室,定制各类软件插件开发,请咨询QQ微信312117271,手机18928899728。
https://item.taobao.com/item.htm?spm=a1z10.1-c.w4004-2800137871.2.7c8034b2Uw2Rp9&id=570791137617

猜你喜欢

转载自blog.csdn.net/weixin_42247427/article/details/85105212