13ed852eea50f9d4cd633efb8c2b054b8e33c253cristy/* 27ce65e7125a4e1df1a274ce373c537a9df9c16cdCristy Copyright 1999-2016 ImageMagick Studio LLC, a non-profit organization 33ed852eea50f9d4cd633efb8c2b054b8e33c253cristy dedicated to making software imaging solutions freely available. 448bcfe0859ff90b71e2bdfde3e1c1229b9e57523Cristy 53ed852eea50f9d4cd633efb8c2b054b8e33c253cristy You may not use this file except in compliance with the License. 63ed852eea50f9d4cd633efb8c2b054b8e33c253cristy obtain a copy of the License at 748bcfe0859ff90b71e2bdfde3e1c1229b9e57523Cristy 83ed852eea50f9d4cd633efb8c2b054b8e33c253cristy http://www.imagemagick.org/script/license.php 948bcfe0859ff90b71e2bdfde3e1c1229b9e57523Cristy 103ed852eea50f9d4cd633efb8c2b054b8e33c253cristy Unless required by applicable law or agreed to in writing, software 113ed852eea50f9d4cd633efb8c2b054b8e33c253cristy distributed under the License is distributed on an "AS IS" BASIS, 123ed852eea50f9d4cd633efb8c2b054b8e33c253cristy WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 133ed852eea50f9d4cd633efb8c2b054b8e33c253cristy See the License for the specific language governing permissions and 143ed852eea50f9d4cd633efb8c2b054b8e33c253cristy limitations under the License. 153ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 163ed852eea50f9d4cd633efb8c2b054b8e33c253cristy MagickCore drawing methods. 173ed852eea50f9d4cd633efb8c2b054b8e33c253cristy*/ 1883bceaa5d7a1196e05c1ccba443f90f4b032fca6Cristy#ifndef MAGICKCORE_DRAW_H 1983bceaa5d7a1196e05c1ccba443f90f4b032fca6Cristy#define MAGICKCORE_DRAW_H 203ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 214c08aed51c5899665ade97263692328eea4af106cristy#include "MagickCore/geometry.h" 224c08aed51c5899665ade97263692328eea4af106cristy#include "MagickCore/image.h" 234c08aed51c5899665ade97263692328eea4af106cristy#include "MagickCore/pixel.h" 244c08aed51c5899665ade97263692328eea4af106cristy#include "MagickCore/type.h" 253ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 266398ec777e91813b64767e25358b7062a7de56cbcristy#if defined(__cplusplus) || defined(c_plusplus) 276398ec777e91813b64767e25358b7062a7de56cbcristyextern "C" { 286398ec777e91813b64767e25358b7062a7de56cbcristy#endif 296398ec777e91813b64767e25358b7062a7de56cbcristy 303ed852eea50f9d4cd633efb8c2b054b8e33c253cristytypedef enum 313ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 323ed852eea50f9d4cd633efb8c2b054b8e33c253cristy UndefinedAlign, 333ed852eea50f9d4cd633efb8c2b054b8e33c253cristy LeftAlign, 343ed852eea50f9d4cd633efb8c2b054b8e33c253cristy CenterAlign, 353ed852eea50f9d4cd633efb8c2b054b8e33c253cristy RightAlign 363ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} AlignType; 373ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 383ed852eea50f9d4cd633efb8c2b054b8e33c253cristytypedef enum 393ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 403ed852eea50f9d4cd633efb8c2b054b8e33c253cristy UndefinedPathUnits, 413ed852eea50f9d4cd633efb8c2b054b8e33c253cristy UserSpace, 423ed852eea50f9d4cd633efb8c2b054b8e33c253cristy UserSpaceOnUse, 433ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ObjectBoundingBox 443ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} ClipPathUnits; 453ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 463ed852eea50f9d4cd633efb8c2b054b8e33c253cristytypedef enum 473ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 483ed852eea50f9d4cd633efb8c2b054b8e33c253cristy UndefinedDecoration, 493ed852eea50f9d4cd633efb8c2b054b8e33c253cristy NoDecoration, 503ed852eea50f9d4cd633efb8c2b054b8e33c253cristy UnderlineDecoration, 513ed852eea50f9d4cd633efb8c2b054b8e33c253cristy OverlineDecoration, 523ed852eea50f9d4cd633efb8c2b054b8e33c253cristy LineThroughDecoration 533ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} DecorationType; 543ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 553ed852eea50f9d4cd633efb8c2b054b8e33c253cristytypedef enum 563ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 57c9b129570a277337cf0e887229741497e2ead5cfcristy UndefinedDirection, 58bdcb4b75a3d90ca70023181643cd2573843de32ecristy RightToLeftDirection, 59bdcb4b75a3d90ca70023181643cd2573843de32ecristy LeftToRightDirection 60c9b129570a277337cf0e887229741497e2ead5cfcristy} DirectionType; 61c9b129570a277337cf0e887229741497e2ead5cfcristy 62c9b129570a277337cf0e887229741497e2ead5cfcristytypedef enum 63c9b129570a277337cf0e887229741497e2ead5cfcristy{ 643ed852eea50f9d4cd633efb8c2b054b8e33c253cristy UndefinedRule, 653ed852eea50f9d4cd633efb8c2b054b8e33c253cristy#undef EvenOddRule 663ed852eea50f9d4cd633efb8c2b054b8e33c253cristy EvenOddRule, 673ed852eea50f9d4cd633efb8c2b054b8e33c253cristy NonZeroRule 683ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} FillRule; 693ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 703ed852eea50f9d4cd633efb8c2b054b8e33c253cristytypedef enum 713ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 723ed852eea50f9d4cd633efb8c2b054b8e33c253cristy UndefinedGradient, 733ed852eea50f9d4cd633efb8c2b054b8e33c253cristy LinearGradient, 743ed852eea50f9d4cd633efb8c2b054b8e33c253cristy RadialGradient 753ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} GradientType; 763ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 773ed852eea50f9d4cd633efb8c2b054b8e33c253cristytypedef enum 783ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 793ed852eea50f9d4cd633efb8c2b054b8e33c253cristy UndefinedCap, 803ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ButtCap, 813ed852eea50f9d4cd633efb8c2b054b8e33c253cristy RoundCap, 823ed852eea50f9d4cd633efb8c2b054b8e33c253cristy SquareCap 833ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} LineCap; 843ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 853ed852eea50f9d4cd633efb8c2b054b8e33c253cristytypedef enum 863ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 873ed852eea50f9d4cd633efb8c2b054b8e33c253cristy UndefinedJoin, 883ed852eea50f9d4cd633efb8c2b054b8e33c253cristy MiterJoin, 893ed852eea50f9d4cd633efb8c2b054b8e33c253cristy RoundJoin, 903ed852eea50f9d4cd633efb8c2b054b8e33c253cristy BevelJoin 913ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} LineJoin; 923ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 933ed852eea50f9d4cd633efb8c2b054b8e33c253cristytypedef enum 943ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 953ed852eea50f9d4cd633efb8c2b054b8e33c253cristy UndefinedMethod, 963ed852eea50f9d4cd633efb8c2b054b8e33c253cristy PointMethod, 973ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ReplaceMethod, 983ed852eea50f9d4cd633efb8c2b054b8e33c253cristy FloodfillMethod, 993ed852eea50f9d4cd633efb8c2b054b8e33c253cristy FillToBorderMethod, 1003ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ResetMethod 1013ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} PaintMethod; 1023ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 1033ed852eea50f9d4cd633efb8c2b054b8e33c253cristytypedef enum 1043ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 1053ed852eea50f9d4cd633efb8c2b054b8e33c253cristy UndefinedPrimitive, 10634e1a21c95b52c7f487b385028e361f66d956a19dirk AlphaPrimitive, 1073ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ArcPrimitive, 1083ed852eea50f9d4cd633efb8c2b054b8e33c253cristy BezierPrimitive, 10934e1a21c95b52c7f487b385028e361f66d956a19dirk CirclePrimitive, 1103ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ColorPrimitive, 11134e1a21c95b52c7f487b385028e361f66d956a19dirk EllipsePrimitive, 1123ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ImagePrimitive, 11334e1a21c95b52c7f487b385028e361f66d956a19dirk LinePrimitive, 11434e1a21c95b52c7f487b385028e361f66d956a19dirk PathPrimitive, 11534e1a21c95b52c7f487b385028e361f66d956a19dirk PointPrimitive, 11634e1a21c95b52c7f487b385028e361f66d956a19dirk PolygonPrimitive, 11734e1a21c95b52c7f487b385028e361f66d956a19dirk PolylinePrimitive, 11834e1a21c95b52c7f487b385028e361f66d956a19dirk RectanglePrimitive, 11934e1a21c95b52c7f487b385028e361f66d956a19dirk RoundRectanglePrimitive, 12034e1a21c95b52c7f487b385028e361f66d956a19dirk TextPrimitive 1213ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} PrimitiveType; 1223ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 1233ed852eea50f9d4cd633efb8c2b054b8e33c253cristytypedef enum 1243ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 1253ed852eea50f9d4cd633efb8c2b054b8e33c253cristy UndefinedReference, 1263ed852eea50f9d4cd633efb8c2b054b8e33c253cristy GradientReference 1273ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} ReferenceType; 1283ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 1293ed852eea50f9d4cd633efb8c2b054b8e33c253cristytypedef enum 1303ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 1313ed852eea50f9d4cd633efb8c2b054b8e33c253cristy UndefinedSpread, 1323ed852eea50f9d4cd633efb8c2b054b8e33c253cristy PadSpread, 1333ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ReflectSpread, 1343ed852eea50f9d4cd633efb8c2b054b8e33c253cristy RepeatSpread 1353ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} SpreadMethod; 1363ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 1373ed852eea50f9d4cd633efb8c2b054b8e33c253cristytypedef struct _StopInfo 1383ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 1394c08aed51c5899665ade97263692328eea4af106cristy PixelInfo 1403ed852eea50f9d4cd633efb8c2b054b8e33c253cristy color; 1413ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 142610b5aaa751e168a5b034d5924314d41238ff2f2cristy double 1433ed852eea50f9d4cd633efb8c2b054b8e33c253cristy offset; 1443ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} StopInfo; 1453ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 1463ed852eea50f9d4cd633efb8c2b054b8e33c253cristytypedef struct _GradientInfo 1473ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 1483ed852eea50f9d4cd633efb8c2b054b8e33c253cristy GradientType 1493ed852eea50f9d4cd633efb8c2b054b8e33c253cristy type; 1503ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 1513ed852eea50f9d4cd633efb8c2b054b8e33c253cristy RectangleInfo 1523ed852eea50f9d4cd633efb8c2b054b8e33c253cristy bounding_box; 1533ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 1543ed852eea50f9d4cd633efb8c2b054b8e33c253cristy SegmentInfo 1553ed852eea50f9d4cd633efb8c2b054b8e33c253cristy gradient_vector; 1563ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 1573ed852eea50f9d4cd633efb8c2b054b8e33c253cristy StopInfo 1583ed852eea50f9d4cd633efb8c2b054b8e33c253cristy *stops; 1593ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 160bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy size_t 1613ed852eea50f9d4cd633efb8c2b054b8e33c253cristy number_stops; 1623ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 1633ed852eea50f9d4cd633efb8c2b054b8e33c253cristy SpreadMethod 1643ed852eea50f9d4cd633efb8c2b054b8e33c253cristy spread; 1653ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 1663ed852eea50f9d4cd633efb8c2b054b8e33c253cristy MagickBooleanType 1673ed852eea50f9d4cd633efb8c2b054b8e33c253cristy debug; 1683ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 1693ed852eea50f9d4cd633efb8c2b054b8e33c253cristy PointInfo 17050a6c9d68214f8b6a551d0e07b84035c1794213bCristy center, 17150a6c9d68214f8b6a551d0e07b84035c1794213bCristy radii; 1723ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 173610b5aaa751e168a5b034d5924314d41238ff2f2cristy double 17495264c47a4a04033f2c1688819282e27bcf3f8b5Cristy radius, 17595264c47a4a04033f2c1688819282e27bcf3f8b5Cristy angle; 176939d92bf2f053dfe13d8556cde0b86e90adbb48fcristy 177939d92bf2f053dfe13d8556cde0b86e90adbb48fcristy size_t 178939d92bf2f053dfe13d8556cde0b86e90adbb48fcristy signature; 1793ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} GradientInfo; 1803ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 1813ed852eea50f9d4cd633efb8c2b054b8e33c253cristytypedef struct _ElementReference 1823ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 1833ed852eea50f9d4cd633efb8c2b054b8e33c253cristy char 1843ed852eea50f9d4cd633efb8c2b054b8e33c253cristy *id; 1853ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 1863ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ReferenceType 1873ed852eea50f9d4cd633efb8c2b054b8e33c253cristy type; 1883ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 1893ed852eea50f9d4cd633efb8c2b054b8e33c253cristy GradientInfo 1903ed852eea50f9d4cd633efb8c2b054b8e33c253cristy gradient; 1913ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 1923ed852eea50f9d4cd633efb8c2b054b8e33c253cristy struct _ElementReference 1933ed852eea50f9d4cd633efb8c2b054b8e33c253cristy *previous, 1943ed852eea50f9d4cd633efb8c2b054b8e33c253cristy *next; 195939d92bf2f053dfe13d8556cde0b86e90adbb48fcristy 196939d92bf2f053dfe13d8556cde0b86e90adbb48fcristy size_t 197939d92bf2f053dfe13d8556cde0b86e90adbb48fcristy signature; 1983ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} ElementReference; 1993ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 2003ed852eea50f9d4cd633efb8c2b054b8e33c253cristytypedef struct _DrawInfo 2013ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 2023ed852eea50f9d4cd633efb8c2b054b8e33c253cristy char 2033ed852eea50f9d4cd633efb8c2b054b8e33c253cristy *primitive, 2043ed852eea50f9d4cd633efb8c2b054b8e33c253cristy *geometry; 2053ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 2063ed852eea50f9d4cd633efb8c2b054b8e33c253cristy RectangleInfo 2073ed852eea50f9d4cd633efb8c2b054b8e33c253cristy viewbox; 2083ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 2093ed852eea50f9d4cd633efb8c2b054b8e33c253cristy AffineMatrix 2103ed852eea50f9d4cd633efb8c2b054b8e33c253cristy affine; 2113ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 212101ab708b0574518ac5715da4d3915400e9df79acristy PixelInfo 2133ed852eea50f9d4cd633efb8c2b054b8e33c253cristy fill, 214fd706f930f397221c6ba26f112e96e262fb0ba2eanthony stroke, 215fd706f930f397221c6ba26f112e96e262fb0ba2eanthony undercolor, 216fd706f930f397221c6ba26f112e96e262fb0ba2eanthony border_color; 217fd706f930f397221c6ba26f112e96e262fb0ba2eanthony 218fd706f930f397221c6ba26f112e96e262fb0ba2eanthony Image 219fd706f930f397221c6ba26f112e96e262fb0ba2eanthony *fill_pattern, 220fd706f930f397221c6ba26f112e96e262fb0ba2eanthony *stroke_pattern; 2213ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 2223ed852eea50f9d4cd633efb8c2b054b8e33c253cristy double 2233ed852eea50f9d4cd633efb8c2b054b8e33c253cristy stroke_width; 2243ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 2253ed852eea50f9d4cd633efb8c2b054b8e33c253cristy GradientInfo 2263ed852eea50f9d4cd633efb8c2b054b8e33c253cristy gradient; 2273ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 2283ed852eea50f9d4cd633efb8c2b054b8e33c253cristy MagickBooleanType 2293ed852eea50f9d4cd633efb8c2b054b8e33c253cristy stroke_antialias, 2303ed852eea50f9d4cd633efb8c2b054b8e33c253cristy text_antialias; 2313ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 2323ed852eea50f9d4cd633efb8c2b054b8e33c253cristy FillRule 2333ed852eea50f9d4cd633efb8c2b054b8e33c253cristy fill_rule; 2343ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 2353ed852eea50f9d4cd633efb8c2b054b8e33c253cristy LineCap 2363ed852eea50f9d4cd633efb8c2b054b8e33c253cristy linecap; 2373ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 2383ed852eea50f9d4cd633efb8c2b054b8e33c253cristy LineJoin 2393ed852eea50f9d4cd633efb8c2b054b8e33c253cristy linejoin; 2403ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 241bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy size_t 2423ed852eea50f9d4cd633efb8c2b054b8e33c253cristy miterlimit; 2433ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 2443ed852eea50f9d4cd633efb8c2b054b8e33c253cristy double 2453ed852eea50f9d4cd633efb8c2b054b8e33c253cristy dash_offset; 2463ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 2473ed852eea50f9d4cd633efb8c2b054b8e33c253cristy DecorationType 2483ed852eea50f9d4cd633efb8c2b054b8e33c253cristy decorate; 2493ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 2503ed852eea50f9d4cd633efb8c2b054b8e33c253cristy CompositeOperator 2513ed852eea50f9d4cd633efb8c2b054b8e33c253cristy compose; 2523ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 2533ed852eea50f9d4cd633efb8c2b054b8e33c253cristy char 254fd706f930f397221c6ba26f112e96e262fb0ba2eanthony *text, 2553ed852eea50f9d4cd633efb8c2b054b8e33c253cristy *font, 2563ed852eea50f9d4cd633efb8c2b054b8e33c253cristy *metrics, 2570d88ea3545d808eae9feeacdd57eec41db18d2baCristy *family; 2583ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 259fd706f930f397221c6ba26f112e96e262fb0ba2eanthony size_t 260fd706f930f397221c6ba26f112e96e262fb0ba2eanthony face; 261fd706f930f397221c6ba26f112e96e262fb0ba2eanthony 2623ed852eea50f9d4cd633efb8c2b054b8e33c253cristy StyleType 2633ed852eea50f9d4cd633efb8c2b054b8e33c253cristy style; 2643ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 2653ed852eea50f9d4cd633efb8c2b054b8e33c253cristy StretchType 2663ed852eea50f9d4cd633efb8c2b054b8e33c253cristy stretch; 2673ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 268bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy size_t 2693ed852eea50f9d4cd633efb8c2b054b8e33c253cristy weight; 2703ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 2713ed852eea50f9d4cd633efb8c2b054b8e33c253cristy char 2723ed852eea50f9d4cd633efb8c2b054b8e33c253cristy *encoding; 2733ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 2743ed852eea50f9d4cd633efb8c2b054b8e33c253cristy double 2753ed852eea50f9d4cd633efb8c2b054b8e33c253cristy pointsize; 2763ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 2773ed852eea50f9d4cd633efb8c2b054b8e33c253cristy char 2783ed852eea50f9d4cd633efb8c2b054b8e33c253cristy *density; 2793ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 2803ed852eea50f9d4cd633efb8c2b054b8e33c253cristy AlignType 2813ed852eea50f9d4cd633efb8c2b054b8e33c253cristy align; 2823ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 283fd706f930f397221c6ba26f112e96e262fb0ba2eanthony GravityType 284fd706f930f397221c6ba26f112e96e262fb0ba2eanthony gravity; 2853ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 2863ed852eea50f9d4cd633efb8c2b054b8e33c253cristy char 2873ed852eea50f9d4cd633efb8c2b054b8e33c253cristy *server_name; 2883ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 2893ed852eea50f9d4cd633efb8c2b054b8e33c253cristy double 2903ed852eea50f9d4cd633efb8c2b054b8e33c253cristy *dash_pattern; 2913ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 2923ed852eea50f9d4cd633efb8c2b054b8e33c253cristy char 2933ed852eea50f9d4cd633efb8c2b054b8e33c253cristy *clip_mask; 2943ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 2953ed852eea50f9d4cd633efb8c2b054b8e33c253cristy SegmentInfo 2963ed852eea50f9d4cd633efb8c2b054b8e33c253cristy bounds; 2973ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 2983ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ClipPathUnits 2993ed852eea50f9d4cd633efb8c2b054b8e33c253cristy clip_units; 3003ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 3013ed852eea50f9d4cd633efb8c2b054b8e33c253cristy Quantum 3024c08aed51c5899665ade97263692328eea4af106cristy alpha; 3033ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 3043ed852eea50f9d4cd633efb8c2b054b8e33c253cristy MagickBooleanType 3053ed852eea50f9d4cd633efb8c2b054b8e33c253cristy render; 3063ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 3073ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ElementReference 3083ed852eea50f9d4cd633efb8c2b054b8e33c253cristy element_reference; 3093ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 3103ed852eea50f9d4cd633efb8c2b054b8e33c253cristy double 3113ed852eea50f9d4cd633efb8c2b054b8e33c253cristy kerning, 312b32b90a7e1ee2275333589072c496b5f69e17feccristy interword_spacing, 3136ac8b3303196ef8f76c38ec08cdbafe15b53bc10cristy interline_spacing; 3146ac8b3303196ef8f76c38ec08cdbafe15b53bc10cristy 3156ac8b3303196ef8f76c38ec08cdbafe15b53bc10cristy DirectionType 316c9b129570a277337cf0e887229741497e2ead5cfcristy direction; 317c0c324c6e2b90ed8dfcdc5dddaafaa78bd36ffe5cristy 318c0c324c6e2b90ed8dfcdc5dddaafaa78bd36ffe5cristy MagickBooleanType 319c0c324c6e2b90ed8dfcdc5dddaafaa78bd36ffe5cristy debug; 320c0c324c6e2b90ed8dfcdc5dddaafaa78bd36ffe5cristy 321c0c324c6e2b90ed8dfcdc5dddaafaa78bd36ffe5cristy size_t 322c0c324c6e2b90ed8dfcdc5dddaafaa78bd36ffe5cristy signature; 32348bcfe0859ff90b71e2bdfde3e1c1229b9e57523Cristy 32448bcfe0859ff90b71e2bdfde3e1c1229b9e57523Cristy double 32548bcfe0859ff90b71e2bdfde3e1c1229b9e57523Cristy fill_alpha, 32648bcfe0859ff90b71e2bdfde3e1c1229b9e57523Cristy stroke_alpha; 3273ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} DrawInfo; 3283ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 329fd706f930f397221c6ba26f112e96e262fb0ba2eanthony 3303ed852eea50f9d4cd633efb8c2b054b8e33c253cristytypedef struct _PrimitiveInfo 3313ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 3323ed852eea50f9d4cd633efb8c2b054b8e33c253cristy PointInfo 3333ed852eea50f9d4cd633efb8c2b054b8e33c253cristy point; 3343ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 335bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy size_t 3363ed852eea50f9d4cd633efb8c2b054b8e33c253cristy coordinates; 3373ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 3383ed852eea50f9d4cd633efb8c2b054b8e33c253cristy PrimitiveType 3393ed852eea50f9d4cd633efb8c2b054b8e33c253cristy primitive; 3403ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 3413ed852eea50f9d4cd633efb8c2b054b8e33c253cristy PaintMethod 3423ed852eea50f9d4cd633efb8c2b054b8e33c253cristy method; 3433ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 3443ed852eea50f9d4cd633efb8c2b054b8e33c253cristy char 3453ed852eea50f9d4cd633efb8c2b054b8e33c253cristy *text; 3463ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} PrimitiveInfo; 3473ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 3483ed852eea50f9d4cd633efb8c2b054b8e33c253cristytypedef struct _TypeMetric 3493ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 3503ed852eea50f9d4cd633efb8c2b054b8e33c253cristy PointInfo 3513ed852eea50f9d4cd633efb8c2b054b8e33c253cristy pixels_per_em; 3523ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 3533ed852eea50f9d4cd633efb8c2b054b8e33c253cristy double 3543ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ascent, 3553ed852eea50f9d4cd633efb8c2b054b8e33c253cristy descent, 3563ed852eea50f9d4cd633efb8c2b054b8e33c253cristy width, 3573ed852eea50f9d4cd633efb8c2b054b8e33c253cristy height, 3583ed852eea50f9d4cd633efb8c2b054b8e33c253cristy max_advance, 3593ed852eea50f9d4cd633efb8c2b054b8e33c253cristy underline_position, 3603ed852eea50f9d4cd633efb8c2b054b8e33c253cristy underline_thickness; 3613ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 3623ed852eea50f9d4cd633efb8c2b054b8e33c253cristy SegmentInfo 3633ed852eea50f9d4cd633efb8c2b054b8e33c253cristy bounds; 3643ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 3653ed852eea50f9d4cd633efb8c2b054b8e33c253cristy PointInfo 3663ed852eea50f9d4cd633efb8c2b054b8e33c253cristy origin; 3673ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} TypeMetric; 3683ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 3693ed852eea50f9d4cd633efb8c2b054b8e33c253cristyextern MagickExport DrawInfo 3703ed852eea50f9d4cd633efb8c2b054b8e33c253cristy *AcquireDrawInfo(void), 3713ed852eea50f9d4cd633efb8c2b054b8e33c253cristy *CloneDrawInfo(const ImageInfo *,const DrawInfo *), 3723ed852eea50f9d4cd633efb8c2b054b8e33c253cristy *DestroyDrawInfo(DrawInfo *); 3733ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 3743ed852eea50f9d4cd633efb8c2b054b8e33c253cristyextern MagickExport MagickBooleanType 375947cb4c68bebf79b15b6f3e824bc973491a77709cristy DrawAffineImage(Image *,const Image *,const AffineMatrix *,ExceptionInfo *), 376018f07f7333b25743d0afff892450cebdb905c1acristy DrawClipPath(Image *,const DrawInfo *,const char *,ExceptionInfo *), 377947cb4c68bebf79b15b6f3e824bc973491a77709cristy DrawGradientImage(Image *,const DrawInfo *,ExceptionInfo *), 378018f07f7333b25743d0afff892450cebdb905c1acristy DrawImage(Image *,const DrawInfo *,ExceptionInfo *), 379018f07f7333b25743d0afff892450cebdb905c1acristy DrawPatternPath(Image *,const DrawInfo *,const char *,Image **, 380018f07f7333b25743d0afff892450cebdb905c1acristy ExceptionInfo *), 381947cb4c68bebf79b15b6f3e824bc973491a77709cristy DrawPrimitive(Image *,const DrawInfo *,const PrimitiveInfo *,ExceptionInfo *); 3823ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 3833ed852eea50f9d4cd633efb8c2b054b8e33c253cristyextern MagickExport void 3843ed852eea50f9d4cd633efb8c2b054b8e33c253cristy GetAffineMatrix(AffineMatrix *), 3853ed852eea50f9d4cd633efb8c2b054b8e33c253cristy GetDrawInfo(const ImageInfo *,DrawInfo *); 3863ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 3873ed852eea50f9d4cd633efb8c2b054b8e33c253cristy#if defined(__cplusplus) || defined(c_plusplus) 3883ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 3893ed852eea50f9d4cd633efb8c2b054b8e33c253cristy#endif 3903ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 3913ed852eea50f9d4cd633efb8c2b054b8e33c253cristy#endif 392