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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章