summaryrefslogtreecommitdiffstats
path: root/src/gui/painting/qpaintengine_raster.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* | Merge remote branch 'origin/4.7' into qt-master-from-4.7Olivier Goffart2010-11-121-2/+4
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: configure doc/src/snippets/code/doc_src_qmake-manual.qdoc mkspecs/features/symbian/application_icon.prf mkspecs/features/symbian/default_post.prf mkspecs/features/symbian/symbian_building.prf qmake/generators/symbian/initprojectdeploy_symbian.cpp src/multimedia/audio/audio.pri src/network/access/qnetworkaccessmanager.cpp src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp src/opengl/qgl_p.h src/plugins/bearer/corewlan/qcorewlanengine.mm src/plugins/phonon/mmf/mmf.pro tests/auto/qscriptvalue/tst_qscriptvalue.cpp tests/auto/qscriptvalue/tst_qscriptvalue.h tools/qdoc3/doc/qdoc-manual.qdocconf
| * Fixed text rendering bug in raster engine when opacity != 1.0.Samuel Rødal2010-11-081-1/+3
| | | | | | | | | | | | | | | | | | If opacity is updated independently from the pen properties sometimes the raster engine's fast_text flag would not be updated correctly, causing it to use a rendering path which doesn't support alpha. Reviewed-by: Robin Burchell Reviewed-by: Andreas Kling
| * Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2 into ↵Qt Continuous Integration System2010-10-301-1/+1
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4.7-integration * '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2: 32bit => 16bit conversion has 4byte-aligned output. Fix gcc bug in qReallocAligned Prevented threading related crash in OpenGL module. Fix possible crash in QStaticText and QDeclarativeTextLayout Fix QTBUG-14132 oracle (xe) stored procedures with bind variables get errors
| | * Fix possible crash in QStaticText and QDeclarativeTextLayoutEskil Abrahamsen Blomfeldt2010-10-291-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The QStaticTextItem held an uncounted reference to QFontEngine. The pointer would dangle in some cases where there was no font object referencing the engine and the cache was cleaned out (e.g. when a new application font is added.) Properly count the reference, and also add reference counting to userData to make it harder to shoot yourself in the foot, since the QStaticTextItem class is now being used in different places, Task-number: QTBUG-14446 Reviewed-by: Martin Jones
* | | Optimize and clean up QClipData::fixup()Andreas Kling2010-11-041-18/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | WebKit was hitting this function pretty hard in SVG space invaders demo: http://croczilla.com/bits_and_pieces/svg/samples/invaders/invaders.svg This patch cuts time spent in QClipData::fixup() from 6% to 2%. Reviewed-by: Samuel Rødal
* | | Make use of the fast image paths for CompositionMode_Source as well.Samuel Rødal2010-11-011-5/+12
| | | | | | | | | | | | | | | | | | | | | | | | Blending / blitting of images without an alpha-channel gives the same result with CompositionMode_Source and CompositionMode_SourceOver. Task-number: QTBUG-14901 Reviewed-by: Kim
* | | Merge branch 4.7 into qt-master-from-4.7Qt Continuous Integration System2010-10-311-0/+3
|\ \ \ | |/ /
| * | Merge remote branch 'origin/4.6' into qt-4.7-from-4.6Olivier Goffart2010-10-301-0/+3
| |\ \ | | |/ | |/| | | | | | | Conflicts: tests/auto/qpainter/tst_qpainter.cpp
| | * Fix Windows compilation.Samuel Rødal2010-10-271-0/+1
| | | | | | | | | | | | | | | | | | | | | Don't take for granted that these are included... Task-number: QTBUG-14614 Reviewed-by: Bradley T. Hughes
| | * Fixed race condition in raster paint engine.Samuel Rødal2010-10-271-0/+2
| | | | | | | | | | | | | | | | | | | | | We need to protect the gradient cache accesses with a mutex. Task-number: QTBUG-14614 Reviewed-by: Bradley T. Hughes
* | | Merge remote branch 'qt/master' into lighthouse-masterPaul Olav Tvete2010-10-261-1/+1
|\ \ \ | | | | | | | | | | | | | | | | Conflicts: src/opengl/qwindowsurface_gl.cpp
| * \ \ Merge branch 4.7 into qt-master-from-4.7Qt Continuous Integration System2010-10-251-1/+1
| |\ \ \ | | |/ /
| | * | Fixed many spelling errors.Rohan McGovern2010-10-251-1/+1
| | | |
* | | | Merge remote branch 'qt/master' into lighthouse-masterPaul Olav Tvete2010-10-221-6/+4
|\ \ \ \ | |/ / / | | | | | | | | | | | | | | | | | | | | Conflicts: src/gui/kernel/qapplication_win.cpp src/gui/kernel/qwidget.cpp src/gui/text/qfontengine_ft.cpp
| * | | Merge remote branch 'origin/4.7' into qt-master-from-4.7Olivier Goffart2010-10-151-4/+2
| |\ \ \ | | |/ / | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/gui/painting/qpaintengine_raster.cpp tests/auto/declarative/qdeclarativetext/data/alignments_cb.png tests/auto/declarative/qdeclarativetext/data/alignments_cc.png tests/auto/declarative/qdeclarativetext/data/alignments_ct.png
| | * | Remove unnecessary calls to GetHorizBounds() + boundingBox()Alessandro Portale2010-10-121-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QFontEngineS60::boundingBox_const(): The metrics that CFont::getCharacterData() returns is equivalent to what TOpenFontCharMetrics::GetHorizBounds() returns. So, remove the use of TRect glyphBounds, and TOpenFontCharMetrics::GetHorizBounds(). Implementation of TOpenFontCharMetrics::GetHorizBounds(): http://developer.symbian.org/oss/API_REF/Public_API/file/837f303aceeb/epoc32/include/openfont.h#l1352 QRasterPaintEngine::drawGlyphsS60(): The metrics that QFontEngineS60::getCharacterData() returns are equivalent to what QFontEngineS60::boundingBox() returns. So, remove the use of glyph_metrics_t metrics, and QFontEngineS60::boundingBox(). These changes increase the Fps in qt\tests\manual\textrendering\textperformance "Latin" from 16.2 to 16.5 Fps on an XM5800. And they do that by removing code :) Task-number: QTBUG-14378 Reviewed-by: Jason Barron
| * | | QGradientCache: Optimize choosing of which gradient to evict from cacheAndreas Kling2010-10-081-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Use iterator arithmetic instead of QMultiHash::keys() to remove a random gradient color table from the cache. Reviewed-by: Samuel Rødal
* | | | Merge remote branch 'qt/master' into lighthouse-masterPaul Olav Tvete2010-10-051-0/+9
|\ \ \ \ | |/ / / | | | | | | | | | | | | Conflicts: src/gui/painting/qpdf.cpp
| * | | Merge remote branch 'origin/4.7' into master-from-4.7Rohan McGovern2010-10-051-2/+2
| |\ \ \ | | |/ /
| | * | Fixed antialiased rendering error in raster engine due to wrong merge.Samuel Rødal2010-10-011-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We should only add to rendered_spans once, before freeing the rasterizer memory pool. This fixes the tst_qpathclipper:clip2() auto-test failure on 32-bit linux. Reviewed-by: Kim
| | * | Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2 into ↵Qt Continuous Integration System2010-09-301-0/+2
| | |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4.7-integration * '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2: (24 commits) Stabilize tst_QGraphicsWidget::QT_BUG_13865_doublePaintWhenAddingASubItem Fixed accessing freed memory in raster engine. Build fix for -qtnamespace. Fixed parsing of SVGs with absolute font sizes. Moving QPdf::stripSpecialCharacter to fontengine Revert "Fix (implement!) hfw/wfh in QGridLayoutEngine" Fixed a layout issue where you could get NaN as dimensions QTextCodec: Fix valgrind warning when using QTextCodec in destructions functions Fix double painting when adding an item into a linear layout Fixed antialiased rasterization bug in raster engine. Fixed potential crash when loading corrupt GIFs. Work around an ATI driver problem with mutli-sampled pbuffers. tst_qstatemachine.cpp: fix compilation with Sun Studio Fixed regression in clipping.qps autotest on 64-bit. Fixed crash when using Qt::WA_DeleteOnClose on a QPrintDialog on Mac. Fixed performance regression in curve stroking. Don't disable texture_from_pixmap on GLX/X11 by default. Avoid creating copy of an image in memory when storing as png Doc update for the support of MSVC 2010 64-bit fix documentation of drawText(int, int, int, int, ... ...
| | | * | Fixed accessing freed memory in raster engine.Kim Motoyoshi Kalland2010-09-301-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The bug was discovered when running the svgviewer example on 64-bit Windows. Reviewed-by: Samuel
| | | * | Fixed antialiased rasterization bug in raster engine.Samuel Rødal2010-09-291-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When rasterization in the gray raster fails due to out of memory there might already have been a number of spans flushed. To avoid flushing these spans multiple times and thus getting overdraw artifacts we need to keep track of how many spans to skip when we redo the rasterization. This fixes the rendering error in arthur test paths_aa.qps Reviewed-by: Yoann Lopes
| * | | | Merge remote branch 'origin/4.7' into master-from-4.7Rohan McGovern2010-10-041-0/+9
| |\ \ \ \ | | |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: doc/src/snippets/code/doc_src_qmake-manual.qdoc src/corelib/arch/symbian/arch.pri src/declarative/graphicsitems/qdeclarativeflickable.cpp src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp src/opengl/gl2paintengineex/qtextureglyphcache_gl_p.h tests/auto/qfontmetrics/tst_qfontmetrics.cpp
| | * | | Fixed antialiased rasterization bug in raster engine.Samuel Rødal2010-09-281-0/+9
| | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When rasterization in the gray raster fails due to out of memory there might already have been a number of spans flushed. To avoid flushing these spans multiple times and thus getting overdraw artifacts we need to keep track of how many spans to skip when we redo the rasterization. This fixes the rendering error in arthur test paths_aa.qps Reviewed-by: Yoann Lopes
* | | | Merge branch 'master' of scm.dev.nokia.troll.no:qt/qtGunnar Sletta2010-09-271-1/+9
|\ \ \ \ | |/ / / | | | | | | | | | | | | | | | | Conflicts: configure src/corelib/global/qglobal.h
| * | | Support sub pixel positioning of glyphs in raster engineEskil Abrahamsen Blomfeldt2010-09-091-1/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For the raster engine to provide the same quality of text rendering as the native engine on Mac Cocoa, we need to support rendering to different sub pixel positions for each glyph. The number of subpixel positions is arbitrary and has to be detected, but it's usually three or four. Each position will give slightly different coverages inside the pixel and thus different rasterizations. Other font engines which support sub pixel positioning of glyphs can provide the same functionality by implementing supportsSubPixelPositions() to return true, and then adding the subPixelPosition argument to the x coordinate used in alphaRGBMapForGlyph(). Task-number: QTBUG-5053 Reviewed-by: Jiang Jiang
* | | | Merge remote branch 'lighthouse/4.7' into lighthouse-masterPaul Olav Tvete2010-09-131-2/+29
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/gui/text/text.pri src/plugins/generic/linuxinput/qlinuxinput.cpp
| * | | | Initial pluggable fontdatabaseJørgen Lind2010-09-021-2/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QPlatformFontDatabase added. QPlatformIntegration now has a new virtual function: QPlatformDatabase::fontDatabase() const. Most unix platform plugins wants to follow the pattern implemented in directfb, linuxfb, vnc etc. In the pro file do: include(../fontdatabases/genericunix/genericunix.pri) In the QPlatformIntegration class do: and instansiate a QGenericFontDatabase in the constructor and return it in the getter function.
* | | | | Merge remote branch 'qt/master' into lighthouse-masterPaul Olav Tvete2010-08-191-43/+22
|\ \ \ \ \ | | |/ / / | |/| | |
| * | | | fix breakages in qpainter autotests.Gunnar Sletta2010-08-171-5/+0
| | | | |
| * | | | Fix how subpixel positions are intepreted in an aliased grid.Gunnar Sletta2010-08-161-43/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With this change we break with the traditional X11 and GDI way of rasterzing aliased polygons, but we become consistent across integer and sub-pixel positions. The new model uses the same rules as the antialised rasterizer which means that a primitive edge on 0.4 becomes 0.0, 0.5 becomes 1 and 0.9 becomes one, which is also in line with how one normally thinks of rounding rules.
* | | | | Merge remote branch 'remotes/lighthouse/4.7' into lighthouse-masterPaul Olav Tvete2010-07-191-3/+5
|\ \ \ \ \ | |/ / / / |/| / / / | |/ / / | | | | Conflicts: src/opengl/qgl_p.h
| * | | Merge remote branch 'qt/4.7' into lighthouse-4.7Paul Olav Tvete2010-07-141-26/+12
| |\ \ \ | | |/ / | | | | | | | | | | | | | | | | | | | | Conflicts: src/gui/image/image.pri src/gui/image/qpixmapdatafactory.cpp src/gui/painting/qgraphicssystem.cpp
| * | | Say hello to Q_WS_QPA!Jørgen Lind2010-06-241-3/+3
| | | | | | | | | | | | | | | | Rename Q_WS_LITE -> Q_WS_QPA
| * | | Merge remote branch 'qt/4.7' into lighthousePaul Olav Tvete2010-06-181-38/+161
| |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: configure mkspecs/common/qws.conf src/corelib/io/qresource.cpp src/gui/image/qpixmapdata_p.h src/gui/kernel/qapplication.cpp src/gui/kernel/qapplication_p.h src/gui/painting/qpaintengine_raster.cpp src/gui/text/qfontdatabase.cpp src/opengl/qgl_p.h src/plugins/mediaservices/gstreamer/gstreamer.pro
| * \ \ \ Merge remote branch 'qt/4.7' into lighthouse-4.7Paul Olav Tvete2010-05-101-1/+1
| |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/gui/egl/egl.pri src/gui/painting/qwindowsurface_p.h
| * | | | | Enable some faster text drawing for lighthouse when using rasterJørgen Lind2010-04-221-2/+4
| | | | | |
| * | | | | Merge remote branch 'origin/4.7' into lighthouseJørgen Lind2010-04-211-2/+2
| |\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: configure src/gui/kernel/qapplication.cpp src/gui/painting/qbackingstore.cpp src/opengl/qgl.cpp src/opengl/qgl_p.h src/plugins/plugins.pro tests/auto/declarative/qdeclarativedom/data/importlib/sublib/qmldir tools/tools.pro
| * \ \ \ \ \ Merge remote branch 'origin/4.7' into 4.7-lighthouseJørgen Lind2010-03-111-6/+7
| |\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/gui/kernel/qapplication.cpp src/gui/kernel/qapplication_p.h src/gui/kernel/qwidget.cpp
| * \ \ \ \ \ \ Merge remote branch 'qt/4.7' into lighthouse-4.7Paul Olav Tvete2010-03-011-31/+31
| |\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: configure src/gui/egl/qegl.cpp src/gui/kernel/qdnd_p.h
| * \ \ \ \ \ \ \ Merge remote branch 'remotes/qt/4.6' into lighthousePaul Olav Tvete2010-02-101-1/+8
| |\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: configure tests/auto/qwidget/tst_qwidget.cpp
| * \ \ \ \ \ \ \ \ Merge remote branch 'origin/4.6' into lighthousePaul Olav Tvete2010-01-141-5/+8
| |\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: configure src/corelib/global/qglobal.cpp src/gui/dialogs/dialogs.pri
| * | | | | | | | | | Made the blitter api work in lighthouseJørgen Lind2009-11-251-2/+2
| | | | | | | | | | |
* | | | | | | | | | | Merge remote branch 'origin/4.7' into qt-master-from-4.7Thiago Macieira2010-07-151-26/+12
|\ \ \ \ \ \ \ \ \ \ \ | | |_|_|_|_|_|_|_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/gui/kernel/qapplication.h
| * | | | | | | | | | Improved performance of 16 bit memrotates using NEON instructions.Samuel Rødal2010-07-011-22/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make the memrotate functions a function pointer table so that we can replace it with optimized versions, and implement an optimized NEON version for the 90 and 270 rotations. Measured performance improvement for a 400x400 16-bit pixmap was 17 % for 270 degree rotation and 11 % for 90 degree rotation. Reviewed-by: Trond
| * | | | | | | | | | Optimized sub-rect copying / painting of QPixmaps.Samuel Rødal2010-06-231-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Prevented downloading of the whole XImage by introducing new QPixmapData::toImage() overload taking a sub-rect. Also avoid an additional copy by simply taking ownership of the XImage data when the XImage format matches the QImage format. Reviewed-by: Trond
| * | | | | | | | | | Fixed crash in the fast blend functions for rasterGunnar Sletta2010-06-231-1/+5
| | |_|_|_|_|_|_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The blend functions don't work when the scaling factor goes beyond 65536, so abort early. Strictly speaking the scale factor comes from targetWidth / sourceWidth, so this catches a bit more cases. Reviewed-by: Kim Task: http://bugreports.qt.nokia.com/browse/QTBUG-9437
* | | | | | | | | | Merge remote branch 'origin/4.7' into qt-master-from-4.7Thiago Macieira2010-07-011-10/+119
|\ \ \ \ \ \ \ \ \ \ | |/ / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: bin/syncqt src/gui/text/qtextlayout.cpp tools/assistant/tools/assistant/helpviewer_qwv.cpp tools/assistant/tools/assistant/helpviewer_qwv.h tools/configure/configureapp.cpp
| * | | | | | | | | Fixed infinite recursion when drawing very large painter paths.Kim Motoyoshi Kalland2010-06-161-6/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-11291 Reviewed-by: Gunnar