Go to the documentation of this file.
18 #ifndef _MAGICKWAND_MOGRIFY_PRIVATE_H
19 #define _MAGICKWAND_MOGRIFY_PRIVATE_H
21 #if defined(__cplusplus) || defined(c_plusplus)
25 #define AppendImageStack(images) \
27 (void) SyncImagesSettings(image_info,images); \
28 AppendImageToList(&image_stack[k].image,images); \
29 image=image_stack[k].image; \
31 #define DestroyImageStack() \
35 image_stack[k].image=DestroyImageList(image_stack[k].image); \
36 image_stack[k].image_info=DestroyImageInfo(image_stack[k].image_info); \
38 #define FinalizeImageSettings(image_info,image,advance) \
40 FireImageStack(MagickTrue,advance,MagickTrue); \
41 if (image != (Image *) NULL) \
43 InheritException(exception,&(image)->exception); \
44 (void) SyncImagesSettings(image_info,image); \
47 #define FireImageStack(postfix,advance,fire) \
48 if ((j <= i) && (i < (ssize_t) argc)) \
50 if (image_stack[k].image == (Image *) NULL) \
51 status&=MogrifyImageInfo(image_stack[k].image_info,(int) (i-j+1), \
52 (const char **) (argv+j),exception); \
54 if ((fire) != MagickFalse) \
56 status&=MogrifyImages(image_stack[k].image_info,postfix,(int) \
57 (i-j+1),(const char **) (argv+j),&image_stack[k].image, \
59 image=image_stack[k].image; \
60 if ((advance) != MagickFalse) \
65 #define MaxImageStackDepth 32
66 #define NewImageStack() \
68 image_stack[0].image_info=CloneImageInfo(image_info); \
69 image_stack[0].image=NewImageList(); \
70 image_info=image_stack[0].image_info; \
71 image=image_stack[0].image; \
73 #define PushImageStack() \
76 image_stack[k].image_info=CloneImageInfo(image_stack[k-1].image_info); \
77 image_stack[k].image=NewImageList(); \
78 image_info=image_stack[k].image_info; \
79 image=image_stack[k].image; \
81 #define PopImageStack() \
83 if (respect_parenthesis == MagickFalse) \
85 image_stack[k-1].image_info=DestroyImageInfo(image_stack[k-1].image_info); \
86 image_stack[k-1].image_info=CloneImageInfo(image_stack[k].image_info); \
88 image_stack[k].image_info=DestroyImageInfo(image_stack[k].image_info); \
89 AppendImageToList(&image_stack[k-1].image,image_stack[k].image); \
91 image_info=image_stack[k].image_info; \
92 image=image_stack[k].image; \
94 #define QuantumTick(i,span) ((MagickBooleanType) ((((i) & ((i)-1)) == 0) || \
95 (((i) & 0xfff) == 0) || \
96 ((MagickOffsetType) (i) == ((MagickOffsetType) (span)-1))))
97 #define RemoveImageStack(images) \
99 images=RemoveFirstImageFromList(&image_stack[k].image); \
100 image=image_stack[k].image; \
102 #define RemoveAllImageStack() \
104 if (image_stack[k].image != (Image *) NULL) \
105 image_stack[k].image=DestroyImageList(image_stack[k].image); \
107 #define SetImageStack(image) \
109 image_stack[k].image=(image); \
121 #if defined(__cplusplus) || defined(c_plusplus)