summaryrefslogtreecommitdiff
path: root/dmagick/Options.d
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/Options.d
parente080979186e624ba7fed28ea9a76dfdf4feb635a (diff)
Add Options.d
Diffstat (limited to 'dmagick/Options.d')
-rw-r--r--dmagick/Options.d45
1 files changed, 45 insertions, 0 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';
+ }
+}