| #pragma once |
| |
| #ifndef _CASM_H_ |
| #define _CASM_H_ |
| |
| #include <stdarg.h> |
| |
| #define MSG_I 1 |
| #define MSG_W 2 |
| #define MSG_E 3 |
| #define MSG_F 4 |
| #define MSG_IE 5 |
| #define MSG_IF 6 |
| #define MSG_P 7 |
| |
| typedef enum CASM_RESAMPLE_TYPE { |
| CASM_RESAMPLE_NULL, |
| CASM_RESAMPLE_STANDARD, |
| CASM_RESAMPLE_IMPROVED, |
| CASM_RESAMPLE_HIGH |
| } CASM_RESAMPLE_TYPE; |
| |
| typedef struct { |
| char *name; |
| int (*routine)(void); |
| } KEYWORD; |
| |
| typedef struct { double x, y, z; } VECTOR; |
| |
| typedef struct CASM_WINDOW { |
| int x1, y1, x2, y2; |
| struct CASM_WINDOW *next; |
| } CASM_WINDOW; |
| |
| |
| |
| #define SLICE_LX 1024 |
| #define SLICE_LY 1024 |
| |
| #define LOADABLE_PIXELS (1024 * 1024) |
| |
| |
| #define CASM_RENDER_DEFAULT 1.0 |
| |
| #define CASM_MEM_CHUNK_DEFAULT 1.0 |
| |
| |
| |
| #define INTERSECT(win1, win2, win) \ |
| (win)->x1 = MAX((win1)->x1, (win2)->x1); \ |
| (win)->y1 = MAX((win1)->y1, (win2)->y1); \ |
| (win)->x2 = MIN((win1)->x2, (win2)->x2); \ |
| (win)->y2 = MIN((win1)->y2, (win2)->y2) |
| |
| #define UNION(win1, win2, win) \ |
| (win)->x1 = MIN((win1)->x1, (win2)->x1); \ |
| (win)->y1 = MIN((win1)->y1, (win2)->y1); \ |
| (win)->x2 = MAX((win1)->x2, (win2)->x2); \ |
| (win)->y2 = MAX((win1)->y2, (win2)->y2) |
| |
| #define RESIZE_RECT(win, border) \ |
| { \ |
| (win)->x1 -= border; \ |
| (win)->y1 -= border; \ |
| (win)->x2 += border; \ |
| (win)->y2 += border; \ |
| } |
| |
| |
| |
| #define DDR_FILENAME " DDR" |
| #define DDR_FILENAME_LEN 4 |
| |
| |
| |
| #ifndef WIN32 |
| #define CASM_LINK_MASK_STRING " -link " |
| #define CASM_LINK_QUAL_STRING \ |
| "-link : forces casm to create a link to the previous image if " \ |
| "the\n" \ |
| " current image is identical. By default ngcasm writes\n" \ |
| " another identical image on disk.\n" |
| #else |
| #define CASM_LINK_MASK_STRING " " |
| #define CASM_LINK_QUAL_STRING "\n" |
| #endif |
| |
| #define CASM_USAGE_MASK \ |
| " --pt --shmem%d%s -trace -cf -constant_focus -intmove " \ |
| " -fracmove --pipe%d --dimensions%d%d -shrink%d -s%d --rd%d " \ |
| " -hq -iq -sq -no_overwrite -no -logfile%s -gamma%f -local_render -clap " \ |
| " -step%d -range%d%d -r%d%d -mem%f -tile%f -64bit -32bit -lineart%d " \ |
| "-edgealiasing%d -ddr%d" CASM_LINK_MASK_STRING \ |
| " --nowait -frame%d -first%d -bc%s -ac%s -bc_args%s -ac_args%s -mm " \ |
| "-mmsingle%d [filename]" |
| |
| #define CASM_USAGE_STRING \ |
| "-range fs fe : \n" \ |
| "-r fs fe : compose the frames ranging from 'fs' to 'fe'\n" \ |
| "-frame n : compose the frame 'n' only\n" \ |
| "-step n : compose each 'n' frames\n" \ |
| "-intmove : do NOT apply subpixel positioning for full-color " \ |
| "levels \n" \ |
| "-fracmove : apply subpixel positioning also for anim-type\n" \ |
| "-64bit : renders 64 bit color images\n" \ |
| "-mm : save the levels of each frame separately\n" \ |
| "-mmsingle [ #col ]: computes and save only level in the #col column " \ |
| "number\n" \ |
| " in the exposure sheet \n" \ |
| "-shrink value : \n" \ |
| "-s value : subsample one each 'value' pixels and one each\n" \ |
| "-bc scriptfile : execute scriptfile before frame composition\n" \ |
| "-ac scriptfile : execute scriptfile after frame composition\n" \ |
| "-bc_args args : argument(s) for 'bc' script \n" \ |
| "-ac_args args : argument(s) for 'ac' script \n" \ |
| "-no_overwrite : \n" \ |
| "-no : skip computing of already existing frames on disk\n" \ |
| " (useful to render scenes on multiple workstations\n" \ |
| " sharing the same database)\n" \ |
| "-tile xsize : dimensions (in Kilopixels) of the largest squared " \ |
| "portion \n" \ |
| " of the frame to be composed in one step; xsize does " \ |
| "not \n" \ |
| " need to be an integer. \n" \ |
| "-mem value : dimensions (in Kilopixels) of the squared portion of\n" \ |
| " background image to be kept in RAM memory.\n" \ |
| " It must be greater or equal to xsize of option -tile\n" \ |
| "-constant_focus : \n" \ |
| "-cf : forces casm to work in constant focus mode, thus " \ |
| "avoiding\n" \ |
| " abrupt changes from slight blurry to focused images " \ |
| "as the \n" \ |
| " camera zooms toward the final field size. This " \ |
| "qualifier\n" \ |
| " should be used ONLY when a zoom operation creates the " \ |
| "above\n" \ |
| " described problem because its usage will cause a " \ |
| "longer\n" \ |
| " compositing time and will force the camera to remain " \ |
| "\n" \ |
| " constantly out-of-focus.\n" \ |
| "-sq :\n" \ |
| "-iq :\n" \ |
| "-hq : sets the resample quality respectively to standard, " \ |
| "improved\n" \ |
| " or high quality for geometrical transformations\n" \ |
| " default: Resample type set in toonzsetup module.\n" \ |
| "-logfile filename : writes a log file with all the errors and warnings.\n" \ |
| "-ddr startframe : direct output frames on a Digital Disc Recorder " \ |
| "starting from specified position.\n" \ |
| "-local_render : makes a local copy of image files locally, to speed " \ |
| "up rendering\n" \ |
| "-gamma value : performs a gamma correction of specified value on all " \ |
| "\n" \ |
| " rendered images\n" \ |
| "-lineart value : produces an aliased output image, with colors from " \ |
| "original palette; \n" \ |
| " it is ignored if not used in conjunction with -mm or " \ |
| "-mmsingle and on \n" \ |
| " full color input images\n" \ |
| "-edgealiasing value : produces an output image with contour edges " \ |
| "aliased;\n" \ |
| " so, matte channel pixel values are either " \ |
| "transparent or opaque; \n" \ |
| " it is ignored if not used in conjunction with -mm or " \ |
| "-mmsingle and on \n" \ |
| " full color input images\n" CASM_LINK_QUAL_STRING |
| |
| #endif |