13ed852eea50f9d4cd633efb8c2b054b8e33c253cristy/*
27ce65e7125a4e1df1a274ce373c537a9df9c16cdCristy  Copyright 1999-2016 ImageMagick Studio LLC, a non-profit organization
33ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  dedicated to making software imaging solutions freely available.
43ed852eea50f9d4cd633efb8c2b054b8e33c253cristy
53ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  You may not use this file except in compliance with the License.
63ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  obtain a copy of the License at
73ed852eea50f9d4cd633efb8c2b054b8e33c253cristy
83ed852eea50f9d4cd633efb8c2b054b8e33c253cristy    http://www.imagemagick.org/script/license.php
93ed852eea50f9d4cd633efb8c2b054b8e33c253cristy
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 cache view methods.
173ed852eea50f9d4cd633efb8c2b054b8e33c253cristy*/
1883bceaa5d7a1196e05c1ccba443f90f4b032fca6Cristy#ifndef MAGICKCORE_CACHE_VIEW_H
1983bceaa5d7a1196e05c1ccba443f90f4b032fca6Cristy#define MAGICKCORE_CACHE_VIEW_H
203ed852eea50f9d4cd633efb8c2b054b8e33c253cristy
216398ec777e91813b64767e25358b7062a7de56cbcristy#include "MagickCore/pixel.h"
226398ec777e91813b64767e25358b7062a7de56cbcristy
233ed852eea50f9d4cd633efb8c2b054b8e33c253cristy#if defined(__cplusplus) || defined(c_plusplus)
243ed852eea50f9d4cd633efb8c2b054b8e33c253cristyextern "C" {
253ed852eea50f9d4cd633efb8c2b054b8e33c253cristy#endif
263ed852eea50f9d4cd633efb8c2b054b8e33c253cristy
273ed852eea50f9d4cd633efb8c2b054b8e33c253cristytypedef enum
283ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{
293ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  UndefinedVirtualPixelMethod,
303ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  BackgroundVirtualPixelMethod,
313ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  DitherVirtualPixelMethod,
323ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  EdgeVirtualPixelMethod,
333ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  MirrorVirtualPixelMethod,
343ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  RandomVirtualPixelMethod,
353ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  TileVirtualPixelMethod,
363ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  TransparentVirtualPixelMethod,
373ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  MaskVirtualPixelMethod,
383ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  BlackVirtualPixelMethod,
393ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  GrayVirtualPixelMethod,
403ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  WhiteVirtualPixelMethod,
413ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  HorizontalTileVirtualPixelMethod,
423ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  VerticalTileVirtualPixelMethod,
433ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  HorizontalTileEdgeVirtualPixelMethod,
443ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  VerticalTileEdgeVirtualPixelMethod,
453ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  CheckerTileVirtualPixelMethod
463ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} VirtualPixelMethod;
473ed852eea50f9d4cd633efb8c2b054b8e33c253cristy
483ed852eea50f9d4cd633efb8c2b054b8e33c253cristytypedef struct _CacheView
493ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  CacheView;
503ed852eea50f9d4cd633efb8c2b054b8e33c253cristy
510d267170b2904c695cdfb443b3500f77b507d43ecristyextern MagickExport CacheView
5246ff2676b1044ea4101ac7a59b83289cd8f6cfdacristy  *AcquireAuthenticCacheView(const Image *,ExceptionInfo *),
5346ff2676b1044ea4101ac7a59b83289cd8f6cfdacristy  *AcquireVirtualCacheView(const Image *,ExceptionInfo *),
540d267170b2904c695cdfb443b3500f77b507d43ecristy  *CloneCacheView(const CacheView *),
550d267170b2904c695cdfb443b3500f77b507d43ecristy  *DestroyCacheView(CacheView *);
560d267170b2904c695cdfb443b3500f77b507d43ecristy
573ed852eea50f9d4cd633efb8c2b054b8e33c253cristyextern MagickExport ClassType
583ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  GetCacheViewStorageClass(const CacheView *);
593ed852eea50f9d4cd633efb8c2b054b8e33c253cristy
603ed852eea50f9d4cd633efb8c2b054b8e33c253cristyextern MagickExport ColorspaceType
613ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  GetCacheViewColorspace(const CacheView *);
623ed852eea50f9d4cd633efb8c2b054b8e33c253cristy
63e751662f8175c76e55da86bbf90d1a7d02425b9acristyextern MagickExport const Image
64e751662f8175c76e55da86bbf90d1a7d02425b9acristy  *GetCacheViewImage(const CacheView *);
65e751662f8175c76e55da86bbf90d1a7d02425b9acristy
664c08aed51c5899665ade97263692328eea4af106cristyextern MagickExport const Quantum
67bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy  *GetCacheViewVirtualPixels(const CacheView *,const ssize_t,const ssize_t,
6819596d6ee2c1da60386854e8a8d5e5f5926df3d2cristy    const size_t,const size_t,ExceptionInfo *) magick_hot_spot,
6919596d6ee2c1da60386854e8a8d5e5f5926df3d2cristy  *GetCacheViewVirtualPixelQueue(const CacheView *) magick_hot_spot;
703ed852eea50f9d4cd633efb8c2b054b8e33c253cristy
714c08aed51c5899665ade97263692328eea4af106cristyextern MagickExport const void
724c08aed51c5899665ade97263692328eea4af106cristy  *GetCacheViewVirtualMetacontent(const CacheView *);
734c08aed51c5899665ade97263692328eea4af106cristy
743ed852eea50f9d4cd633efb8c2b054b8e33c253cristyextern MagickExport MagickBooleanType
7599ed6690cd1ac40875fdf40d362cbd559dcdade1cristy  GetOneCacheViewAuthenticPixel(const CacheView *,const ssize_t,const ssize_t,
7699ed6690cd1ac40875fdf40d362cbd559dcdade1cristy    Quantum *,ExceptionInfo *),
772ed42f6d7c2245432767ea446742977ee87e963ccristy  GetOneCacheViewVirtualMethodPixel(const CacheView *,const VirtualPixelMethod,
782ed42f6d7c2245432767ea446742977ee87e963ccristy    const ssize_t,const ssize_t,Quantum *,ExceptionInfo *),
7999ed6690cd1ac40875fdf40d362cbd559dcdade1cristy  GetOneCacheViewVirtualPixel(const CacheView *,const ssize_t,const ssize_t,
8099ed6690cd1ac40875fdf40d362cbd559dcdade1cristy    Quantum *,ExceptionInfo *),
81f05d4947caf1bc27fbec041eb37c474a80c83c0bcristy  GetOneCacheViewVirtualPixelInfo(const CacheView *,const ssize_t,const ssize_t,
82f05d4947caf1bc27fbec041eb37c474a80c83c0bcristy    PixelInfo *,ExceptionInfo *),
83c82a27bb8e3138ff9bbf0f696663bdf3e704cedecristy  SetCacheViewStorageClass(CacheView *,const ClassType,ExceptionInfo *),
8405d2ff7ebf21f659f5b11e45afb294e152f4330cdirk  SetCacheViewVirtualPixelMethod(CacheView *magick_restrict,
8505d2ff7ebf21f659f5b11e45afb294e152f4330cdirk    const VirtualPixelMethod),
8605d2ff7ebf21f659f5b11e45afb294e152f4330cdirk  SyncCacheViewAuthenticPixels(CacheView *magick_restrict,ExceptionInfo *)
87a29f2b8b7de8c644a26c39959b4f6dbea68542accristy    magick_hot_spot;
883ed852eea50f9d4cd633efb8c2b054b8e33c253cristy
893ed852eea50f9d4cd633efb8c2b054b8e33c253cristyextern MagickExport MagickSizeType
903ed852eea50f9d4cd633efb8c2b054b8e33c253cristy  GetCacheViewExtent(const CacheView *);
913ed852eea50f9d4cd633efb8c2b054b8e33c253cristy
924c08aed51c5899665ade97263692328eea4af106cristyextern MagickExport Quantum
9319596d6ee2c1da60386854e8a8d5e5f5926df3d2cristy  *GetCacheViewAuthenticPixelQueue(CacheView *) magick_hot_spot,
94bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy  *GetCacheViewAuthenticPixels(CacheView *,const ssize_t,const ssize_t,
9519596d6ee2c1da60386854e8a8d5e5f5926df3d2cristy    const size_t,const size_t,ExceptionInfo *) magick_hot_spot,
96bb50337b2a8a16ca7e903cc04ab195ff0fd47ae6cristy  *QueueCacheViewAuthenticPixels(CacheView *,const ssize_t,const ssize_t,
9719596d6ee2c1da60386854e8a8d5e5f5926df3d2cristy    const size_t,const size_t,ExceptionInfo *) magick_hot_spot;
983ed852eea50f9d4cd633efb8c2b054b8e33c253cristy
994c08aed51c5899665ade97263692328eea4af106cristyextern MagickExport void
1004c08aed51c5899665ade97263692328eea4af106cristy  *GetCacheViewAuthenticMetacontent(CacheView *);
1014c08aed51c5899665ade97263692328eea4af106cristy
1023ed852eea50f9d4cd633efb8c2b054b8e33c253cristy#if defined(__cplusplus) || defined(c_plusplus)
1033ed852eea50f9d4cd633efb8c2b054b8e33c253cristy}
1043ed852eea50f9d4cd633efb8c2b054b8e33c253cristy#endif
1053ed852eea50f9d4cd633efb8c2b054b8e33c253cristy
1063ed852eea50f9d4cd633efb8c2b054b8e33c253cristy#endif
107