Changeset 11653

Show
Ignore:
Timestamp:
07/17/08 10:48:55 (3 months ago)
Author:
cristy
Message:
 
Files:
1 modified

Legend:

Unmodified
Added
Removed
  • ImageMagick/trunk/magick/cache.c

    r11651 r11653  
    344344    return(MagickFalse); 
    345345  return(MagickTrue); 
    346 } 
    347  
    348 static inline const PixelPacket *AcquireCacheVirtualNexus(const Image *image, 
    349   const long x,const long y,const unsigned long columns, 
    350   const unsigned long rows,const unsigned long nexus,ExceptionInfo *exception) 
    351 { 
    352   CacheInfo 
    353     *cache_info; 
    354  
    355   const PixelPacket 
    356     *pixels; 
    357  
    358   RectangleInfo 
    359     region; 
    360  
    361   /* 
    362     Transfer pixels from the cache. 
    363   */ 
    364   region.x=x; 
    365   region.y=y; 
    366   region.width=columns; 
    367   region.height=rows; 
    368   pixels=SetNexus(image,&region,nexus); 
    369   if (pixels == (PixelPacket *) NULL) 
    370     return((const PixelPacket *) NULL); 
    371   cache_info=(CacheInfo *) image->cache; 
    372   if (IsNexusInCore(cache_info,nexus) != MagickFalse) 
    373     return(pixels); 
    374   if (ReadCachePixels(cache_info,nexus,exception) == MagickFalse) 
    375     return((const PixelPacket *) NULL); 
    376   if ((cache_info->storage_class == PseudoClass) || 
    377       (cache_info->colorspace == CMYKColorspace)) 
    378     if (ReadCacheIndexes(cache_info,nexus,exception) == MagickFalse) 
    379       return((const PixelPacket *) NULL); 
    380   return(pixels); 
    381346} 
    382347 
     
    486451            case ConstantVirtualPixelMethod: 
    487452            { 
    488               p=AcquireCacheVirtualNexus(image,EdgeX(cache_info->columns,x+u), 
    489                 EdgeY(cache_info->rows,y+v),1UL,1UL,virtual_nexus,exception); 
     453              p=AcquireCacheNexus(image,virtual_pixel_method, 
     454                EdgeX(cache_info->columns,x+u),EdgeY(cache_info->rows,y+v), 
     455                1UL,1UL,virtual_nexus,exception); 
    490456              cache_info->virtual_pixel=image->background_color; 
    491457              p=(&cache_info->virtual_pixel); 
     
    494460            case BlackVirtualPixelMethod: 
    495461            { 
    496               p=AcquireCacheVirtualNexus(image,EdgeX(cache_info->columns,x+u), 
    497                 EdgeY(cache_info->rows,y+v),1UL,1UL,virtual_nexus,exception); 
     462              p=AcquireCacheNexus(image,virtual_pixel_method, 
     463                EdgeX(cache_info->columns,x+u),EdgeY(cache_info->rows,y+v), 
     464                1UL,1UL,virtual_nexus,exception); 
    498465              cache_info->virtual_pixel.red=0; 
    499466              cache_info->virtual_pixel.green=0; 
     
    505472            case DitherVirtualPixelMethod: 
    506473            { 
    507               p=AcquireCacheVirtualNexus(image,DitherX(cache_info->columns,x+u), 
    508                 DitherY(cache_info->rows,y+v),1UL,1UL,virtual_nexus,exception); 
     474              p=AcquireCacheNexus(image,virtual_pixel_method, 
     475                DitherX(cache_info->columns,x+u),DitherY(cache_info->rows,y+v), 
     476                1UL,1UL,virtual_nexus,exception); 
    509477              break; 
    510478            } 
     
    512480            default: 
    513481            { 
    514               p=AcquireCacheVirtualNexus(image,EdgeX(cache_info->columns,x+u), 
    515                 EdgeY(cache_info->rows,y+v),1UL,1UL,virtual_nexus,exception); 
     482              p=AcquireCacheNexus(image,virtual_pixel_method, 
     483                EdgeX(cache_info->columns,x+u),EdgeY(cache_info->rows,y+v), 
     484                1UL,1UL,virtual_nexus,exception); 
    516485              break; 
    517486            } 
    518487            case GrayVirtualPixelMethod: 
    519488            { 
    520               p=AcquireCacheVirtualNexus(image,EdgeX(cache_info->columns,x+u), 
    521                 EdgeY(cache_info->rows,y+v),1UL,1UL,virtual_nexus,exception); 
     489              p=AcquireCacheNexus(image,virtual_pixel_method, 
     490                EdgeX(cache_info->columns,x+u),EdgeY(cache_info->rows,y+v), 
     491                1UL,1UL,virtual_nexus,exception); 
    522492              cache_info->virtual_pixel.red=(Quantum) QuantumRange/2; 
    523493              cache_info->virtual_pixel.green=(Quantum) QuantumRange/2; 
     
    529499            case MaskVirtualPixelMethod: 
    530500            { 
    531               p=AcquireCacheVirtualNexus(image,EdgeX(cache_info->columns,x+u), 
    532                 EdgeY(cache_info->rows,y+v),1UL,1UL,virtual_nexus,exception); 
     501              p=AcquireCacheNexus(image,virtual_pixel_method, 
     502                EdgeX(cache_info->columns,x+u),EdgeY(cache_info->rows,y+v), 
     503                1UL,1UL,virtual_nexus,exception); 
    533504              cache_info->virtual_pixel.red=(Quantum) QuantumRange; 
    534505              cache_info->virtual_pixel.green=(Quantum) QuantumRange; 
     
    540511            case MirrorVirtualPixelMethod: 
    541512            { 
    542               p=AcquireCacheVirtualNexus(image,MirrorX(cache_info->columns,x+u), 
    543                 MirrorY(cache_info->rows,y+v),1UL,1UL,virtual_nexus,exception); 
     513              p=AcquireCacheNexus(image,virtual_pixel_method, 
     514                MirrorX(cache_info->columns,x+u),MirrorY(cache_info->rows,y+v), 
     515                1UL,1UL,virtual_nexus,exception); 
    544516              break; 
    545517            } 
    546518            case RandomVirtualPixelMethod: 
    547519            { 
    548               p=AcquireCacheVirtualNexus(image,RandomX(cache_info->columns), 
    549                 RandomY(cache_info->rows),1UL,1UL,virtual_nexus,exception); 
     520              p=AcquireCacheNexus(image,virtual_pixel_method, 
     521                RandomX(cache_info->columns),RandomY(cache_info->rows), 
     522                1UL,1UL,virtual_nexus,exception); 
    550523              break; 
    551524            } 
    552525            case TileVirtualPixelMethod: 
    553526            { 
    554               p=AcquireCacheVirtualNexus(image,TileX(cache_info->columns,x+u), 
    555                 TileY(cache_info->rows,y+v),1UL,1UL,virtual_nexus,exception); 
     527              p=AcquireCacheNexus(image,virtual_pixel_method, 
     528                TileX(cache_info->columns,x+u),TileY(cache_info->rows,y+v), 
     529                1UL,1UL,virtual_nexus,exception); 
    556530              break; 
    557531            } 
    558532            case TransparentVirtualPixelMethod: 
    559533            { 
    560               p=AcquireCacheVirtualNexus(image,EdgeX(cache_info->columns,x+u), 
    561                 EdgeY(cache_info->rows,y+v),1UL,1UL,virtual_nexus,exception); 
     534              p=AcquireCacheNexus(image,virtual_pixel_method, 
     535                EdgeX(cache_info->columns,x+u),EdgeY(cache_info->rows,y+v), 
     536                1UL,1UL,virtual_nexus,exception); 
    562537              cache_info->virtual_pixel.red=(Quantum) 0; 
    563538              cache_info->virtual_pixel.green=(Quantum) 0; 
     
    569544            case WhiteVirtualPixelMethod: 
    570545            { 
    571               p=AcquireCacheVirtualNexus(image,EdgeX(cache_info->columns,x+u), 
    572                 EdgeY(cache_info->rows,y+v),1UL,1UL,virtual_nexus,exception); 
     546              p=AcquireCacheNexus(image,virtual_pixel_method, 
     547                EdgeX(cache_info->columns,x+u),EdgeY(cache_info->rows,y+v), 
     548                1UL,1UL,virtual_nexus,exception); 
    573549              cache_info->virtual_pixel.red=(Quantum) QuantumRange; 
    574550              cache_info->virtual_pixel.green=(Quantum) QuantumRange; 
     
    593569        Transfer a run of pixels. 
    594570      */ 
    595       p=AcquireCacheVirtualNexus(image,x+u,y+v,(unsigned long) length,1UL, 
    596         virtual_nexus,exception); 
     571      p=AcquireCacheNexus(image,virtual_pixel_method,x+u,y+v,(unsigned long) 
     572        length,1UL,virtual_nexus,exception); 
    597573      if (p == (const PixelPacket *) NULL) 
    598574        break; 
     
    22692245    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s", 
    22702246      cache_info->filename); 
     2247  AcquireSemaphoreInfo(&cache_info->semaphore); 
    22712248  nexus_info=cache_info->nexus_info+nexus; 
    22722249  if (nexus_info->cache != (PixelPacket *) NULL) 
    22732250    RelinquishNexusPixels(nexus_info); 
    22742251  (void) ResetMagickMemory(nexus_info,0,sizeof(*nexus_info)); 
     2252  RelinquishSemaphoreInfo(cache_info->semaphore); 
    22752253} 
    22762254