三、 过滤器执行记录
1. 获取过滤器执行记录
/**
* record: 记录套件
**/
TRIGLAV_PLUGIN_API *TriglavPlugInGetFilterRunRecord(
TriglavPlugInRecordSuite record);
2. 从指定的宿主对象中获取一个属性对象,若失败返回 null
/**
* record: 记录套件
* hostObject: 宿主对象
* propertyObject: 属性对象
**/
TRIGLAV_PLUGIN_API *TriglavPlugInFilterRunGetProperty(
TriglavPlugInRecordSuite record,
TriglavPlugInHostObject hostObject,
TriglavPlugInPropertyObject* propertyObject)
3. 从指定的宿主对象获取画布宽度
/**
* record: 记录套件
* hostObject: 宿主对象
* width: 画布宽度
**/
TRIGLAV_PLUGIN_API *TriglavPlugInFilterRunGetCanvasWidth(
TriglavPlugInRecordSuite record,
TriglavPlugInHostObject hostObject,
TriglavPlugInInt* width);
4. 从指定的宿主对象获取画布高度
/**
* record: 记录套件
* hostObject: 宿主对象
* height: 画布高度
**/
TRIGLAV_PLUGIN_API *TriglavPlugInFilterRunGetCanvasHeight(
TriglavPlugInRecordSuite record,
TriglavPlugInHostObject hostObject,
TriglavPlugInInt* height);
5. 从指定的宿主对象获取画布分辨率
/**
* record: 记录套件
* hostObject: 宿主对象
* resolution: 画布分辨率
**/
TRIGLAV_PLUGIN_API *TriglavPlugInFilterRunGetCanvasResolution(
TriglavPlugInRecordSuite record,
TriglavPlugInHostObject hostObject,
TriglavPlugInInt* resolution);
6. 从指定的宿主对象获取编辑图层原点
/**
* record: 记录套件
* hostObject: 宿主对象
* layerOrigin: 编辑图层原点
**/
TRIGLAV_PLUGIN_API *TriglavPlugInFilterRunGetLayerOrigin(
TriglavPlugInRecordSuite record,
TriglavPlugInHostObject hostObject,
TriglavPlugInPoint* layerOrigin);
7. 从指定的宿主对象判断是否选择了编辑图层的掩码。如果选择了,则 kTriglavPlugInBoolTrue 将替换所选参数;如果未选择,则 kTriglavPlugInBoolFalse 将替换所选参数;如果获取失败,则 kTriglavPlugInBoolFalse 将替换所选参数。
/**
* record: 记录套件
* hostObject: 宿主对象
* selected: 是否选择图层蒙版
**/
TRIGLAV_PLUGIN_API *TriglavPlugInFilterRunIsLayerMaskSelected(
TriglavPlugInRecordSuite record,
TriglavPlugInHostObject hostObject,
TriglavPlugInBool* selected);
8. 从指定的宿主对象判断编辑图层的透明像素是否被锁定
/**
* record: 记录套件
* hostObject: 宿主对象
* locked: 透明像素是否被锁定
**/
TRIGLAV_PLUGIN_API *TriglavPlugInFilterRunIsAlphaLocked(
TriglavPlugInRecordSuite record,
TriglavPlugInHostObject hostObject,
TriglavPlugInBool* locked);
9. 从指定的宿主对象获取执行过程的原始屏幕外资源
/**
* record: 记录套件
* hostObject: 宿主对象
* offscreenObject: 屏幕外对象
**/
TRIGLAV_PLUGIN_API *TriglavPlugInFilterRunGetSourceOffscreen(
TriglavPlugInRecordSuite record,
TriglavPlugInHostObject hostObject,
TriglavPlugInOffscreenObject* offscreenObject);
10. 从指定的宿主对象获取执行过程的目标屏幕外资源
/**
* record: 记录套件
* hostObject: 宿主对象
* offscreenObject: 屏幕外对象
**/
TRIGLAV_PLUGIN_API *TriglavPlugInFilterRunGetDestinationOffscreen(
TriglavPlugInRecordSuite record,
TriglavPlugInHostObject hostObject,
TriglavPlugInOffscreenObject* offscreenObject);
11. 从指定的宿主对象获取编辑图层是否有屏幕外选择
/**
* record: 记录套件
* hostObject: 宿主对象
* hasSelectAreaOffscreen: 是否有屏幕外选择
**/
TRIGLAV_PLUGIN_API *TriglavPlugInFilterRunHasSelectAreaOffscreen(
TriglavPlugInRecordSuite record,
TriglavPlugInHostObject hostObject,
TriglavPlugInBool* hasSelectAreaOffscreen);
12. 从指定的离屏对象获取选择区域的边界矩形
/**
* record: 记录套件
* offscreenObject: 离屏对象
* rect: 选择区域的边界矩形(像素)
**/
TRIGLAV_PLUGIN_API *TriglavPlugInFilterRunGetSelectAreaRect(
TriglavPlugInRecordSuite record,
TriglavPlugInOffscreenObject offscreenObject,
TriglavPlugInRect* rect);
从指定的宿主对象获取屏幕外选择的区域对象,可以使用函数 TriglavPlugInFilterRunHasSelectAreaOffscreen()。
13. 检查是否存在屏幕外选择
/**
* record: 记录套件
* hostObject: 宿主对象
* offscreenObject: 离屏对象
**/
TRIGLAV_PLUGIN_API *TriglavPlugInFilterRunGetSelectAreaOffscreen(
TriglavPlugInRecordSuite record,
TriglavPlugInHostObject hostObject,
TriglavPlugInOffscreenObject* offscreenObject);
14. 更新指定宿主对象的目标屏幕外
/**
* record: 记录套件
* hostObject: 宿主对象
* updateRect: 更新范围
**/
TRIGLAV_PLUGIN_API *TriglavPlugInFilterRunUpdateDestinationOffscreenRect(
TriglavPlugInRecordSuite record,
TriglavPlugInHostObject hostObject,
const TrigravPlugInRect* updateRect);
15. 从指定的宿主对象获取当前主颜色
/**
* record: 记录套件
* hostObject: 宿主对象
* mainColor: 主色调
* mainAlpha: 主透明度
**/
TRIGLAV_PLUGIN_API *TriglavPlugInFilterRunGetMainColor(
TriglavPlugInRecordSuite record,
TriglavPlugInHostObject hostObject,
TriglavPlugInRGBColor* mainColor,
TriglavPlugInUInt8* mainAlpha);
16. 从指定的宿主对象获取当前子颜色
/**
* record: 记录套件
* hostObject: 宿主对象
* subColor: 子色调
* subAlpha: 子透明度
**/
TRIGLAV_PLUGIN_API *TriglavPlugInFilterRunGetSubColor(
TriglavPlugInRecordSuite record,
TriglavPlugInHostObject hostObject,
TriglavPlugInRGBColor* subColor,
TriglavPlugInUInt8* subAlpha);
17. 从指定的宿主对象获取当前的绘图颜色
/**
* record: 记录套件
* hostObject: 宿主对象
* drawColor: 绘图颜色
* drawAlpha: 绘图透明度
**/
TRIGLAV_PLUGIN_API *TriglavPlugInFilterRunGetDrawColor(
TriglavPlugInRecordSuite record,
TriglavPlugInHostObject hostObject,
TriglavPlugInRGBColor* drawColor,
TriglavPlugInUInt8* drawAlpha);
18. 从指定插件的过滤运行状态获取宿主对象的过滤器运行状态
/**
* record: 记录套件
* hostObject: 宿主对象
* processState: 插件模块的过滤器运行状态
* result: 宿主对象的过滤器运行状态
**/
TRIGLAV_PLUGIN_API *TriglavPlugInFilterRunProcess(
TriglavPlugInRecordSuite record,
TriglavPlugInHostObject hostObject,
const TriglavPlugInInt processState,
TriglavPlugInInt* result);
指示参数 processState 的状态及其对应的参数结果,开发者必须根据参数结果的结果进行适当的处理。
processState | result | note |
kTriglavPlugInFilterRunProcessStateStart | kTriglavPlugInFilterRunProcessResultRestart | 处理需要重新计算 |
kTriglavPlugInFilterRunProcessResultContinue | 继续处理 | |
kTriglavPlugInFilterRunProcessResultExit | 需要完成处理(取消按钮或×按钮被按下) | |
kTriglavPlugInFilterRunProcessStateContinue | kTriglavPlugInFilterRunProcessResultRestart | 处理需要重新计算 |
kTriglavPlugInFilterRunProcessResultContinue | 继续处理 | |
kTriglavPlugInFilterRunProcessResultExit | 需要完成处理(取消按钮或×按钮被按下) | |
kTriglavPlugInFilterRunProcessStateEnd | kTriglavPlugInFilterRunProcessResultRestart | 处理需要重新计算 |
kTriglavPlugInFilterRunProcessResultExit | 需要结束处理(按下确定按钮) | |
kTriglavPlugInFilterRunProcessStateAbort | kTriglavPlugInFilterRunProcessResultContinue | 继续处理 |
kTriglavPlugInFilterRunProcessResultExit | 需要完成处理(取消按钮或×按钮被按下) |
19. 设置指定宿主对象的总进度
/**
* record: 记录套件
* hostObject: 宿主对象
* progressTotal: 总进度
**/
TRIGLAV_PLUGIN_API *TriglavPlugInFilterRunSetProgressTotal(
TriglavPlugInRecordSuite record,
TriglavPlugInHostObject hostObject,
const TriglavPlugInInt progressTotal);
20. 设置指定宿主对象的进度
/**
* record: 记录套件
* hostObject: 宿主对象
* progressState: 进度
**/
TRIGLAV_PLUGIN_API *TriglavPlugInFilterRunSetProgressDone(
TriglavPlugInRecordSuite record,
TriglavPlugInHostObject hostObject,
const TriglavPlugInInt progressState);
本篇以及上篇🔗clipStudioPaint插件开发之记录套件(一)介绍的就是记录套件的全部 api 了,下篇将介绍服务套件的相关内容。