summaryrefslogtreecommitdiff
path: root/dmagick/c/magickType.d
diff options
context:
space:
mode:
authorMike Wey2011-02-28 23:48:18 +0100
committerMike Wey2011-02-28 23:48:18 +0100
commit29427aa46819561111c1ce31014680f32c0dcab3 (patch)
tree20dfcc3beee6697c5dad9e2a22498005a0a82ae1 /dmagick/c/magickType.d
parent846bd1de37e9dfbbcf33f21d86e755ac833c4e5d (diff)
Add versions for different Quantum depths
Diffstat (limited to 'dmagick/c/magickType.d')
-rw-r--r--dmagick/c/magickType.d50
1 files changed, 42 insertions, 8 deletions
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
{