summaryrefslogtreecommitdiffstats
path: root/src/gui/painting
Commit message (Collapse)AuthorAgeFilesLines
...
| | * | | | | | CompileOlivier Goffart2011-05-121-1/+0
| | | | | | | |
| | * | | | | | Merge remote-tracking branch 'origin/4.7' into qt-4.8-from-4.7Olivier Goffart2011-05-116-5/+247
| | |\ \ \ \ \ \ | | | |_|/ / / / | | |/| | | / / | | | | |_|/ / | | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/gui/kernel/qwidget_p.h src/gui/painting/qgraphicssystem_p.h src/plugins/plugins.pro src/s60installs/bwins/QtCoreu.def src/s60installs/bwins/QtDeclarativeu.def src/s60installs/bwins/QtGuiu.def src/s60installs/bwins/QtMultimediau.def src/s60installs/bwins/QtNetworku.def src/s60installs/bwins/QtOpenGLu.def src/s60installs/bwins/QtScriptu.def src/s60installs/bwins/QtSqlu.def src/s60installs/bwins/QtTestu.def src/s60installs/bwins/QtXmlPatternsu.def src/s60installs/bwins/phononu.def src/s60installs/eabi/QtGuiu.def src/s60installs/eabi/QtOpenGLu.def src/s60installs/eabi/QtTestu.def
| | | * | | | Introduce platform extension to QGraphicsSystemJani Hautakangas2011-05-106-5/+247
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Qt on Symbian needs some special capabilities to be able to work on 32MB GPU. This patch introduces some Symbian specific functions to QGraphicsSystem Task-number: QTBUG-17882 Reviewed-by: Laszlo Agocs
| | | * | | | QPainterPath: Ignore calls with NaN/Infinite parametersAdemar de Souza Reis Jr2011-05-031-19/+47
| | | | |_|/ | | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QPainterPath can't handle NaNs/Inf inside coordinates, but instead of safely ignoring or aborting an operation, it shows a warning and keeps going on, with undefined behavior. Sometimes leading to infinite loops, leaks or crashes (see qtwebkit example below). This is particularly bad when QPainterPath is used to render content from untrusted sources (web or user data). As an example, there's a qtwebkit bug where the browser crashes when a particular SVG is loaded: https://bugs.webkit.org/show_bug.cgi?id=51698. Please note that "untrusted sources" doesn't apply only to network sources. This behavior can probably be exploited on applications such as file-browsers with previews enabled. Task-number: QTBUG-16664 Signed-off-by: Ademar de Souza Reis Jr <ademar.reis@openbossa.org> Merge-request: 1026 Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com> Reviewed-by: Samuel
| * | | | | Merge branch 'master' of scm.dev.nokia.troll.no:qt/qt-fire-staging into ↵Qt Continuous Integration System2011-05-176-18/+57
| |\ \ \ \ \ | | |_|_|/ / | |/| | | / | | | |_|/ | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | master-integration * 'master' of scm.dev.nokia.troll.no:qt/qt-fire-staging: (23 commits) Fix QGLWidget::renderPixmap for raster engine on Mac Check if OES_texture_npot is present on OpenGL ES 2. Fix tst_QVariant::invalidColor Move QTextCursor::MoveStyle to Qt namespace Move the painting redirection to the unified toolbar surface. Fix misspelled word in comment. Build fix for tst_qrawfont Add some QRawFont related low level functions to avoid extra copying Compile on Mac Rename QGlyphs -> QGlyphRun Fix QRawFont::setPixelSize() on Mac Remove warning from QColor::setNamedColor(). Add internal documentation for QUnifiedToolbarSurface. Fix QPainter::drawGlyphs() with non-affine transformation Remove misspelled comment in tst_qtextdocument.cpp Only enable design metrics for scalable fonts Add a way to retrieve CTFontRef from QFont Include pixel size of font in exported HTML from QTextDocument Fix the autotest condition. Change the repaint() call to an update(). ...
| | * | | Fix misspelled word in comment.Fabien Freling2011-05-111-1/+1
| | | | | | | | | | | | | | | | | | | | Reviewed-by: trustme
| | * | | Rename QGlyphs -> QGlyphRunEskil Abrahamsen Blomfeldt2011-05-103-14/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | API clean-up for QGlyphRun: 1. QGlyphs -> QGlyphRun 2. QGlyphRun's font()/setFont() -> rawFont()/setRawFont() 3. QPainter::drawGlyphs() -> drawGlyphRun() 4. QTextLayout and QTextFragment's glyphs() -> glyphRuns() Reviewed-by: Jiang Jiang
| | * | | Remove warning from QColor::setNamedColor().Samuel Rødal2011-05-061-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This warning is pointless as the user can anyway check if the color is valid after making the call by calling isValid(). Using isValidColor() could be used but it has a big performance overhead as validation then needs to be done twice. Task-number: QTBUG-19098 Reviewed-by: Erik Verbruggen
| | * | | Add internal documentation for QUnifiedToolbarSurface.Fabien Freling2011-05-061-0/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This document is aimed for developers. This is why it is directly written in the header file. This is not part of the public API. Reviewed-by: Richard Moe Gustavsen
| | * | | Fix QPainter::drawGlyphs() with non-affine transformationEskil Abrahamsen Blomfeldt2011-05-061-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the matrix has an non-affine transformation, the text will have to be rendered using the default path-renderer. This means going through the drawTextItem() path (since drawStaticText() has no support for those transformations) and it also means not pre-transforming the coordinates, since the default implementation of drawTextItem() supports transformations. Task-number: QTBUG-18214 Reviewed-by: Jiang Jiang
| | * | | Merge remote branch 'qt-mainline/4.8'aavit2011-05-066-18/+3
| | |\ \ \ | | | |/ /
| | * | | Merge branch 'master' into merge_rasterFabien Freling2011-05-041-1/+1
| | |\ \ \
| | | * | | Set the default graphics system to raster.Fabien Freling2011-04-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change is specific to Mac OS X/Cocoa. Reviewed-by: Lars Knoll
| | | * | | Merge remote branch 'fire/master'Fabien Freling2011-04-1814-251/+777
| | | |\ \ \
| * | | | | | Symbian build failure for Armv5Sami Merila2011-05-121-1/+1
| | |_|_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1. Changed externs to Q_GUI_EXPORTs 2. ABSENTed missing exports from openGL's DEF-file Reviewed-by: Tomi Vihria
| * | | | | Merge branch 'master' of scm.dev.nokia.troll.no:qt/qt-fire-staging into ↵Qt Continuous Integration System2011-05-052-9/+6
| |\ \ \ \ \ | | |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | master-integration * 'master' of scm.dev.nokia.troll.no:qt/qt-fire-staging: Compile on Windows Support gamma correction of text on GL Remove QFontEngineFT::loadGlyphMetrics Make autotest more resilient against network timeout Do not filter adhoc clients Lancelot: Add configurable client filtering to baseline server Improve error reporting on failure to connect to baseline server Fixed bug in X11 backend when creating translucent windows. Only cleanup share widget if it has been created. Add required font metrics functions to QRawFont Fixed bug in QPdfEngine::addImage causing mono images to be made 32 bit Make pixel size a qreal in QRawFont Make sure removed QTextBlock is invalid Make sure QFont's resolve mask is copied on compilers with C++0x support Fix glyph position issue with fallback fonts
| | * | | | Support gamma correction of text on GLEskil Abrahamsen Blomfeldt2011-05-031-8/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the SRGB framebuffer extension in GL is available, we can support gamma correction of text with a gamma of 2.1. On Mac this is sufficient for gamma correcting subpixel antialiased text. Gray antialiasing should not be gamma corrected on Mac. On Windows, the user can potentially set the gamma value to anything between 1.0 and 2.2 (or something like that). We support anything that resembles 1.0 closely enough by pushing the text out without any correction (like before). We also support anything that resembles 2.1 (the gamma hardcoded in GL's SRGB extension) by turning on the extension before blending the text. In between the two, we'll use gray antialiasing to avoid differing too much from the raster engine (which is our reference in this.) For gray antialiasing on Windows, we use a constant gamma of 2.3 which has been determined by experimentation. Since this is close enough to 2.1 we do gamma correction with SRGB extension. The distance limit of 0.2 is determined by some experimentation. Reviewed-by: Samuel
| | * | | | Fixed bug in QPdfEngine::addImage causing mono images to be made 32 bitMatthew Cattell2011-05-021-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Regression from 4.5 causing performance and size degradation. Task-number: QTBUG-18997 Reviewed-by: Samuel
* | | | | | Doc: Fixed qdoc warnings.David Boddie2011-05-112-10/+9
|/ / / / /
* | | | | Merge earth-team into origin/4.8Olivier Goffart2011-05-0313-222/+744
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: configure
| * \ \ \ \ Merge remote-tracking branch 'origin/4.7' into qt-4.8-from-4.7Olivier Goffart2011-05-021-1/+1
| |\ \ \ \ \ | | |/ / / / | |/| | | / | | | |_|/ | | |/| | | | | | | | | | | | Conflicts: src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp src/s60installs/bwins/QtGuiu.def src/s60installs/eabi/QtGuiu.def
| | * | | Fix crash in raster on X11 when text contains unsupported charactersEskil Abrahamsen Blomfeldt2011-04-281-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We would assume the font engine was a FT engine and do a static cast here, which would cause a crash if the box engine was in use instead. Task-number: QTBUG-17443 Reviewed-by: Samuel
| * | | | Merge branch 'master' of scm.dev.nokia.troll.no:qt/qt-fire-staging into ↵Qt Continuous Integration System2011-04-291-4/+2
| |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | master-integration * 'master' of scm.dev.nokia.troll.no:qt/qt-fire-staging: Fixed off-by-one in radial gradient color table index computation. Support more items for QTextCharFormat::VerticalAlignment enum for custom text objects.
| | * \ \ \ Merge remote branch 'qt-fire-review/master'aavit2011-04-281-4/+2
| | |\ \ \ \
| | | * | | | Fixed off-by-one in radial gradient color table index computation.Samuel Rødal2011-04-281-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Clamp to GRADIENT_COLOR_TABLE-1, not GRADIENT_COLOR_TABLE-2. Fixes visible error in gradients.qps Reviewed-by: Kim Motoyoshi Kalland <kim.kalland@nokia.com>
| * | | | | | Merge branch 'master' of scm.dev.nokia.troll.no:qt/qt-fire-staging into ↵Qt Continuous Integration System2011-04-2812-210/+734
| |\ \ \ \ \ \ | | |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | master-integration * 'master' of scm.dev.nokia.troll.no:qt/qt-fire-staging: (31 commits) Make QtQuick2 compile on QPA Use maximum ascent/descent/leading from fallback fonts in shaping Another ugly hack to make bidi cursor work with Core Text Make sure layoutData exist before checking for string direction Removed warning from QPixmap::handle(). Take leading space width into account for painting and selection doc: Simplify language in QGlyphs docs doc: Minor cleanup in QGlyphs docs Remove extra comma at the end of enum list Fix compilation with Qt3Support Don't transform glyph positions for Core Graphics paint engine Skip linearGradientSymmetry test on QWS. Turn on HarfBuzz support for Mac/Cocoa Support visual cursor movement for BIDI text Disable tst_QPixmap::onlyNullPixmapsOutsideGuiThread on Mac Revert "Switch the default graphics system to raster on Mac." Fix an race condition in the auto test. Made linearGradientSymmetry test pass on qreal=float platforms. Make sure #ifdef'd tests still have main() function Long live QRawFont! ...
| | * | | | | Merge remote branch 'qt-mainline/master'aavit2011-04-262-3/+3
| | |\ \ \ \ \ | | | |/ / / / | | |/| | | | | | | | | | | | | | | | | | Conflicts: configure
| | * | | | | Don't transform glyph positions for Core Graphics paint engineJiang Jiang2011-04-191-2/+3
| | | |_|_|/ | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since it already transformed text positions based on transform matrix on QPainter. Reviewed-by: Eskil
| | * | | | Revert "Switch the default graphics system to raster on Mac."Fabien Freling2011-04-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit a5d40fd3814ab7c8e865912c03a918bfd5994998. We have to fix the regressions due to the raster engine before putting it by default.
| | * | | | Long live QRawFont!Eskil Abrahamsen Blomfeldt2011-04-154-43/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The QGlyphs API was initially attempted with a bastardization of QFont which was meant to encapsulate a single, physical font instance (a QFontEngine) where a set of glyph indexes would make sense. This is not how QFont was intended to be used, and it caused several issues. At the same time, the requirement for loading a font from ttf/otf data and be able to access it and use it without polluting the rest of the process with the font arose. To support these two APIs we introduce QRawFont, which is an abstraction on top of a single physical font. Done-with: Jiang Jiang
| | * | | | Another attempt at fixing the MSVC2005 build.Samuel Rødal2011-04-151-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Apparently direct casting is illegal there too, even though they don't have the cast operators. Reviewed-by: Kim
| | * | | | Compile fix in qdrawhelper_sse2.cpp for MSVC 2005.Samuel Rødal2011-04-141-0/+5
| | | | | |
| | * | | | Compile fix in qdrawhelper_sse2.cpp.Samuel Rødal2011-04-141-1/+1
| | | | | |
| | * | | | Added support for six-parameter radial gradients.Samuel Rødal2011-04-1311-73/+343
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The extended radial gradients conform to the radial gradient specification in HTML 5 canvas. Task-number: QTBUG-14075 Reviewed-by: Andreas Kling
| | * | | | Improved gradient table generation performance for two-stop gradients.Samuel Rødal2011-04-135-72/+222
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Two stops is a fairly common case so we gain quite a bit by special casing it. Improves performance by 10 % in parcycle benchmark, and by 90 % in a synthetic benchmark. Reviewed-by: Andreas Kling
| | * | | | Optimized radial gradient fetch using SSE 2.Samuel Rødal2011-04-133-0/+98
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On an i7 this improves performance by 22 % in parcycle, 107 % in default svgviewer example, and 283 % in a synthetic radial gradient benchmark. Reviewed-by: Andreas Kling
| | * | | | Improved qt_gradient_clamp for reflect spreads.Samuel Rødal2011-04-131-5/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Using GRADIENT_STOPTABLE_SIZE * 2 as the modulo gives more correct behaviour, and also improves performance slightly. Reviewed-by: Benjamin Poulain
| | * | | | Prepared for SIMD implementation of radial gradients.Samuel Rødal2011-04-132-177/+174
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Made the radial gradient fetch func into a template to be able to optimize the inner loop using SIMD instructions. Reviewed-by: Benjamin Poulain
| | * | | | Fix a race condition when the main window is being destructed.Fabien Freling2011-04-121-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | During the destructor of QWidget, we delete the layout. If the layout is not set to 0 afterwards, a check on the layout might turn true, but any access will end with a segfault. Reviewed-by: João Abecasis
| | * | | | Switch the default graphics system to raster on Mac.Fabien Freling2011-04-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Reviewed-by: Lars Knoll
| * | | | | Merge remote-tracking branch 'origin/4.7' into qt-4.8-from-4.7Olivier Goffart2011-04-271-11/+11
| |\ \ \ \ \ | | |_|/ / / | |/| | / / | | | |/ / | | |/| | | | | | | Conflicts: src/opengl/qwindowsurface_gl.cpp src/s60installs/eabi/QtGuiu.def
| | * | | Let QTextLine decide its own x position in QPainterJiang Jiang2011-04-191-4/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | So that it can take trailing space width into account when doing right aligned text drawing. Backported from master. Task-number: QTBUG-18303 Reviewed-by: Eskil
| | * | | Support text decoration in QML when using static text back-endEskil Abrahamsen Blomfeldt2011-04-181-11/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the QStaticTextItem code path in QML was copy-pasted, QStaticText did not support text decoration yet. It has since been implemented. We copy-paste the fix as well (which means we have to export a private function from QtGui to avoid duplicating that code as well.) Task-number: QTBUG-18428 Reviewed-by: Jiang Jiang
* | | | | Fixes warnings about unused variablesOlivier Goffart2011-04-285-17/+2
|/ / / / | | | | | | | | | | | | Reviewed-by: Samuel
* | | | Merge branch 'master' of scm.dev.nokia.troll.no:qt/qt-fire-staging into ↵Qt Continuous Integration System2011-04-194-43/+46
|\ \ \ \ | |_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | master-integration * 'master' of scm.dev.nokia.troll.no:qt/qt-fire-staging: Make sure #ifdef'd tests still have main() function Long live QRawFont!
| * | | Long live QRawFont!Eskil Abrahamsen Blomfeldt2011-04-194-43/+46
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The QGlyphs API was initially attempted with a bastardization of QFont which was meant to encapsulate a single, physical font instance (a QFontEngine) where a set of glyph indexes would make sense. This is not how QFont was intended to be used, and it caused several issues. At the same time, the requirement for loading a font from ttf/otf data and be able to access it and use it without polluting the rest of the process with the font arose. To support these two APIs we introduce QRawFont, which is an abstraction on top of a single physical font. Done-with: Jiang Jiang
* | | Merge remote-tracking branch 'origin/master' into lighthouse-masterJørgen Lind2011-04-1434-445/+489
|\ \ \
| * \ \ Merge branch 'master' of scm.dev.nokia.troll.no:qt/oslo-staging-1 into ↵Qt Continuous Integration System2011-04-131-2/+2
| |\ \ \ | | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | master-integration * 'master' of scm.dev.nokia.troll.no:qt/oslo-staging-1: Remove a race condition in SIGCHLD handler. Fix warnings about && inside ||
| | * | Fix warnings about && inside ||Thiago Macieira2011-04-131-2/+2
| | | | | | | | | | | | | | | | Reviewed-By: Trust Me
| * | | Merge branch 'qt-master-from-4.7' of ↵Qt Continuous Integration System2011-04-091-3/+1
| |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | scm.dev.nokia.troll.no:qt/qt-integration into master-integration * 'qt-master-from-4.7' of scm.dev.nokia.troll.no:qt/qt-integration: [QTBUG-15278] QWidget::windowState gets out of sync (Aero Snap) HTTP cacheing: do not store the date header with the resource Let's not write to the source buffer when blending argb32 on rgb16. make -markuntranslated work without -idbased fix conditional on shell type