1 module dmagick.c.cacheView; 2 3 import dmagick.c.colorspace; 4 import dmagick.c.exception; 5 import dmagick.c.image; 6 import dmagick.c.magickType; 7 import dmagick.c.magickVersion; 8 import dmagick.c.pixel; 9 10 alias ptrdiff_t ssize_t; 11 12 extern(C) 13 { 14 /** 15 * Specify contents of virtual pixels. 16 */ 17 enum VirtualPixelMethod 18 { 19 /** */ 20 UndefinedVirtualPixelMethod, 21 22 /** 23 * The area surrounding the image is the background color. 24 */ 25 BackgroundVirtualPixelMethod, 26 27 /** */ 28 ConstantVirtualPixelMethod, 29 30 /** 31 * Non-random 32x32 dithered pattern. 32 */ 33 DitherVirtualPixelMethod, 34 35 /** 36 * Extend the edge pixel toward infinity. 37 */ 38 EdgeVirtualPixelMethod, 39 40 /** 41 * Mirror tile the image. 42 */ 43 MirrorVirtualPixelMethod, 44 45 /** 46 * Choose a random pixel from the image. 47 */ 48 RandomVirtualPixelMethod, 49 50 /** 51 * Tile the image. 52 */ 53 TileVirtualPixelMethod, 54 55 /** 56 * The area surrounding the image is transparent blackness. 57 */ 58 TransparentVirtualPixelMethod, 59 60 /** */ 61 MaskVirtualPixelMethod, 62 63 /** 64 * The area surrounding the image is black. 65 */ 66 BlackVirtualPixelMethod, 67 68 /** 69 * The area surrounding the image is gray. 70 */ 71 GrayVirtualPixelMethod, 72 73 /** 74 * The area surrounding the image is white. 75 */ 76 WhiteVirtualPixelMethod, 77 78 /** 79 * Horizontally tile the image, background color above/below. 80 */ 81 HorizontalTileVirtualPixelMethod, 82 83 /** 84 * Vertically tile the image, sides are background color. 85 */ 86 VerticalTileVirtualPixelMethod, 87 88 /** 89 * Horizontally tile the image and replicate the side edge pixels. 90 */ 91 HorizontalTileEdgeVirtualPixelMethod, 92 93 /** 94 * Vertically tile the image and replicate the side edge pixels. 95 */ 96 VerticalTileEdgeVirtualPixelMethod, 97 98 /** 99 * Alternate squares with image and background color. 100 */ 101 CheckerTileVirtualPixelMethod 102 } 103 104 struct CacheView {} 105 106 static if ( MagickLibVersion >= 0x677 ) 107 { 108 CacheView* AcquireAuthenticCacheView(const(Image)*, ExceptionInfo*); 109 } 110 111 CacheView* AcquireCacheView(const(Image)*); 112 113 static if ( MagickLibVersion >= 0x677 ) 114 { 115 CacheView* AcquireVirtualCacheView(const(Image)*, ExceptionInfo*); 116 } 117 118 CacheView* CloneCacheView(const(CacheView)*); 119 CacheView* DestroyCacheView(CacheView*); 120 121 ClassType GetCacheViewStorageClass(const(CacheView)*); 122 123 ColorspaceType GetCacheViewColorspace(const(CacheView)*); 124 125 const(IndexPacket)* GetCacheViewVirtualIndexQueue(const(CacheView)*); 126 127 const(PixelPacket)* GetCacheViewVirtualPixels(const(CacheView)*, const ssize_t, const ssize_t, const size_t, const size_t, ExceptionInfo*); 128 const(PixelPacket)* GetCacheViewVirtualPixelQueue(const(CacheView)*); 129 130 ExceptionInfo* GetCacheViewException(const(CacheView)*); 131 132 IndexPacket* GetCacheViewAuthenticIndexQueue(CacheView*); 133 134 MagickBooleanType GetOneCacheViewVirtualPixel(const(CacheView)*, const ssize_t, const ssize_t, PixelPacket*, ExceptionInfo*); 135 MagickBooleanType GetOneCacheViewVirtualMethodPixel(const(CacheView)*, const VirtualPixelMethod, const ssize_t, const ssize_t, PixelPacket*, ExceptionInfo*); 136 MagickBooleanType GetOneCacheViewAuthenticPixel(const(CacheView)*, const ssize_t, const ssize_t, PixelPacket*, ExceptionInfo*); 137 MagickBooleanType SetCacheViewStorageClass(CacheView*, const ClassType); 138 MagickBooleanType SetCacheViewVirtualPixelMethod(CacheView*, const VirtualPixelMethod); 139 MagickBooleanType SyncCacheViewAuthenticPixels(CacheView*, ExceptionInfo*); 140 141 MagickSizeType GetCacheViewExtent(const(CacheView)*); 142 143 static if ( MagickLibVersion >= 0x670 ) 144 { 145 size_t GetCacheViewChannels(const(CacheView)*); 146 } 147 148 PixelPacket* GetCacheViewAuthenticPixelQueue(CacheView*); 149 PixelPacket* GetCacheViewAuthenticPixels(CacheView*, const ssize_t, const ssize_t, const size_t, const size_t, ExceptionInfo*); 150 PixelPacket* QueueCacheViewAuthenticPixels(CacheView*, const ssize_t, const ssize_t, const size_t, const size_t, ExceptionInfo*); 151 }