| 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,®ion,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); |
| 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); |
| 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); |
| 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); |
| 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); |
| 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); |
| 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); |
| 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); |
| 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); |
| 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); |
| 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); |
| 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); |
| 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); |