summaryrefslogtreecommitdiff
path: root/dmagick
diff options
context:
space:
mode:
authorMike Wey2011-01-15 18:04:16 +0100
committerMike Wey2011-01-15 18:04:16 +0100
commit22835c8eb5458d510f7765df88ce8c9b34af787e (patch)
tree103c55b2a9a87ffe762fb0be027295de239e1d74 /dmagick
parente080979186e624ba7fed28ea9a76dfdf4feb635a (diff)
Add Options.d
Diffstat (limited to 'dmagick')
-rw-r--r--dmagick/Options.d45
-rw-r--r--dmagick/c/image.d30
2 files changed, 55 insertions, 20 deletions
diff --git a/dmagick/Options.d b/dmagick/Options.d
new file mode 100644
index 0000000..5896260
--- /dev/null
+++ b/dmagick/Options.d
@@ -0,0 +1,45 @@
+module dmagick.Options;
+
+import dmagick.c.draw;
+import dmagick.c.image;
+import dmagick.c.magickType;
+import dmagick.c.memory;
+import dmagick.c.quantize;
+
+class Options
+{
+ ImageInfo* imageInfo;
+ QuantizeInfo* quantizeInfo;
+ DrawInfo* drawInfo;
+
+ this()
+ {
+ imageInfo = cast(ImageInfo*)AcquireMagickMemory(ImageInfo.sizeof);
+ quantizeInfo = cast(QuantizeInfo*)AcquireMagickMemory(QuantizeInfo.sizeof);
+ drawInfo = cast(DrawInfo*)AcquireMagickMemory(DrawInfo.sizeof);
+
+ }
+
+ this(const(ImageInfo)* imageInfo, const(QuantizeInfo)* quantizeInfo, const(DrawInfo)* drawInfo)
+ {
+ this.imageInfo = CloneImageInfo(imageInfo);
+ this.quantizeInfo = CloneQuantizeInfo(quantizeInfo);
+ this.drawInfo = CloneDrawInfo(imageInfo, drawInfo);
+ }
+
+ ~this()
+ {
+ imageInfo = DestroyImageInfo(imageInfo);
+ quantizeInfo = DestroyQuantizeInfo(quantizeInfo);
+ drawInfo = DestroyDrawInfo(drawInfo);
+ }
+
+ private void copyString(ref char[MaxTextExtent] field, string str)
+ {
+ if ( str.length >= MaxTextExtent )
+ throw new Exception("text is to long"); //TODO: a proper exception.
+
+ field[0 .. str.length] = str;
+ field[str.length] = '\0';
+ }
+}
diff --git a/dmagick/c/image.d b/dmagick/c/image.d
index 1425cc6..9893f9d 100644
--- a/dmagick/c/image.d
+++ b/dmagick/c/image.d
@@ -140,8 +140,7 @@ extern(C)
OrientationType
orientation;
- //MagickBooleanType
- int
+ MagickBooleanType
taint,
matte;
@@ -263,8 +262,7 @@ extern(C)
ExceptionInfo
exception;
- //MagickBooleanType
- int
+ MagickBooleanType
ddebug;
ssize_t
@@ -294,8 +292,7 @@ extern(C)
InterpolatePixelMethod
interpolate;
- //MagickBooleanType
- int
+ MagickBooleanType
black_point_compensation;
PixelPacket
@@ -314,15 +311,13 @@ extern(C)
ImageType
type;
- //MagickBooleanType
- int
+ MagickBooleanType
dither;
MagickSizeType
extent;
- //MagickBooleanType
- int
+ MagickBooleanType
ping;
}
@@ -334,8 +329,7 @@ extern(C)
OrientationType
orientation;
- //MagickBooleanType
- int
+ MagickBooleanType
temporary,
adjoin,
affirm,
@@ -380,8 +374,7 @@ extern(C)
border_color,
matte_color;
- //MagickBooleanType
- int
+ MagickBooleanType
dither,
monochrome;
@@ -400,8 +393,7 @@ extern(C)
ssize_t
group;
- //MagickBooleanType
- int
+ MagickBooleanType
ping,
verbose;
@@ -443,8 +435,7 @@ extern(C)
zero,
filename;
- //MagickBooleanType
- int
+ MagickBooleanType
ddebug;
char*
@@ -469,8 +460,7 @@ extern(C)
void*
profile;
- //MagickBooleanType
- int
+ MagickBooleanType
synchronize;
}