1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
|
module dmagick.c.magickType;
import dmagick.c.magickVersion;
extern (C)
{
version(Quantum8)
{
alias ubyte Quantum;
alias double MagickRealType;
enum MAGICKCORE_QUANTUM_DEPTH = 8;
enum QuantumRange = Quantum.max;
enum MaxColormapSize = 256;
enum MagickEpsilon = 1.0e-6;
enum MagickHuge = 1.0e6;
}
else version(Quantum32)
{
alias uint Quantum;
alias double MagickRealType;
enum MAGICKCORE_QUANTUM_DEPTH = 32;
enum QuantumRange = Quantum.max;
enum MaxColormapSize = 65536;
enum MagickEpsilon = 1.0e-10;
enum MagickHuge = 1.0e12;
}
else version(Quantum64)
{
alias double Quantum;
//real seems to be the same size as long double for
//dmc and dmd on windows and for dmd and gcc on linux.
alias real MagickRealType;
enum MAGICKCORE_QUANTUM_DEPTH = 64;
enum QuantumRange = 18446744073709551615.0;
enum MaxColormapSize = 65536;
enum MagickEpsilon = 1.0e-10;
enum MagickHuge = 1.0e12;
}
else
{
alias ushort Quantum;
alias double MagickRealType;
enum MAGICKCORE_QUANTUM_DEPTH = 16;
enum QuantumRange = Quantum.max;
enum MaxColormapSize = 65536;
enum MagickEpsilon = 1.0e-10;
enum MagickHuge = 1.0e12;
}
alias uint MagickStatusType;
alias long MagickOffsetType;
alias ulong MagickSizeType;
alias int MagickBooleanType;
alias MagickSizeType QuantumAny;
alias QuantumRange TransparentOpacity;
alias MaxColormapSize MaxMap;
alias MAGICKCORE_QUANTUM_DEPTH MagickQuantumDepth;
enum MaxTextExtent = 4096;
enum OpaqueOpacity = 0;
mixin(
{
string channels = "enum ChannelType
{
UndefinedChannel,
RedChannel = 0x0001,
GrayChannel = 0x0001,
CyanChannel = 0x0001,
GreenChannel = 0x0002,
MagentaChannel = 0x0002,
BlueChannel = 0x0004,
YellowChannel = 0x0004,
AlphaChannel = 0x0008,
OpacityChannel = 0x0008,
MatteChannel = 0x0008, // deprecated
BlackChannel = 0x0020,
IndexChannel = 0x0020,
CompositeChannels = 0x002F,";
static if ( MagickLibVersion < 0x670 )
{
channels ~= "AllChannels = 0x002F,";
}
else static if ( MagickLibVersion == 0x670 )
{
channels ~= "AllChannels = ~0UL,";
}
else static if ( MagickLibVersion == 0x671 )
{
channels ~= "AllChannels = ~0L,";
}
else
{
channels ~= "AllChannels = 0x7FFFFFF,";
}
channels ~= "
TrueAlphaChannel = 0x0040, // extract actual alpha channel from opacity
RGBChannels = 0x0080, // set alpha from grayscale mask in RGB
GrayChannels = 0x0080,
SyncChannels = 0x0100, // channels should be modified equally
DefaultChannels = ( (AllChannels | SyncChannels) &~ OpacityChannel)
}";
return channels;
}());
enum ClassType
{
UndefinedClass,
DirectClass,
PseudoClass
}
struct BlobInfo {}
}
|