Blob Blame Raw


#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) /* WARNING  it must be greater or */
									  /* equal to SLICE_LX*SLICE_LY!    */

#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