From 22835c8eb5458d510f7765df88ce8c9b34af787e Mon Sep 17 00:00:00 2001 From: Mike Wey Date: Sat, 15 Jan 2011 18:04:16 +0100 Subject: Add Options.d --- dmagick/Options.d | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 dmagick/Options.d (limited to 'dmagick/Options.d') 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'; + } +} -- cgit v1.2.3