From d7ecaca521e2840f1308b758f7b3a3a9fd2dce38 Mon Sep 17 00:00:00 2001 From: cristy Date: Mon, 24 Jan 2011 14:14:53 +0000 Subject: [PATCH] --- magick/annotate.c | 60 ++++++++++++++++++++++++++++++++++++++ magick/annotate.h | 4 +++ magick/exception-private.h | 1 + magick/magick.c | 3 ++ 4 files changed, 68 insertions(+) diff --git a/magick/annotate.c b/magick/annotate.c index 05af331f4..e28324c91 100644 --- a/magick/annotate.c +++ b/magick/annotate.c @@ -64,6 +64,7 @@ #include "magick/quantum-private.h" #include "magick/property.h" #include "magick/resource_.h" +#include "magick/semaphore.h" #include "magick/statistic.h" #include "magick/string_.h" #include "magick/token-private.h" @@ -100,6 +101,12 @@ #endif /* defined(FT_BBOX_H) */ #endif +/* + Annotate semaphores. +*/ +static SemaphoreInfo + *annotate_semaphore = (SemaphoreInfo *) NULL; + /* Forward declarations. */ @@ -115,6 +122,55 @@ static MagickBooleanType % % % % % % ++ A n n o t a t e C o m p o n e n t G e n e s i s % +% % +% % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% AnnotateComponentGenesis() instantiates the annotate component. +% +% The format of the AnnotateComponentGenesis method is: +% +% MagickBooleanType AnnotateComponentGenesis(void) +% +*/ +MagickExport MagickBooleanType AnnotateComponentGenesis(void) +{ + AcquireSemaphoreInfo(&annotate_semaphore); + return(MagickTrue); +} + +/* +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% % +% % ++ A n n o t a t e C o m p o n e n t T e r m i n u s % +% % +% % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% AnnotateComponentTerminus() destroys the annotate component. +% +% The format of the AnnotateComponentTerminus method is: +% +% AnnotateComponentTerminus(void) +% +*/ +MagickExport void AnnotateComponentTerminus(void) +{ + if (annotate_semaphore == (SemaphoreInfo *) NULL) + AcquireSemaphoreInfo(&annotate_semaphore); + DestroySemaphoreInfo(&annotate_semaphore); +} + +/* +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% % +% % % A n n o t a t e I m a g e % % % % % @@ -1820,6 +1876,9 @@ static MagickBooleanType RenderX11(Image *image,const DrawInfo *draw_info, height, width; + if (annotate_semaphore == (SemaphoreInfo *) NULL) + AcquireSemaphoreInfo(&annotate_semaphore); + LockSemaphoreInfo(annotate_semaphore); if (display == (Display *) NULL) { const char @@ -1900,6 +1959,7 @@ static MagickBooleanType RenderX11(Image *image,const DrawInfo *draw_info, } cache_info=(*draw_info); } + UnlockSemaphoreInfo(annotate_semaphore); /* Initialize annotate info. */ diff --git a/magick/annotate.h b/magick/annotate.h index 9289970b1..1ba4faa63 100644 --- a/magick/annotate.h +++ b/magick/annotate.h @@ -25,6 +25,7 @@ extern "C" { #include "magick/draw.h" extern MagickExport MagickBooleanType + AnnotateComponentGenesis(void), AnnotateImage(Image *,const DrawInfo *), GetMultilineTypeMetrics(Image *,const DrawInfo *,TypeMetric *), GetTypeMetrics(Image *,const DrawInfo *,TypeMetric *); @@ -33,6 +34,9 @@ extern MagickExport ssize_t FormatMagickCaption(Image *,DrawInfo *,const MagickBooleanType,TypeMetric *, char **); +extern MagickExport void + AnnotateComponentTerminus(void); + #if defined(__cplusplus) || defined(c_plusplus) } #endif diff --git a/magick/exception-private.h b/magick/exception-private.h index f49ad976a..558c60bbd 100644 --- a/magick/exception-private.h +++ b/magick/exception-private.h @@ -23,6 +23,7 @@ extern "C" { #endif #include "magick/log.h" +#include "magick/string_.h" #define ThrowBinaryException(severity,tag,context) \ { \ diff --git a/magick/magick.c b/magick/magick.c index 024db6fb3..b3eca62d2 100644 --- a/magick/magick.c +++ b/magick/magick.c @@ -41,6 +41,7 @@ Include declarations. */ #include "magick/studio.h" +#include "magick/annotate.h" #include "magick/blob.h" #include "magick/cache.h" #include "magick/coder.h" @@ -1311,6 +1312,7 @@ MagickExport void MagickCoreGenesis(const char *path, (void) TypeComponentGenesis(); (void) MimeComponentGenesis(); (void) ConstituteComponentGenesis(); + (void) AnnotateComponentGenesis(); #if defined(MAGICKCORE_X11_DELEGATE) (void) XComponentGenesis(); #endif @@ -1347,6 +1349,7 @@ MagickExport void MagickCoreTerminus(void) #if defined(MAGICKCORE_X11_DELEGATE) XComponentTerminus(); #endif + AnnotateComponentTerminus(); ConstituteComponentTerminus(); MimeComponentTerminus(); TypeComponentTerminus(); -- 2.50.0