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_mmx3dnow.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_mmx3dnow.cpp')
-rw-r--r-- | src/gui/painting/qdrawhelper_mmx3dnow.cpp | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/src/gui/painting/qdrawhelper_mmx3dnow.cpp b/src/gui/painting/qdrawhelper_mmx3dnow.cpp index 8bffaa7..b1e81fc 100644 --- a/src/gui/painting/qdrawhelper_mmx3dnow.cpp +++ b/src/gui/painting/qdrawhelper_mmx3dnow.cpp @@ -85,14 +85,35 @@ CompositionFunction qt_functionForMode_MMX3DNOW[numCompositionFunctions] = { comp_func_DestinationOver<QMMX3DNOWIntrinsics>, comp_func_Clear<QMMX3DNOWIntrinsics>, comp_func_Source<QMMX3DNOWIntrinsics>, - 0, + comp_func_Destination, comp_func_SourceIn<QMMX3DNOWIntrinsics>, comp_func_DestinationIn<QMMX3DNOWIntrinsics>, comp_func_SourceOut<QMMX3DNOWIntrinsics>, comp_func_DestinationOut<QMMX3DNOWIntrinsics>, comp_func_SourceAtop<QMMX3DNOWIntrinsics>, comp_func_DestinationAtop<QMMX3DNOWIntrinsics>, - comp_func_XOR<QMMX3DNOWIntrinsics> + comp_func_XOR<QMMX3DNOWIntrinsics>, + 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_mmx3dnow(int count, const QSpan *spans, void *userData) |