draw-private.h revision 1454be7db7a897f42cd40e4165f945d77196a6f8
1/* 2 Copyright 1999-2012 ImageMagick Studio LLC, a non-profit organization 3 dedicated to making software imaging solutions freely available. 4 5 You may not use this file except in compliance with the License. 6 obtain a copy of the License at 7 8 http://www.imagemagick.org/script/license.php 9 10 Unless required by applicable law or agreed to in writing, software 11 distributed under the License is distributed on an "AS IS" BASIS, 12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 See the License for the specific language governing permissions and 14 limitations under the License. 15 16 MagickCore private image drawing methods. 17*/ 18#ifndef _MAGICKCORE_DRAW_PRIVATE_H 19#define _MAGICKCORE_DRAW_PRIVATE_H 20 21#if defined(__cplusplus) || defined(c_plusplus) 22extern "C" { 23#endif 24 25#include "MagickCore/cache.h" 26#include "MagickCore/image.h" 27#include "MagickCore/memory_.h" 28 29static inline MagickBooleanType GetFillColor(const DrawInfo *draw_info, 30 const ssize_t x,const ssize_t y,PixelInfo *fill,ExceptionInfo *exception) 31{ 32 if (draw_info->fill_pattern == (Image *) NULL) 33 { 34 *fill=draw_info->fill; 35 return(MagickTrue); 36 } 37 { 38 Image 39 *pattern; 40 41 MagickBooleanType 42 status; 43 44 pattern=draw_info->fill_pattern; 45#if defined(MAGICKCORE_OPENMP_SUPPORT) && (_OPENMP >= 200203) 46 #pragma omp critical 47#endif 48 status=GetOneVirtualPixelInfo(pattern,TileVirtualPixelMethod,x+ 49 pattern->tile_offset.x,y+pattern->tile_offset.y,fill,exception); 50 return(status); 51 } 52} 53 54static inline MagickBooleanType GetStrokeColor(const DrawInfo *draw_info, 55 const ssize_t x,const ssize_t y,PixelInfo *stroke,ExceptionInfo *exception) 56{ 57 if (draw_info->stroke_pattern == (Image *) NULL) 58 { 59 *stroke=draw_info->stroke; 60 return(MagickTrue); 61 } 62 { 63 Image 64 *pattern; 65 66 MagickBooleanType 67 status; 68 69 pattern=draw_info->stroke_pattern; 70#if defined(MAGICKCORE_OPENMP_SUPPORT) && (_OPENMP >= 200203) 71 #pragma omp critical 72#endif 73 status=GetOneVirtualPixelInfo(pattern,TileVirtualPixelMethod,x+ 74 pattern->tile_offset.x,y+pattern->tile_offset.y,stroke,exception); 75 return(status); 76 } 77} 78 79#if defined(__cplusplus) || defined(c_plusplus) 80} 81#endif 82 83#endif 84