Changeset 11663
- Timestamp:
- 07/18/08 17:36:48 (6 weeks ago)
- Files:
-
- 1 modified
-
ImageMagick/trunk/magick/annotate.c (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
ImageMagick/trunk/magick/annotate.c
r11461 r11663 1241 1241 y; 1242 1242 1243 MagickBooleanType1244 active;1245 1246 MagickRealType1247 fill_opacity;1248 1249 PixelPacket1250 fill_color;1251 1252 1243 PointInfo 1253 1244 point, … … 1255 1246 1256 1247 register long 1257 i, 1258 x; 1259 1260 register PixelPacket 1261 *q; 1248 i; 1262 1249 1263 1250 size_t … … 1535 1522 if (draw_info->render != MagickFalse) 1536 1523 { 1537 long 1538 x_offset, 1539 y_offset; 1540 1541 register unsigned char 1542 *p; 1524 MagickBooleanType 1525 status; 1543 1526 1544 1527 ViewInfo 1545 * image_view;1528 **image_view; 1546 1529 1547 1530 /* 1548 1531 Rasterize the glyph. 1549 1532 */ 1550 p=bitmap->bitmap.buffer; 1551 image_view=AcquireCacheView(image); 1533 status=MagickTrue; 1534 image_view=AcquireCacheViewThreadSet(image); 1535 #pragma omp parallel for 1552 1536 for (y=0; y < (long) bitmap->bitmap.rows; y++) 1553 1537 { 1538 long 1539 x_offset, 1540 y_offset; 1541 1542 MagickBooleanType 1543 active; 1544 1545 MagickRealType 1546 fill_opacity; 1547 1548 PixelPacket 1549 fill_color; 1550 1551 register long 1552 id, 1553 x; 1554 1555 register PixelPacket 1556 *q; 1557 1558 register unsigned char 1559 *p; 1560 1561 id=GetCacheViewThreadId(); 1554 1562 x_offset=(long) (point.x+0.5); 1555 1563 y_offset=(long) (point.y+y+0.5); 1556 1564 if ((y_offset < 0) || (y_offset >= (long) image->rows)) 1557 { 1558 p+=bitmap->bitmap.width; 1559 continue; 1560 } 1561 q=GetCacheViewPixels(image_view,x_offset,y_offset, 1565 continue; 1566 q=GetCacheViewPixels(image_view[id],x_offset,y_offset, 1562 1567 bitmap->bitmap.width,1); 1563 1568 active=q != (PixelPacket *) NULL ? MagickTrue : MagickFalse; 1569 p=bitmap->bitmap.buffer+y*bitmap->bitmap.width; 1564 1570 for (x=0; x < (long) bitmap->bitmap.width; x++) 1565 1571 { 1566 x_offset =(long) (point.x+x+0.5);1572 x_offset++; 1567 1573 if ((*p == 0) || (x_offset < 0) || 1568 1574 (x_offset >= (long) image->columns)) … … 1576 1582 fill_opacity=fill_opacity > 0.5 ? 1.0 : 0.0; 1577 1583 if (active == MagickFalse) 1578 q=GetCacheViewPixels(image_view ,x_offset,y_offset,1,1);1584 q=GetCacheViewPixels(image_view[id],x_offset,y_offset,1,1); 1579 1585 if (q == (PixelPacket *) NULL) 1580 1586 { … … 1587 1593 fill_color.opacity); 1588 1594 MagickCompositeOver(&fill_color,fill_opacity,q,q->opacity,q); 1589 if (active == MagickFalse) 1590 (void) SyncCacheView(image_view); 1595 if ((active == MagickFalse) && 1596 (SyncCacheView(image_view[id]) == MagickFalse)) 1597 status=MagickFalse; 1591 1598 p++; 1592 1599 q++; 1593 1600 } 1594 if (SyncCacheView(image_view ) == MagickFalse)1595 break;1601 if (SyncCacheView(image_view[id]) == MagickFalse) 1602 status=MagickFalse; 1596 1603 } 1597 image_view=DestroyCacheView (image_view);1604 image_view=DestroyCacheViewThreadSet(image_view); 1598 1605 } 1599 1606 if ((bitmap->left+bitmap->bitmap.width) > metrics->width)
