12 #ifndef __COP2_Node_h__ 
   13 #define __COP2_Node_h__ 
   67 class COP2_CheckpointWrapper;
 
   70 class COP2_VolatileParmManager;
 
   82     virtual OP_ERROR     open(
short &key, 
int clear_errors = 0) 
override;
 
   83     bool         isOpen()
 const { 
return myCop2OpenCount > 0; }
 
   84     virtual void         close(
short key) 
override;
 
  109     float                getSequenceTime() 
const;
 
  114     void                 forceRecook(
bool evensmartcache = 
false) 
override;
 
  122     static void                      setPreviewLUT(
 
  125     static void                      setPreviewLUT(
 
  139                                       int subregion = 1, 
int clear = 1,
 
  140                                       float black = 0.0F, 
float white = 1.0F,
 
  142                                       int ignore_bwpoints=0,
 
  143                                       const int *comp_map=0,
 
  145                                       bool interactive = 
false,
 
  154                                       int xstart,
int ystart,
int xend,
int yend,
 
  155                                       int subregion = 1, 
int clear = 1,
 
  156                                       float black = 0.0F, 
float white = 1.0F,
 
  158                                       int ignore_bwpoints=0,
 
  159                                       const int *comp_map=0,
 
  161                                       bool interactive = 
false,
 
  164                                       bool cleanup_after = 
true,
 
  181                                       int subregion = 1, 
int clear = 1,
 
  182                                       float black = 0.0F, 
float white = 1.0F,
 
  184                                       int ignore_bwpoints=0,
 
  186                                       bool interactive = 
false,
 
  189                                       bool cleanup_after = 
true,
 
  205                                                int xstart, 
int ystart,
 
  211     bool                 isPlaneCached(
const TIL_Plane &refplane,
 
  212                                     int array_index, 
float time,
 
  214                                     int xstart, 
int ystart, 
int xend, 
int yend,
 
  218                                     int xstart, 
int ystart, 
int xend, 
int yend,
 
  224     void                 checkpointCachedTilesForPlane(
 
  226                                     int array_index, 
float time,
 
  228                                     int xstart, 
int ystart, 
int xend, 
int yend,
 
  231     void                 checkpointCachedTilesForPlane(
COP2_Context &context,
 
  233                                     int xstart, 
int ystart, 
int xend, 
int yend,
 
  240     double               mapTimeIntoSequence(
double time);
 
  248                                                int array_index, 
float t,
 
  261                                                 bool force_bounds = 
true);
 
  265                                      float t, 
int xres, 
int yres, 
int thread,
 
  266                                      int &x1, 
int &
y1,
int &
x2, 
int &
y2) 
override;
 
  268                                      int &x1, 
int &
y1,
int &
x2, 
int &
y2);
 
  272     inline bool          getInputBounds(
int input, 
COP2_Context &context,
 
  273                                         int &x1, 
int &
y1, 
int &
x2, 
int &
y2);
 
  276     bool                 getInputBounds(
int input,
 
  278                                         float t, 
int xres, 
int yres,
 
  280                                         int &x1, 
int &
y1, 
int &
x2, 
int &
y2);
 
  287     bool                 isTileAlignedWithInput(
int input,
 
  289                                                 int tilex, 
int tiley,
 
  291     bool                 isTileAlignedWithInput(
int input,
 
  294                                                 float t, 
int xres, 
int yres,
 
  296                                                 int tilex, 
int tiley,
 
  301     bool                 isTileAlignedWithInputAtTime(
int input,
 
  303                                                       int tilex, 
int tiley,
 
  311     bool                 isInputTileAlignedWithContext(
int input,
 
  313                                                        int tilex, 
int tiley,
 
  320                                           int tilex, 
int tiley);
 
  327     bool                 getInputBoundsDiff(
int input, 
COP2_Context &context,
 
  340     virtual double       remapTime(
double t);
 
  361             void         getScaleFactors(
int xres,  
int yres,
 
  362                                          float &sx, 
float &sy) 
const;
 
  363             float        getXScaleFactor(
int xres) 
const;
 
  364             float        getYScaleFactor(
int yres) 
const;
 
  369     int                  getPreviewPlane(
int &pindex, 
int &aindex);
 
  370     int                  isFollowingParent(
const COP2_Node *parent);
 
  371     void                 setPreviewPlane(
int pindex, 
int aindex =0);
 
  372     void                 parentPreviewChanged();
 
  384     void                 clearTilesInCache();
 
  390                                         bool  =
true) { 
return true; }
 
  395     int                  isAnythingLocked() 
const;
 
  398     int                  isPlaneLocked(
const TIL_Plane *p) 
const;
 
  401     int                  isSequenceLocked(
float t);
 
  404     int                  isPlaneLocked(
const TIL_Plane *p, 
float t);
 
  408     int                  lockPlanes(
float t);
 
  410     int                  unlockPlanes(
float t);
 
  414     void                 enableDiskCache(
bool enable);
 
  418     virtual void         setColorSelection(
float *col, 
int size, 
bool accum);
 
  422     static void          tileRemovalCallback(
void *parent, 
TIL_Tile *removed);
 
  423     void                 tileRemoved(
TIL_Tile *removed);
 
  425     static void          setViewerCallback(
void (*viewer)(
COP2_Node *, 
void *,
 
  430     static void          setCookPosition(
float u, 
float v);
 
  440     static bool                  isInitialized();
 
  450                              OP_ERROR csev = myCookErrorManager.getSeverity();
 
  452                              return sev > csev ? sev : csev;
 
  459                              OP_ERROR csev = myCookErrorManager.getSeverity();
 
  461                              return sev > csev ? sev : csev;
 
  466                                          int group_mask = 1) 
override;
 
  470     virtual void         getPixelFunction(
const TIL_Plane *plane,
 
  471                                           int array_index, 
float t,
 
  488     bool                 getPixelValue(
const TIL_Plane *plane,
 
  489                                        int array_index, 
float t,
 
  494     bool                 getPixelValueByUV(
const char *plane_name,
 
  527     static void          buildPlanePreviewMenu(
 
  530     static void          buildScopeMenu(
 
  533     static void          buildPlaneScopeMenu(
 
  536     static void          buildScopeMenuNoColAlpha(
 
  539     static void          buildPlaneMenu(
 
  542     static void          buildCompMenu(
 
  545     static void          buildInputScopeMenu(
 
  548     static void          buildInputPlaneMenu(
 
  551     static void          buildInputCompMenu(
 
  555     void                 buildPlaneMenu(
PRM_Name *items, 
int maxsize,
 
  556                                         bool useinput = 
false,
 
  557                                         bool planes_only = 
false,
 
  558                                         bool comps_only = 
false,
 
  561                                         bool nocoloralpha = 
false);
 
  563     static const char   *getAlphaPlaneName();
 
  564     static const char   *getMaskPlaneName();
 
  565     static const char   *getDepthPlaneName();
 
  566     static const char   *getLumPlaneName();
 
  567     static const char   *getBumpPlaneName();
 
  568     static const char   *getPointPlaneName();
 
  569     static const char   *getNormalPlaneName();
 
  570     static const char   *getVelocityPlaneName();
 
  571     static const char   *getThumbnailPlaneKey();
 
  578     static int           dumpCache(
void *me, 
int i, 
float t,
 
  580     static void          printMe(
void *me, std::ostream &os);
 
  582     static void          addToFileLoadTime(
float t);
 
  598         int64 mem = inclusive ? 
sizeof(*this) : 0;
 
  611     static void          initializeExpressions();
 
  612     static void          initializeCache();
 
  614     static void          installCommands();
 
  626     void                 inputRes(
int input, 
float t, 
int xres, 
int yres, 
 
  627                                   int &i_xres, 
int &i_yres);
 
  633     void                setInputBlocked(
bool blocked, 
int thread);
 
  637     void                 removeRegions();
 
  643                          { 
return CAST_COP2NODE(
getInput(i, 
true)); }
 
  648     virtual void         getInputDependenciesForOutputArea(
 
  656     COP2_CheckpointWrapper *getCheckpointWrapper(
int array_index);
 
  657     void                    setCheckpointWrapper(
int array_index,
 
  658                                                  COP2_CheckpointWrapper *wrap);
 
  662     int                     getNumCheckpointWrappers() 
const;
 
  663     COP2_CheckpointWrapper *getWrapper(
int i) 
const;
 
  664     void                    resetCheckpointWrappers();
 
  667     virtual void           modifyViewMatrix(
int input,
 
  672     virtual COP2_Node    *selectInput(
int px, 
int py, 
const char *plane_name,
 
  683     static void          resetBadMissingFrames();
 
  686     static bool          getShowPreviewPref();
 
  687     static void          setShowPreviewPref(
bool show);
 
  690                                 bool relative_references = 
true) 
override;
 
  701     static unsigned int  getCookScore(
float cooktime);
 
  707     void                 setVariableUseFullRes(
bool onoff);
 
  718                                 bool collapse = 
false,
 
  719                                 bool check_missing = 
false,
 
  720                                 bool show_missing_only=
false) 
override;
 
  725     void                 addError(
int code, 
const char *msg = 0);
 
  726     void                 addSystemError(
const char *msg = 0);
 
  727     void                 addWarning(
int code, 
const char *msg = 0);
 
  728     void                 addSystemWarning(
const char *msg = 0);
 
  729     void                 addMessage(
int code, 
const char *msg = 0);
 
  732     void                 addCookError(
int code, 
const char *msg = 0);
 
  733     void                 addCookSystemError(
const char *msg = 0);
 
  734     void                 addCookWarning(
int code, 
const char *msg = 0);
 
  735     void                 addCookSystemWarning(
int code, 
const char *msg = 0);
 
  736     void                 addCookMessage(
int code, 
const char *msg = 0);
 
  752     virtual const char  *getOperationInfo();
 
  757     bool                 isInputBlocked(
int thread);
 
  771                                    bool                  correctorig = 
true,
 
  773                                    bool                 *was_corrected = 0);
 
  784                                    bool                 *was_corrected = 0);
 
  795                                    bool                *was_corrected = 0);
 
  805                                    bool                *was_corrected = 0);
 
  808     bool                 copyInput(
int                  input,
 
  816     bool                 copyInput(
int                  input,
 
  856                                     bool  correct_aspect = 
true,
 
  857                                     bool  correct_bounds = 
true,
 
  858                                     int   scan_alignment = 0);
 
  862     inline TIL_Region * inputRegion(
int                 input_index,
 
  871                                     bool  correct_aspect = 
true,
 
  872                                     bool  correct_bounds = 
true,
 
  873                                     int   scan_alignment = 0);
 
  891     inline TIL_Region * inputRegion(
int                 input_index,
 
  903                                      float t, 
int xres, 
int yres, 
int thread,
 
  904                                      int xstart, 
int ystart,
 
  911                                      int xstart, 
int ystart,
 
  923                                      int array_index, 
float t,
 
  924                                      int xres, 
int yres, 
int thread,
 
  925                                      int xstart, 
int ystart,
 
  945     static void         scaleImageArea(
float sx, 
float sy,
 
  946                                        int ix1, 
int iy1, 
int ix2, 
int iy2,
 
  947                                        int &x1, 
int &
y1, 
int &
x2, 
int &
y2);
 
  966                                         bool input_aspect_adjust = 
true,
 
  967                                         bool streak_off_frame = 
false);
 
  972     bool                transformRegion(
int              input,
 
  976                                         bool input_aspect_adjust = 
true,
 
  977                                         bool bounds_in_canvas_space = 
true,
 
  978                                         bool streak_off_frame = 
false);
 
  980     bool                isFullTransform(
int input,
 
  983                                         bool input_aspect_adjust=
true,
 
 1006                                             bool         deformation = 
false);
 
 1008     bool                transformBlurRegion(
int           input,
 
 1014                                 bool            deformation            = 
false,
 
 1015                                 bool            bounds_in_canvas_space = 
true);
 
 1024                                         bool bounds_in_canvas_space,
 
 1025                                         bool streak_off_frame);
 
 1034                                             float haspect, 
float input_haspect,
 
 1035                                             float vaspect, 
float input_vaspect,
 
 1036                                             bool bounds_in_canvas_space);
 
 1057                                               bool input_aspect_adjust);
 
 1062     void                adjustPivotParms(
int input_index,
 
 1064                                          bool input_aspect_adjust);
 
 1069     void                copyAndPrepareTransformParms(
 
 1083     void                 releaseRegion(
TIL_Region *, 
int output = 0);
 
 1094                                              int xstart, 
int ystart,
 
 1095                                              int *cache_flag = 0,
 
 1096                                              int ignore_bypass = 0,
 
 1109                                           int xstart, 
int ystart,
 
 1119                                     int array_index, 
float t,
 
 1120                                     int xstart, 
int ystart);
 
 1123                                       float t, 
int xres, 
int yres, 
int thread,
 
 1124                                       int xstart, 
int ystart, 
bool *
mask =0);
 
 1137     inline void          lockParms(
bool lock);
 
 1161                                          int *x1 = 0, 
int *
y1 = 0,
 
 1162                                          int *
x2 = 0, 
int *
y2 = 0);
 
 1166     virtual void         computeImageBounds(
COP2_Context &context);
 
 1176                               const char *pathPrefix,
 
 1182                               const char *
path=0) 
override;
 
 1189                                      int index, 
void *dtile =0);
 
 1199     void                 getOvercookStats(
int &redone, 
int &total);
 
 1200     void                 clearOvercookStats();
 
 1202     void                 ensureSequenceContainsColorAndAlpha();
 
 1206     virtual void         cleanUpInputsRecursively();
 
 1215     void                 makeOutputAreaDependOnAllInputAreas(
 
 1222     void                 makeOutputAreaDependOnInputAreas(
int input,
 
 1230                             const char *planename, 
int array_index, 
float t,
 
 1244     void                 getInputAreasForCollapsedTransformInputs(
 
 1250                     bool                input_aspect_adjust,
 
 1251                     bool                clear_uncollapse_list);
 
 1260                                               bool ignore_missing = 
false);
 
 1264     void                 deAnimateFollowChanRef(
const char *parmname,
 
 1270     void                 swapParm(
const char *name1,
const char *name2,
 
 1272     void                 swapStringParm(
const char *name1,
const char *name2,
 
 1279     virtual OP_ERROR     setup(
float t, 
int xres, 
int yres, 
int max_threads,
 
 1280                                bool doinput = 
true);
 
 1282                                   int xres, 
int yres, 
int thread_index,
 
 1287     void                 recursivelyCleanUp();
 
 1288     void                 cleanUpCookContexts();
 
 1299     unsigned char               myCop2RecurseFlag :1,
 
 1300                                 myFramesAllScopedFlag:1;
 
 1319     int                         myPreviewPlaneIndex;
 
 1320     int                         myPreviewPlaneArrayIndex;
 
 1324     float                       myLastErrorTime;
 
 1326     bool                        myCop2DirtyFlag;
 
 1357     unsigned char               myVarResUsed :1,
 
 1358                                 myVarImageArrayUsed :1,
 
 1359                                 myVarImagePlaneUsed :1,
 
 1363     int                         myNumCookedTiles;
 
 1364     int                         myDupCookedTiles;
 
 1368     COP2_VolatileParmManager    *myVolatileParms;
 
 1376     ut_thread_id_t               myOpenThreadId;
 
 1382     static bool                  theShowPreviewPref;
 
 1387     void                        setOpenerThread(ut_thread_id_t 
thread_id)
 
 1393     bool                        isOpenerThread()
 const 
 1394                                     { 
return myOpenThreadId 
 
 1397     virtual float        copTimeTransform(
int input, 
COP2_Context &context,
 
 1400     void                 setupVariables(
const TIL_Plane *plane,
 
 1408     void                  checkTimeDepAndRange();
 
 1411     void                 verifyCacheIntegrity() { }
 
 1418                                          int xstart,
int ystart,
 
 1420                                          int ignore_bypass = 0,
 
 1423                                          double *passtime = 0);
 
 1427                                              int array_index, 
float t,
 
 1428                                              int xstart,
int ystart,
 
 1438                                           int xstart, 
int ystart,
 
 1440                                           int block, 
bool *blocked, 
bool *
mask);
 
 1452     void                 markTimerStart(
int64 *now) 
const;
 
 1453     void                 getElapsedTime(
int64 *now) 
const;
 
 1454     void                 appendCookTimesToPerformanceMonitor();
 
 1455     void                 setCookDepth(
int d);
 
 1459                                        int array_index, 
float t,
 
 1461                                        int x1, 
int y1, 
int x2, 
int y2,
 
 1462                                        int bx1, 
int by1, 
int bx2, 
int by2,
 
 1464                                        int output, 
int share,
 
 1465                                        int scan_alignment);
 
 1468     void                 openRegion(
TIL_Region *region, 
void *regionmem[4],
 
 1472     static void *        threadCookTile(
void *
data);
 
 1478                                          float low=0.0F,
float high=1.0F) 
const;
 
 1485                                          int x1, 
int y1, 
int x2, 
int y2,
 
 1486                                          int xshift=0, 
int yshift=0,
 
 1487                                          float low=0.0F,
float high=1.0F,
 
 1489                                          int ignore_points =0,
 
 1490                                          float gamma = 1.0F) 
const;
 
 1492     void                highlightTile(
int thread, 
int onoff);
 
 1493     void                resetHighlight();
 
 1496     void                computeBoundsVariables(
const OP_Context &context,
 
 1500                             int orig_xstart, 
int orig_ystart,
 
 1501                             int orig_xend, 
int orig_yend,
 
 1502                             int &xstart, 
int &ystart, 
int &xend, 
int ¥d,
 
 1503                             int &xtile1, 
int &ytile1,
 
 1504                             int &xtile2, 
int &ytile2,
 
 1505                             int &x1, 
int &
y1, 
int &
x2, 
int &
y2,
 
 1506                             int &xshift, 
int &yshift,
 
 1507                             int &bounds_xstart, 
int &bounds_ystart,
 
 1508                             int &bounds_xend, 
int &bounds_yend,
 
 1511     void                 computeBoundsVariables(
const TIL_Plane *rplane,
 
 1512                             float time, 
int xres, 
int yres,
 
 1515                             int orig_xstart, 
int orig_ystart,
 
 1516                             int orig_xend, 
int orig_yend,
 
 1517                             int &xstart, 
int &ystart, 
int &xend, 
int ¥d,
 
 1518                             int &xtile1, 
int &ytile1, 
int &xtile2, 
int &ytile2,
 
 1519                             int &x1, 
int &
y1, 
int &
x2, 
int &
y2,
 
 1520                             int &xshift, 
int &yshift,
 
 1521                             int &bounds_xstart, 
int &bounds_ystart,
 
 1522                             int &bounds_xend, 
int &bounds_yend,
 
 1531                             int xstart, 
int ystart, 
int xend, 
int yend,
 
 1532                             int &xtile1, 
int &ytile1, 
int &xtile2, 
int &ytile2,
 
 1536                                  COP2_Node &source_node, 
int source_input,
 
 1538                                  const TIL_Plane *plane, 
int array_index,
 
 1539                                  int x1, 
int y1, 
int x2, 
int y2,
 
 1540                                  int input_origx, 
int input_origy,
 
 1541                                  int input_xres, 
int input_yres,
 
 1542                                  int filt_xoffset, 
int filt_yoffset,
 
 1544                                  bool bounds_in_canvas_space,
 
 1545                                  int &tx1, 
int &ty1, 
int &tx2, 
int &ty2,
 
 1546                                  int preoffset[2], 
int postoffset[2]);
 
 1553                                   int x1, 
int y1, 
int x2, 
int y2,
 
 1554                                   int input_x1, 
int input_y1,
 
 1555                                   int input_x2, 
int input_y2,
 
 1556                                   int input_xres, 
int input_yres,
 
 1557                                   int full_input_xres, 
int full_input_yres,
 
 1558                                   int filt_xoffset, 
int filt_yoffset,
 
 1559                                   float haspect, 
float input_haspect,
 
 1560                                   float vaspect, 
float input_vaspect,
 
 1561                                   bool bounds_in_canvas_space,
 
 1569                                   int x1, 
int y1, 
int x2, 
int y2,
 
 1570                                   int input_x1, 
int input_y1,
 
 1571                                   int node_x1, 
int node_y1,
 
 1572                                   int node_x2, 
int node_y2,
 
 1573                                   int input_xres, 
int input_yres,
 
 1574                                   int full_input_xres, 
int full_input_yres,
 
 1575                                   int filt_xoffset, 
int filt_yoffset,
 
 1576                                   float haspect, 
float input_haspect,
 
 1577                                   float vaspect, 
float input_vaspect,
 
 1578                                   bool bounds_in_canvas_space,
 
 1581     bool                transformBlurRegionCPU(
int  input,
 
 1586                                   float prev, 
float next, 
int numtimes,
 
 1587                                   float itime[3], 
float ifact[3],
 
 1588                                   bool  bounds_in_canvas_space,
 
 1589                                   int   filt_xoffset, 
int filt_yoffset,
 
 1590                                   int   input_origx, 
int input_origy,
 
 1591                                   int   ixres, 
int iyres,
 
 1592                                   int   x1, 
int y1, 
int x2, 
int y2,
 
 1593                                   float startt, 
float endt, 
float incr,
 
 1596     bool                transformBlurRegionGPU(
int  input,
 
 1601                                   float prev, 
float next, 
int numtimes,
 
 1602                                   float itime[3], 
float ifact[3],
 
 1603                                   bool  bounds_in_canvas_space,
 
 1604                                   int   filt_xoffset, 
int filt_yoffset,
 
 1605                                   int   input_origx, 
int input_origy,
 
 1606                                   int   ixres, 
int iyres,
 
 1607                                   int   x1, 
int y1, 
int x2, 
int y2,
 
 1608                                   float startt, 
float endt, 
float incr,
 
 1616                                     const char *
path=0) 
override;
 
 1618                                     const char *
path=0) 
override;
 
 1626                          { 
return binary ? 
"bcop2" : 
"cop2"; }
 
 1628     static void          installExpressions();
 
 1630     friend class COP2_CookScheduler;
 
 1631     friend class COP2_VexVariableMap;
 
 1633     friend class COP2_VexOp;
 
 1639                      int xstart, 
int ystart, 
OP_ERROR *err, 
int block,
 
 1640                      bool *
mask, 
bool *blocked, 
bool *was_corrected)
 
 1644                      context.
myTime, xstart, ystart, err, block, mask, 0,
 
 1645                      true, blocked, was_corrected);
 
 1652                      bool *
mask, 
bool *blocked, 
bool *was_corrected)
 
 1659                      err, block, mask, 0, 
true, blocked, was_corrected);
 
 1666                      bool *was_corrected)
 
 1669                      t, tilelist->
myX1, tilelist->
myY1, err, block, mask,
 
 1670                      0, 
true, blocked, was_corrected);
 
 1681                        context.
myTime, tilelist, xshift, yshift, copy, hold);
 
 1686                        int xstart, 
int ystart, 
int xend,   
int yend,
 
 1689                        bool correct_aspect, 
bool correct_bounds,
 
 1694                        context.
myTime, xstart, ystart, xend, yend,
 
 1695                        hold, share, regionmem, correct_aspect,
 
 1696                        correct_bounds, scan_alignment);
 
 1701                         int xres, 
int yres, 
int thread,
 
 1702                         int xstart, 
int ystart, 
int xend, 
int yend, 
int share,
 
 1703                         int rindex, 
int alignment)
 
 1705     return outputRegion(plane, plane, array_index, seqt, xres, yres, thread,
 
 1706                         xstart, ystart, xend, yend, share, rindex,alignment);
 
 1720                           int &x1, 
int &
y1, 
int &
x2, 
int &
y2)
 
 1729                           int &x1,
int &
y1, 
int &
x2,
int &
y2)
 
virtual int saveCookedData(std::ostream &os, OP_Context &, int binary=0)=0
 
SYS_VISIBILITY_EXPORT void newCop2Operator(OP_OperatorTable *table)
 
UT_ErrorSeverity OP_ERROR
 
void getImageBounds(const TIL_Plane *plane, int array, float t, int xres, int yres, int thread, int &x1, int &y1, int &x2, int &y2) override
 
fpreal getH() const override
Node position/scale is used by the UI. 
 
virtual bool isSlowOperation() const 
 
fpreal getW() const override
Node position/scale is used by the UI. 
 
int getThreadIndex() const 
 
virtual bool isInterrupted(int thread)=0
 
virtual bool loadPacket(UT_IStream &is, short class_id, short sig, const char *path=nullptr)
 
#define COP2_MULTITHREADED
 
unsigned referenceAllParameters(OP_Parameters *from, bool relative_references=true) override
 
TIL_ImageSource * getImageSource()
 
#define SYS_VISIBILITY_EXPORT
 
virtual bool isPixelBased() const 
 
virtual void setInterrupted(int)=0
 
GT_API const UT_StringHolder time
 
OP_ERROR error() override
 
OIIO_UTIL_API bool copy(string_view from, string_view to, std::string &err)
 
virtual int isScaledImageDifferent() const 
 
OP_OpTypeId getChildTypeID() const override
 
virtual bool doesFrameExist(int, bool=true)
 
const GLuint GLenum const void * binary
 
GLsizei const GLchar *const * path
 
void lockParms(bool lock)
 
virtual bool preferredViewPlane(UT_WorkBuffer &)
 
virtual void forceRecook(bool evensmartcache=true)
 
COP2_ThreadPref getThreadPref() const 
 
TIL_Sequence & getSequence() override
 
OP_ERROR getErrorSeverity() override
 
Parameters for OP_Node::getInfoText()/OP_Node::getNodeSpecificInfoText() 
 
TIL_Region * outputRegion(const TIL_Plane *plane, int array_index, float t, int xres, int yres, int thread, int xstart, int ystart, int xend, int yend, int share=1, int rindex=0, int alignment=0)
 
const char * getOpType() const override
 
int64 getMemoryUsage(bool inclusive) const override
 
UT_ErrorManager myCookErrorManager
 
virtual void getNodeSpecificInfoText(OP_Context &context, OP_NodeInfoParms &parms)
 
OP_ERROR bypassMe(OP_Context &, int &) override
 
static OP_VariablePair myVariablePair
 
static const char * theChildTableName
 
virtual int getNumInputsToOpen() const 
 
const TIL_Plane * myPlane
 
bool evalVariableValue(UT_String &v, int i, int thr) override
 
virtual unsigned nInputs() const 
 
virtual bool isTimeDepOperation()
 
void opChanged(OP_EventType reason, void *data=nullptr) override
 
virtual bool allowPartiallyScopedPlanes() const 
 
virtual float getPercentageComplete(int num_extra_tiles_cooked) const =0
 
OP_ERROR cookMe(OP_Context &) override
 
OP_ERROR(* COP2_FullImageCB)(COP2_Context &, const TIL_Region *, TIL_Region *, COP2_Node *)
 
GLint GLint GLsizei GLint GLenum GLenum type
 
virtual bool isGenerator() const 
 
virtual void getMyExternalReferences(UT_StringArray &reflist, UT_StringArray *nodelist=nullptr, bool collapse=false, bool check_missing=false, bool show_missing_only=false)
 
virtual int scope(UT_String &)
 
virtual void cleanUpAllRegions()=0
 
virtual void raiseImageTooLargeError()=0
 
virtual COP2_ThreadPref getThreadPreference() const 
 
virtual int getNumThreadsToUse() const =0
 
int64 getMemoryUsage(bool inclusive) const override
 
virtual OP_ERROR saveIntrinsic(std::ostream &os, const OP_SaveFlags &flags)
 
GLsizei GLsizei GLchar * source
 
virtual void getMaxNumThreadsInCook(COP2_Context &, int &plane, int &node, int &op) const 
 
OP_OpTypeId getOpTypeID() const override
 
#define PLANE_MAX_VECTOR_SIZE
 
virtual bool cook(OP_Context &context)
 
virtual void userDataChanged(const UT_StringHolder &key)
 
HUSD_API const char * raster()
 
virtual void getImageBounds(const TIL_Plane *plane, int array, float t, int xres, int yres, int thread, int &x1, int &y1, int &x2, int &y2)=0
 
GLuint const GLchar * name
 
virtual int cookToRaster(UT_ValArray< TIL_Raster * > &rasters, UT_ValArray< OP_Context * > &contexts, UT_ValArray< const TIL_Plane * > &planes, UT_IntArray &array_index, UT_ValArray< const int * > &comp_map, UT_Array< UT_InclusiveRect > &bounds, int subregion=1, int clear=1, float black=0.0F, float white=1.0F, int compindex=-1, int ignore_bwpoints=0, float gamma=1.0F, bool interactive=false, UT_ValArray< TIL_Raster * > *tiles=0, int tile_index=0, TIL_TileMPlay *=0, bool cleanup_after=true, const UT_StringHolder &ocio_ospace=UT_StringHolder(), const UT_StringHolder &ocio_look=UT_StringHolder(), const UT_StringHolder &ocio_display=UT_StringHolder(), const UT_StringHolder &ocio_view=UT_StringHolder())=0
 
virtual bool isTimeModifier() const 
 
bool getInputBounds(int input, COP2_Context &context, int &x1, int &y1, int &x2, int &y2)
 
GLenum GLenum GLsizei void * table
 
virtual void getInputRes(int input, fpreal t, const OP_Context &context, OP_Context &input_context)
 
**Note that the tasks the is the thread number *for the or if it s being executed by a non pool thread(this *can happen in cases where the whole pool is occupied and the calling *thread contributes to running the work load).**Thread pool.Have fun
 
OP_ERROR error(OP_Context &context) override
 
virtual const char * getFileExtension(int binary) const =0
 
GA_API const UT_StringHolder parms
 
TIL_Region * inputRegion(int input_index, COP2_Context &context, const TIL_Plane *plane, int array_index, float t, int xstart, int ystart, int xend, int yend, TIL_RegionExtend hold=TIL_BLACK, int share=1, void *regionmem[PLANE_MAX_VECTOR_SIZE]=0, bool correct_aspect=true, bool correct_bounds=true, int scan_alignment=0)
 
virtual bool onlyCookInMainThread() const 
 
Parameters for OP_Node::fillInfoTree()/OP_Node::fillInfoTreeNodeSpecific() 
 
virtual void fillInfoTreeNodeSpecific(UT_InfoTree &tree, const OP_NodeInfoTreeParms &parms)
 
virtual OP_ERROR save(std::ostream &os, const OP_SaveFlags &flags, const char *path_prefix="", const UT_StringHolder &name_override=UT_StringHolder())
 
virtual int isSingleThreadedCop() const 
 
OP_DataType getCookedDataType() const override
 
OP_ERROR getErrorSeverity() override
 
virtual fpreal getTimeTransform(int input, fpreal t)
 
static ut_thread_id_t getMyThreadId()
 
A global error manager scope. 
 
static OP_TemplatePair myTemplatePair
 
virtual bool evalVariableValue(UT_String &val, int index, int thread)
 
virtual void waitForLastFile()=0
 
virtual bool isFrameScoped(int)
 
virtual bool isGPUAssisted(const TIL_Plane &, int, float, int, int, int)
 
virtual int frameScope(UT_String &)
 
const TIL_Plane * myPlane
 
virtual COP2_Node * getInputToOpen(int i)
 
bool load(UT_IStream &is, const char *ext="", const char *path=nullptr) override
 
GLdouble GLdouble GLdouble y2
 
COP2_ThreadPref myThreadPreference
 
**Note that the tasks the thread_id
 
virtual void inputOpenFailed(int)
 
virtual int getMaskInput() const 
 
OP_Node * getOp() override
 
virtual UT_TokenString & getParmHashCode(OP_Context &context, int group_mask=1)
 
virtual OP_ERROR open(short &key, int clear_errors=0)=0
 
OIIO_UTIL_API std::string extension(string_view filepath, bool include_dot=true) noexcept
 
TIL_TileList * inputTile(int input_index, COP2_Context &context, const TIL_Plane *plane, int array_index, float t, int xstart, int ystart, OP_ERROR *err=0, int block=1, bool *mask=0, COP2_Node *fromtile=0, bool correctorig=true, bool *blocked=0, bool *was_corrected=0)
 
virtual void close(short key)=0
 
const char * getChildType() const override
 
bool isCooking(bool include_ancestors) const 
 
void * getCookedData(const OP_Context &) override
 
virtual void deleteCookedData()=0
 
bool isDiskCacheEnabled() const