diff options
| author | Mike Wey | 2011-01-15 18:04:16 +0100 |
|---|---|---|
| committer | Mike Wey | 2011-01-15 18:04:16 +0100 |
| commit | 22835c8eb5458d510f7765df88ce8c9b34af787e (patch) | |
| tree | 103c55b2a9a87ffe762fb0be027295de239e1d74 /dmagick/Options.d | |
| parent | e080979186e624ba7fed28ea9a76dfdf4feb635a (diff) | |
Add Options.d
Diffstat (limited to 'dmagick/Options.d')
| -rw-r--r-- | dmagick/Options.d | 45 |
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'; + } +} |
