diff options
author | Benjamin Poulain <benjamin.poulain@nokia.com> | 2010-07-26 14:26:38 (GMT) |
---|---|---|
committer | Benjamin Poulain <benjamin.poulain@nokia.com> | 2010-07-27 09:05:33 (GMT) |
commit | c3b2f89b85696c01062ddcd9d21a05cebf51b078 (patch) | |
tree | c0daa38626ffaf9935aab54d4b6e5c18d35f5067 /src/gui/painting/qdrawhelper_mmx.cpp | |
parent | 47769726d3d8db03153acfcd9552fd9bc0535358 (diff) | |
download | Qt-c3b2f89b85696c01062ddcd9d21a05cebf51b078.zip Qt-c3b2f89b85696c01062ddcd9d21a05cebf51b078.tar.gz Qt-c3b2f89b85696c01062ddcd9d21a05cebf51b078.tar.bz2 |
Clean the CompositionFunction tables of drawhelper
Some instructions sets were defining partial table of composition
functions. To work around that, qInitDrawhelperAsm() was resetting
the composition function of QPainter::CompositionMode_Destination and
anything above QPainter::CompositionMode_Xor.
This was a problem because it makes it impossible to implement fast
path for those composition mode.
This patch export prototypes for the generic functions of each
composition mode. The specialized implementations now define a complete
table.
Reviewed-by: Andreas Kling
Diffstat (limited to 'src/gui/painting/qdrawhelper_mmx.cpp')
-rw-r--r-- | src/gui/painting/qdrawhelper_mmx.cpp | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/src/gui/painting/qdrawhelper_mmx.cpp b/src/gui/painting/qdrawhelper_mmx.cpp index d49c5a1..ba92554 100644 --- a/src/gui/painting/qdrawhelper_mmx.cpp +++ b/src/gui/painting/qdrawhelper_mmx.cpp @@ -77,7 +77,7 @@ CompositionFunction qt_functionForMode_MMX[numCompositionFunctions] = { comp_func_DestinationOver<QMMXIntrinsics>, comp_func_Clear<QMMXIntrinsics>, comp_func_Source<QMMXIntrinsics>, - 0, + comp_func_Destination, comp_func_SourceIn<QMMXIntrinsics>, comp_func_DestinationIn<QMMXIntrinsics>, comp_func_SourceOut<QMMXIntrinsics>, @@ -85,6 +85,27 @@ CompositionFunction qt_functionForMode_MMX[numCompositionFunctions] = { comp_func_SourceAtop<QMMXIntrinsics>, comp_func_DestinationAtop<QMMXIntrinsics>, comp_func_XOR<QMMXIntrinsics>, + comp_func_Plus, + comp_func_Multiply, + comp_func_Screen, + comp_func_Overlay, + comp_func_Darken, + comp_func_Lighten, + comp_func_ColorDodge, + comp_func_ColorBurn, + comp_func_HardLight, + comp_func_SoftLight, + comp_func_Difference, + comp_func_Exclusion, + rasterop_SourceOrDestination, + rasterop_SourceAndDestination, + rasterop_SourceXorDestination, + rasterop_NotSourceAndNotDestination, + rasterop_NotSourceOrNotDestination, + rasterop_NotSourceXorDestination, + rasterop_NotSource, + rasterop_NotSourceAndDestination, + rasterop_SourceAndNotDestination }; void qt_blend_color_argb_mmx(int count, const QSpan *spans, void *userData) |