一向拖延癥的我,終于把本系列更新到了第三篇,撒花,吼吼!言歸正題,本篇博文將具體介紹Gocator GDK的常用接口函(tao)數(lu)。這里假定新建工具名稱為“GdkNewTool”。
首先,這些接口函數需要在.x.h和.c文件中進行聲明,如下所示。
//.x.h文件
ToolFx(kStatus) GdkNewTool_VDescribe(GdkToolInfo info);
ToolFx(kStatus) GdkNewTool_VInit(GdkNewTool tool, kType type, kAlloc alloc);
ToolFx(kStatus) GdkNewTool_VRelease(GdkNewTool tool);
ToolFx(kStatus) GdkNewTool_VNewToolConfig(const GdkToolEnv* env, GdkToolCfg toolConfig);
ToolFx(kStatus) GdkNewTool_VUpdateConfig(const GdkToolEnv* env, GdkToolCfg toolConfig);
ToolFx(kStatus) GdkNewTool_VStart(GdkNewTool tool);
ToolFx(kStatus) GdkNewTool_VStop(GdkNewTool tool);
ToolFx(kStatus) GdkNewTool_VProcess(GdkNewTool tool, GdkToolInput input, GdkToolOutput output);
//.c文件
kBeginClass(Tool, GdkNewTool, GdkTool)
kAddVMethod(GdkNewTool, kObject, VRelease)
kAddVMethod(GdkNewTool, GdkTool, VDescribe)
kAddVMethod(GdkNewTool, GdkTool, VInit)
kAddVMethod(GdkNewTool, GdkTool, VNewToolConfig)
kAddVMethod(GdkNewTool, GdkTool, VUpdateConfig)
kAddVMethod(GdkNewTool, GdkTool, VStart)
kAddVMethod(GdkNewTool, GdkTool, VStop)
kAddVMethod(GdkNewTool, GdkTool, VProcess)
kEndClass()
下面具體介紹一下各接口函數的作用。需要注意的是,接口函數的調用順序在replay模式和live模式下會有所區別。
VDescribe
定義工具界面的各種控件和輸出測量值。
VInit
初始化環境結構。(通常不需修改)
VRelease
釋放工具。(通常不需修改)
VNewToolConfig
可以設置工具各參數的默認值。
VUpdateConifg
如果某些控件的顯示/隱藏受到其他控件的影響,可以在此函數中定義。
VStart
更新工具的參數變量。
VStop
停止處理。(通常不需修改)
VProcess
核心處理算法,每幀圖像調用一次。