diff -r 5d03bc08d59c -r 01a6848ebfd7 graphicscomposition/openwfcompositionengine/common/src/owfimage.c --- a/graphicscomposition/openwfcompositionengine/common/src/owfimage.c Tue Feb 02 01:47:50 2010 +0200 +++ b/graphicscomposition/openwfcompositionengine/common/src/owfimage.c Fri Apr 16 16:21:04 2010 +0300 @@ -1,4 +1,4 @@ -/* Copyright (c) 2009 The Khronos Group Inc. +/* Copyright (c) 2009-2010 The Khronos Group Inc. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and/or associated documentation files (the @@ -1414,6 +1414,18 @@ maskPtr += maskLineDelta; \ --rowCount; \ } + +#define BLENDER_INNER_LOOP_END_NO_MASK \ + DA = blend->destinationFullyOpaque ? OWF_FULLY_OPAQUE : DA; \ + } /* end tsColor check */ \ + srcPtr ++; \ + dstPtr ++; \ + --colCount; \ + } \ + srcPtr += srcLineDelta; \ + dstPtr += dstLineDelta; \ + --rowCount; \ + } #define TSC blend->tsColor->color #define SC srcPtr->color @@ -1552,7 +1564,7 @@ DG = SG; DB = SB; DA = OWF_FULLY_OPAQUE; - BLENDER_INNER_LOOP_END; + BLENDER_INNER_LOOP_END_NO_MASK; break; } @@ -1571,7 +1583,7 @@ OWF_ALPHA_MAX_VALUE; DA = GA + (DA * (OWF_FULLY_OPAQUE - GA) + OWF_BLEND_ROUNDING_VALUE) / OWF_ALPHA_MAX_VALUE; - BLENDER_INNER_LOOP_END; + BLENDER_INNER_LOOP_END_NO_MASK; break; } @@ -1586,7 +1598,7 @@ DG = SG + (DG * (OWF_FULLY_OPAQUE - SA) + OWF_BLEND_ROUNDING_VALUE) / OWF_ALPHA_MAX_VALUE; DB = SB + (DB * (OWF_FULLY_OPAQUE - SA) + OWF_BLEND_ROUNDING_VALUE) / OWF_ALPHA_MAX_VALUE; DA = SA + (DA * (OWF_FULLY_OPAQUE - SA) + OWF_BLEND_ROUNDING_VALUE) / OWF_ALPHA_MAX_VALUE; - BLENDER_INNER_LOOP_END; + BLENDER_INNER_LOOP_END_NO_MASK; break; } @@ -1627,7 +1639,7 @@ OWF_ALPHA_MAX_VALUE; DA = SAEA + (DA * (OWF_FULLY_OPAQUE - SAEA) + OWF_BLEND_ROUNDING_VALUE) / OWF_ALPHA_MAX_VALUE; - BLENDER_INNER_LOOP_END; + BLENDER_INNER_LOOP_END_NO_MASK; break; } @@ -1809,11 +1821,11 @@ } default: { + OWF_ASSERT(0); break; } } - OWF_ASSERT(padding); return padding; }