• 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# 实验七 图像列表框及树形视图控件的使用
    HTML常见标签和作用
    安卓恶意应用识别(二)(安卓APK反编译)
    Springboot旅游攻略平台2de9n计算机毕业设计-课程设计-期末作业-毕设程序代做
    JAVA程序运行流程
    C++ 输入输出流
    高阶导数简介
    vue3源码分析——实现slots
    乳制品行业如何通过APS智能排产进行生产管理的优化?
    Paddle模型转onnx, PP-OCR系列模型列表
  • 原文地址:https://blog.csdn.net/yang1018679/article/details/127612490