From b636368a771c4b7791244d308529bd9d44abfe99 Mon Sep 17 00:00:00 2001 From: Mike Wey Date: Sun, 11 Sep 2011 11:38:32 +0200 Subject: Version the Headers so DMagick can be used with older versions of MagickCore. --- dmagick/c/morphology.d | 86 ++++++++++++++++++++++++++++---------------------- 1 file changed, 49 insertions(+), 37 deletions(-) (limited to 'dmagick/c/morphology.d') diff --git a/dmagick/c/morphology.d b/dmagick/c/morphology.d index fa6ffd3..c48c6ba 100644 --- a/dmagick/c/morphology.d +++ b/dmagick/c/morphology.d @@ -6,47 +6,59 @@ import dmagick.c.exception; import dmagick.c.geometry; import dmagick.c.image; import dmagick.c.magickType; +import dmagick.c.magickVersion; extern(C) { - enum KernelInfoType + mixin( { - UndefinedKernel, /* equivelent to UnityKernel */ - UnityKernel, /* The no-op or 'original image' kernel */ - GaussianKernel, /* Convolution Kernels, Gaussian Based */ - DoGKernel, - LoGKernel, - BlurKernel, - CometKernel, - LaplacianKernel, /* Convolution Kernels, by Name */ - SobelKernel, - FreiChenKernel, - RobertsKernel, - PrewittKernel, - CompassKernel, - KirschKernel, - DiamondKernel, /* Shape Kernels */ - SquareKernel, - RectangleKernel, - OctagonKernel, - DiskKernel, - PlusKernel, - CrossKernel, - RingKernel, - PeaksKernel, /* Hit And Miss Kernels */ - EdgesKernel, - CornersKernel, - ThinDiagonalsKernel, - LineEndsKernel, - LineJunctionsKernel, - RidgesKernel, - ConvexHullKernel, - SkeletonKernel, - ChebyshevKernel, /* Distance Measuring Kernels */ - ManhattanKernel, - EuclideanKernel, - UserDefinedKernel /* User Specified Kernel Array */ - } + string info = "enum KernelInfoType + { + UndefinedKernel, /* equivelent to UnityKernel */ + UnityKernel, /* The no-op or 'original image' kernel */ + GaussianKernel, /* Convolution Kernels, Gaussian Based */ + DoGKernel, + LoGKernel, + BlurKernel, + CometKernel, + LaplacianKernel, /* Convolution Kernels, by Name */ + SobelKernel, + FreiChenKernel, + RobertsKernel, + PrewittKernel, + CompassKernel, + KirschKernel, + DiamondKernel, /* Shape Kernels */ + SquareKernel, + RectangleKernel,"; + + static if ( MagickLibVersion >= 0x670 ) + { + info ~= "OctagonKernel,"; + } + + info ~= " + DiskKernel, + PlusKernel, + CrossKernel, + RingKernel, + PeaksKernel, /* Hit And Miss Kernels */ + EdgesKernel, + CornersKernel, + ThinDiagonalsKernel, + LineEndsKernel, + LineJunctionsKernel, + RidgesKernel, + ConvexHullKernel, + SkeletonKernel, + ChebyshevKernel, /* Distance Measuring Kernels */ + ManhattanKernel, + EuclideanKernel, + UserDefinedKernel /* User Specified Kernel Array */ + }"; + + return info; + }()); enum MorphologyMethod { -- cgit v1.2.3