From 29427aa46819561111c1ce31014680f32c0dcab3 Mon Sep 17 00:00:00 2001 From: Mike Wey Date: Mon, 28 Feb 2011 23:48:18 +0100 Subject: Add versions for different Quantum depths --- dmagick/c/magickType.d | 50 ++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 42 insertions(+), 8 deletions(-) (limited to 'dmagick/c/magickType.d') diff --git a/dmagick/c/magickType.d b/dmagick/c/magickType.d index 0817bb4..53aeff0 100644 --- a/dmagick/c/magickType.d +++ b/dmagick/c/magickType.d @@ -2,19 +2,53 @@ module dmagick.c.magickType; extern (C) { - alias double MagickRealType; - alias ushort Quantum; - alias uint MagickStatusType; - alias long MagickOffsetType; - alias ulong MagickSizeType; + version(Quantum8) + { + alias ubyte Quantum; + alias double MagickRealType; + + enum MAGICKCORE_QUANTUM_DEPTH = 8; + enum QuantumRange = Quantum.max; + } + else version(Quantum32) + { + alias uint Quantum; + alias double MagickRealType; + + enum MAGICKCORE_QUANTUM_DEPTH = 32; + enum QuantumRange = Quantum.max; + } + else version(Quantum64) + { + static assert(false, "64bit Quantum not implemented, need long double"); - alias int MagickBooleanType; + //alias double Quantum; + //alias long double MagickRealType; + + //enum MAGICKCORE_QUANTUM_DEPTH = 64; + //enum QuantumRange = 18446744073709551615.0; + } + else + { + alias ushort Quantum; + alias double MagickRealType; + + enum MAGICKCORE_QUANTUM_DEPTH = 16; + enum QuantumRange = Quantum.max; + } + + alias uint MagickStatusType; + alias long MagickOffsetType; + alias ulong MagickSizeType; + alias int MagickBooleanType; alias MagickSizeType QuantumAny; - alias QuantumRange TransparentOpacity; + alias QuantumRange TransparentOpacity; + + alias MAGICKCORE_QUANTUM_DEPTH MagickQuantumDepth; enum MaxTextExtent = 4096; - enum QuantumRange = 65535UL; + enum OpaqueOpacity = 0; enum ChannelType { -- cgit v1.2.3