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