• clipStudioPaint插件开发之介绍


    1. 插件开发环境
            windows: visual studio 2019
            mac oc : xcode 12.2 以上

    2. 插件文件都是 cpm 文件,可拷贝到对应目录下直接使用
            windows: C:\Users\username\AppData\Roaming\CELSYSUserData\CELSYS\CLIPStudioModule\PlugIn\PAINT
            mac oc : /Users/username/Library/CELSYS/CLIPStudioModule/PlugIn/PAINT
            注:插件只能在 clip studio paint ex 中使用,且 ex 版本功能必须不受限。

    3. 插件模块
    3.1 clip studio paint 主要是通过调用 TriglavPluginCall() 方法来运行过滤器

    1. /**
    2. * result out 处理成功赋值为 kTriglavPlugInCallResultSuccess,
    3. 处理失败赋值为 kTriglavPlugInCallResultFailed
    4. * data in/out 用户可设定任意的值,且该值一直存在,直到插件运行结束
    5. * selector in 选择器(后面补充)
    6. * pluginServer in 插件服务器(后面补充)
    7. * reserved - 保留字段,以备将来使用
    8. **/
    9. void TRIGLAV_PLUGIN_API TriglavPluginCall( TriglavPlugInInt* result,
    10. TriglavPlugInPtr* data,
    11. TriglavPlugInInt selector,
    12. TriglavPlugInServer* pluginServer,
    13. TriglavPlugInPtr reserved )
    14.             

    3.2 选择器
            指示宿主请求的操作类型,插件会根据具体操作类型来分别处理。selector 可为下述常量之一:

    1. kTriglavPlugInSelectorModuleInitialize:实现插件模块初始化
    2. kTriglavPlugInSelectorModuleTerminate:实现插件模块的终止处理
    3. kTriglavPlugInSelectorFilterInitialize:实现过滤器初始化
    4. kTriglavPlugInSelectorFilterTerminate:实现过滤器终止处理
    5. kTriglavPlugInSelectorFilterRun:实现过滤器计算

    3.3 插件服务器
           提供了插件处理所需的函数,例如可以和插件一起使用的功能套件和宿主对象,下面是插件服务器结构:

    1. typedef struct _TriglavPlugInServer {
    2. TriglavPlugInRecordSuite recordSuite;    // 记录套件
    3.     TriglavPlugInServiceSuite serviceSuite;  // 服务套件
    4.     TriglavPlugInHostObject hostObject;      // 宿主对象
    5. } TriglavPlugInServer;

            宿主对象:用于在插件主机端引用数据的结构
            记录套件:提供一组对选择器值执行特殊处理的函数
            服务套件:提供一组可与任何选择器值一起使用的函数

    3.4 基本类型
            插件模块中使用的基本类型都在文件 TriglavPlugInType.h 中声明,部分如下:

    1. typedef    unsigned char   TriglavPlugInBool;    // 可为 kTriglavPlugInBoolTrue 或 kTriglavPlugInBoolFalse;
    2. typedef    char            TriglavPlugInChar;
    3. typedef    unsigned short  TriglavPlugInUniChar;
    4. typedef    unsigned char   TriglavPlugInUInt8;
    5. typedef    long int        TriglavPlugInInt;
    6. typedef    long long int   TriglavPlugInInt64;
    7. typedef    float           TriglavPlugInFloat;
    8. typedef    double          TriglavPlugInDouble;
    9. typedef    void*           TriglavPlugInPtr;

    3.5 预定义常量
            插件中预定义的常量都在文件 TriglavPlugInDefine.h 中声明,部分如下:

    1. // 插件真值
    2. #define kTriglavPlugInBoolTrue (1)
    3. #define kTriglavPlugInBoolFalse (0)
    4. // 插件处理
    5. #define kTriglavPlugInSelectorModuleInitialize (0x0101)
    6. #define kTriglavPlugInSelectorModuleTerminate (0x0102)
    7. #define kTriglavPlugInSelectorFilterInitialize (0x0201)
    8. #define kTriglavPlugInSelectorFilterRun (0x0202)
    9. #define kTriglavPlugInSelectorFilterTerminate (0x0203)
    10. // 关屏复制模式
    11. #define kTriglavPlugInOffscreenCopyModeNormal (0x01)
    12. #define kTriglavPlugInOffscreenCopyModeImage (0x02)
    13. #define kTriglavPlugInOffscreenCopyModeGray (0x03)
    14. #define kTriglavPlugInOffscreenCopyModeRed (0x04)
    15. #define kTriglavPlugInOffscreenCopyModeGreen (0x05)
    16. #define kTriglavPlugInOffscreenCopyModeBlue (0x06)
    17. #define kTriglavPlugInOffscreenCopyModeCyan (0x07)
    18. #define kTriglavPlugInOffscreenCopyModeMagenta (0x08)
    19. #define kTriglavPlugInOffscreenCopyModeYellow (0x09)
    20. #define kTriglavPlugInOffscreenCopyModeKeyPlate (0x10)
    21. #define kTriglavPlugInOffscreenCopyModeAlpha (0x11)

            以上,欢迎交流~

  • 相关阅读:
    在C#中,要将两个列表相加
    nginx的优先级和匹配方式
    Hypermesh三维网格划分技能,以汽车发动机连杆结构为例
    NNDL 实验三 线性回归
    P3709 大爷的字符串题(莫队+离散)
    【数字IC验证快速入门】3、数字IC设计全流程介绍
    服务器向客户端推送消息之——WebSocket详细使用
    uCOSIII实时操作系统 五 任务API(时间片轮转API调度)
    xss.haozi.me靶场练习
    .NET7 一个实用功能-中央包管理
  • 原文地址:https://blog.csdn.net/yang1018679/article/details/127612490