equal
deleted
inserted
replaced
1 /* Copyright (c) 2009 The Khronos Group Inc. |
1 /* Copyright (c) 2009-2010 The Khronos Group Inc. |
2 * |
2 * |
3 * Permission is hereby granted, free of charge, to any person obtaining a |
3 * Permission is hereby granted, free of charge, to any person obtaining a |
4 * copy of this software and/or associated documentation files (the |
4 * copy of this software and/or associated documentation files (the |
5 * "Materials"), to deal in the Materials without restriction, including |
5 * "Materials"), to deal in the Materials without restriction, including |
6 * without limitation the rights to use, copy, modify, merge, publish, |
6 * without limitation the rights to use, copy, modify, merge, publish, |
1412 srcPtr += srcLineDelta; \ |
1412 srcPtr += srcLineDelta; \ |
1413 dstPtr += dstLineDelta; \ |
1413 dstPtr += dstLineDelta; \ |
1414 maskPtr += maskLineDelta; \ |
1414 maskPtr += maskLineDelta; \ |
1415 --rowCount; \ |
1415 --rowCount; \ |
1416 } |
1416 } |
|
1417 |
|
1418 #define BLENDER_INNER_LOOP_END_NO_MASK \ |
|
1419 DA = blend->destinationFullyOpaque ? OWF_FULLY_OPAQUE : DA; \ |
|
1420 } /* end tsColor check */ \ |
|
1421 srcPtr ++; \ |
|
1422 dstPtr ++; \ |
|
1423 --colCount; \ |
|
1424 } \ |
|
1425 srcPtr += srcLineDelta; \ |
|
1426 dstPtr += dstLineDelta; \ |
|
1427 --rowCount; \ |
|
1428 } |
1417 |
1429 |
1418 #define TSC blend->tsColor->color |
1430 #define TSC blend->tsColor->color |
1419 #define SC srcPtr->color |
1431 #define SC srcPtr->color |
1420 |
1432 |
1421 /* Note: actually would be better to compare integer values |
1433 /* Note: actually would be better to compare integer values |
1550 BLENDER_INNER_LOOP_BEGIN; |
1562 BLENDER_INNER_LOOP_BEGIN; |
1551 DR = SR; |
1563 DR = SR; |
1552 DG = SG; |
1564 DG = SG; |
1553 DB = SB; |
1565 DB = SB; |
1554 DA = OWF_FULLY_OPAQUE; |
1566 DA = OWF_FULLY_OPAQUE; |
1555 BLENDER_INNER_LOOP_END; |
1567 BLENDER_INNER_LOOP_END_NO_MASK; |
1556 break; |
1568 break; |
1557 } |
1569 } |
1558 |
1570 |
1559 case OWF_TRANSPARENCY_GLOBAL_ALPHA: |
1571 case OWF_TRANSPARENCY_GLOBAL_ALPHA: |
1560 { |
1572 { |
1569 OWF_ALPHA_MAX_VALUE; |
1581 OWF_ALPHA_MAX_VALUE; |
1570 DB = (SB * GA + DB * (OWF_FULLY_OPAQUE - GA) + OWF_BLEND_ROUNDING_VALUE) / |
1582 DB = (SB * GA + DB * (OWF_FULLY_OPAQUE - GA) + OWF_BLEND_ROUNDING_VALUE) / |
1571 OWF_ALPHA_MAX_VALUE; |
1583 OWF_ALPHA_MAX_VALUE; |
1572 DA = GA + (DA * (OWF_FULLY_OPAQUE - GA) + OWF_BLEND_ROUNDING_VALUE) / |
1584 DA = GA + (DA * (OWF_FULLY_OPAQUE - GA) + OWF_BLEND_ROUNDING_VALUE) / |
1573 OWF_ALPHA_MAX_VALUE; |
1585 OWF_ALPHA_MAX_VALUE; |
1574 BLENDER_INNER_LOOP_END; |
1586 BLENDER_INNER_LOOP_END_NO_MASK; |
1575 break; |
1587 break; |
1576 } |
1588 } |
1577 |
1589 |
1578 case OWF_TRANSPARENCY_SOURCE_ALPHA: |
1590 case OWF_TRANSPARENCY_SOURCE_ALPHA: |
1579 { |
1591 { |
1584 BLENDER_INNER_LOOP_BEGIN; |
1596 BLENDER_INNER_LOOP_BEGIN; |
1585 DR = SR + (DR * (OWF_FULLY_OPAQUE - SA) + OWF_BLEND_ROUNDING_VALUE) / OWF_ALPHA_MAX_VALUE; |
1597 DR = SR + (DR * (OWF_FULLY_OPAQUE - SA) + OWF_BLEND_ROUNDING_VALUE) / OWF_ALPHA_MAX_VALUE; |
1586 DG = SG + (DG * (OWF_FULLY_OPAQUE - SA) + OWF_BLEND_ROUNDING_VALUE) / OWF_ALPHA_MAX_VALUE; |
1598 DG = SG + (DG * (OWF_FULLY_OPAQUE - SA) + OWF_BLEND_ROUNDING_VALUE) / OWF_ALPHA_MAX_VALUE; |
1587 DB = SB + (DB * (OWF_FULLY_OPAQUE - SA) + OWF_BLEND_ROUNDING_VALUE) / OWF_ALPHA_MAX_VALUE; |
1599 DB = SB + (DB * (OWF_FULLY_OPAQUE - SA) + OWF_BLEND_ROUNDING_VALUE) / OWF_ALPHA_MAX_VALUE; |
1588 DA = SA + (DA * (OWF_FULLY_OPAQUE - SA) + OWF_BLEND_ROUNDING_VALUE) / OWF_ALPHA_MAX_VALUE; |
1600 DA = SA + (DA * (OWF_FULLY_OPAQUE - SA) + OWF_BLEND_ROUNDING_VALUE) / OWF_ALPHA_MAX_VALUE; |
1589 BLENDER_INNER_LOOP_END; |
1601 BLENDER_INNER_LOOP_END_NO_MASK; |
1590 break; |
1602 break; |
1591 } |
1603 } |
1592 |
1604 |
1593 case OWF_TRANSPARENCY_MASK: |
1605 case OWF_TRANSPARENCY_MASK: |
1594 { |
1606 { |
1625 OWF_ALPHA_MAX_VALUE; |
1637 OWF_ALPHA_MAX_VALUE; |
1626 DB = (SB * GA + DB * (OWF_FULLY_OPAQUE - SAEA) + OWF_BLEND_ROUNDING_VALUE) / |
1638 DB = (SB * GA + DB * (OWF_FULLY_OPAQUE - SAEA) + OWF_BLEND_ROUNDING_VALUE) / |
1627 OWF_ALPHA_MAX_VALUE; |
1639 OWF_ALPHA_MAX_VALUE; |
1628 DA = SAEA + (DA * (OWF_FULLY_OPAQUE - SAEA) + OWF_BLEND_ROUNDING_VALUE) / |
1640 DA = SAEA + (DA * (OWF_FULLY_OPAQUE - SAEA) + OWF_BLEND_ROUNDING_VALUE) / |
1629 OWF_ALPHA_MAX_VALUE; |
1641 OWF_ALPHA_MAX_VALUE; |
1630 BLENDER_INNER_LOOP_END; |
1642 BLENDER_INNER_LOOP_END_NO_MASK; |
1631 break; |
1643 break; |
1632 } |
1644 } |
1633 |
1645 |
1634 case OWF_TRANSPARENCY_GLOBAL_ALPHA | OWF_TRANSPARENCY_MASK: |
1646 case OWF_TRANSPARENCY_GLOBAL_ALPHA | OWF_TRANSPARENCY_MASK: |
1635 { |
1647 { |
1807 padding = 4; |
1819 padding = 4; |
1808 break; |
1820 break; |
1809 } |
1821 } |
1810 default: |
1822 default: |
1811 { |
1823 { |
|
1824 OWF_ASSERT(0); |
1812 break; |
1825 break; |
1813 } |
1826 } |
1814 } |
1827 } |
1815 |
1828 |
1816 OWF_ASSERT(padding); |
|
1817 |
1829 |
1818 return padding; |
1830 return padding; |
1819 } |
1831 } |
1820 |
1832 |
1821 /*----------------------------------------------------------------------------*/ |
1833 /*----------------------------------------------------------------------------*/ |