summaryrefslogtreecommitdiffstats
path: root/src/gui/painting/qpainter.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Fix leftover doc bug from Qt 3 days.Gunnar Sletta2014-11-011-2/+1
| | | | | Change-Id: Ic5499ba2e3b27dcc5b36d273c01f92d57b26ce3a Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
* Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2014-10-201-2/+1
|\ | | | | | | Change-Id: If7e51514ed6832750e3ad967e4d322ccf920d2bb
| * Correct QPainter::clipPath() documentation.Mitch Curtis2014-10-201-2/+1
| | | | | | | | | | Change-Id: Ie8ea01eee23e28378eadca0e87dc89fd62aec14f Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* | Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2014-10-091-13/+2
|\| | | | | | | Change-Id: I05fcd8dc66d9ad0dc76bb7f5bae05c9876bfba14
| * Doc: Removed a few references to the outdated featuresVenu2014-10-021-8/+1
| | | | | | | | | | | | | | | | | | | | OpenVG support and the -graphicssystem command-line option is not available since Qt 5.0. Change-Id: I19c89cd3bb2c4a2215cdfae9fd783dece637b30f Task-number: QTBUG-41265 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com> Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
| * Fix regression in metric calculation of text with mnemonicsAllan Sandfeld Jensen2014-10-011-5/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Even when we do not intend to display the text, we still need to go through the processing of mnemonics to remove them from the text. Instead of capping the max underlines to 0, the TextDontPrint option now just saves adding the underline formats. Task-number: QTBUG-41593 Change-Id: I67790650dbed0092de2c63e5d5a9349dc02d5846 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Robert Loehning <robert.loehning@digia.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* | Merge remote-tracking branch 'origin/5.4' into devOswald Buddenhagen2014-09-291-31/+26
|\| | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/tools/qbytearray.cpp src/gui/image/qimage.cpp src/gui/image/qppmhandler.cpp src/gui/kernel/qguiapplication.cpp src/gui/painting/qpaintengine_raster.cpp Change-Id: I7c1a8e7ebdfd7f7ae767fdb932823498a7660765
| * Update license headers and add new license filesMatti Paaso2014-09-241-19/+11
| | | | | | | | | | | | | | | | | | - Renamed LICENSE.LGPL to LICENSE.LGPLv21 - Added LICENSE.LGPLv3 - Removed LICENSE.GPL Change-Id: Iec3406e3eb3f133be549092015cefe33d259a3f2 Reviewed-by: Iikka Eklund <iikka.eklund@digia.com>
| * QPaintBuffer paints drawGlyphRun with wrong fontAllan Sandfeld Jensen2014-09-191-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | If QRawFont and and drawGlyphRun is used on a QPaintBuffer it will lose the QRawFont and end up painting with primary font at the time. With this patch, QStaticTextItem can now indicate that they must be drawn using the supplied font-engine and that the font information is not enough. Change-Id: Id6bd376d797d2bfb457e7de55c48bdcf9f20ae38 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
| * Fix menu mnemonic inside ligaturesAllan Sandfeld Jensen2014-09-181-12/+13
| | | | | | | | | | | | | | | | | | | | | | The code to draw underlines on specific characters in widget menu could not handle ligatures. Instead of using special code to handle this case this patch changes the mnemonic underlines to use normal format-ranges making the text engine deal with splitting ligatures as necessary. Task-number: QTBUG-20960 Change-Id: I6159110eae7aa8c819af16ba4a393d758871e2e0 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* | QPainter: use qEnvironmentVariableIsEmpty()Marc Mutz2014-09-121-1/+1
| | | | | | | | | | | | | | | | It doesn't allocate memory, so cannot throw and is a lot faster than qgetenv(). Change-Id: I1ac14bb3d262201071025a885633886934f2d74c Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* | QPainter: use qEnvironmentVariableIntValue()Marc Mutz2014-09-121-1/+1
| | | | | | | | | | | | | | | | It doesn't allocate memory, so cannot throw and is a lot faster than qgetenv(). Change-Id: Ie41b95c09f2c6106a6683ba4637513c974555840 Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* | QPainter: drop a pointless checkMarc Mutz2014-09-121-3/+1
| | | | | | | | | | | | | | There's no need to check for nullptr before invoking delete. Change-Id: Ied751f76f15f390bf86bbba53c14a3e450aa81e8 Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* | QPainter: use qDeleteAll()Marc Mutz2014-09-121-2/+1
|/ | | | | Change-Id: I167e4d7a57e92eb5ea7c39b04246ac2f44c91de0 Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* Document loading of high resolution versions of images.Friedemann Kleint2014-08-261-6/+25
| | | | | | Task-number: QTBUG-38858 Change-Id: I87ee18b66e137f5f5c01d77910f1a7f256b85e18 Reviewed-by: Alessandro Portale <alessandro.portale@digia.com>
* OS X: Remove mnemonics in parenthesesTakumi Asaki2014-08-081-1/+13
| | | | | | | | | | | | In some language, mnemonics put after label text within parentheses. e.g. "&Open" is translated to "開く(&O)" in Japanese. OS X doesn't use mnemonics and '&' in label text is removed. Mnemonics in parentheses (and spaces before them) also should be removed. Change-Id: I88c0a1f60af7e148b3cf24a4e215ce807d62bce3 Reviewed-by: Tasuku Suzuki <stasuku@gmail.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Enable devicePixelRatio for non-Apple platformsPaul Olav Tvete2014-08-061-5/+0
| | | | | | | | | Remove #ifdef Q_OS_MAC around devicePixelRatio code. We are planning to make it available on other platforms. Task-number: QTBUG-38858 Change-Id: I25230cb53ea1291095335ef5883b15087e44f6b8 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2014-05-131-6/+12
|\ | | | | | | | | | | | | Manually changed enum to LibGL in src/plugins/platforms/xcb/qglxintegration.cpp Change-Id: If34ee6cce3d1d51fb4bb1fdfa59c30389ea0d207
| * Avoid showing warnings from drawPixmap when using a QGLWidgetLaszlo Agocs2014-05-051-6/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QGLWidget has a paint device type of Widget, yet drawing on it from outside the gui thread is fine as long as ThreadedOpenGL is supported. It has probably been overlooked that the device type OpenGL applies to QGLFramebufferObject and such but not QGLWidget. This will fix the problem of flooding the output with warnings in the tst_qglthreads autotest and potentially elsewhere too. Task-number: QTBUG-38771 Change-Id: Ie014a2610a0db41b31c30c404e286d4997aecdc3 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* | QPainter: Fix a hard to trigger null dereference in ↵Robin Burchell2014-04-031-0/+2
|/ | | | | | | | QPainterPrivate::drawTextItem. Done-with: Mohammed Hassan <mohammed.hassan@jollamobile.com> Change-Id: I24c724d24346fb5be8c4a66d68a11d51be5ad5f2 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* Correct QPainter::setPen() documentation.Mitch Curtis2014-03-201-1/+1
| | | | | | | | | The default pen width is 1 as of Qt 5. Task-number: QTBUG-37277 Change-Id: I5b7b9c2019bd0e812384e67812b7bcfde37d0b53 Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* Ensure we switch back to the real paint engine when not emulatingAndy Shaw2014-02-201-3/+3
| | | | | | | | | | When the emulation paint engine was no longer needed then it would still end up using it because the flags would prevent it from being switched back. This ensures that it has the right engine when something triggers it to be switched. Change-Id: I7571923d16cbebd9fdd34560631b561c07a724f7 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* Optimize stringToCMap() usageKonstantin Ritt2014-02-071-5/+2
| | | | | | | | | | | | CMAP guarantees there is 1:1 mapping between the Unicode code points array and the glyph indexes array, which means the QString length always greater than or equal to a sufficient glyph indexes array length. Simply add some asserts and improve the memory consumption and the performance where possible. Change-Id: I0bc8cdba5f86c1c0ba9e79c8d5f96cbe56ec463e Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Remove some left-over +1 in font height calculationEskil Abrahamsen Blomfeldt2014-02-051-1/+1
| | | | | | | | | | | | | | In change cb8445f0323b0eefbb04f1d8adad81a00b53abd8, I tried to remove all the historical +1s when calculating the font height from the ascent and descent, but I missed a couple. These are used when drawing the background for the text, the height of which would no longer match the height returned from QFontMetrics. [ChangeLog][Text] Fixed off-by-one in the height of text background. Task-number: QTBUG-36444 Change-Id: If6d87f903e246f9faed2298bb1693b2556906eed Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Get rid of QGlyphLayout::advances_yKonstantin Ritt2014-01-301-2/+1
| | | | | | | | | | | | | | | ...and thus consume 4 bytes less per glyph and increase the performance a bit. It seems, the only CTFontGetAdvancesForGlyphs() returns both x and y advances, though y advances are always equal to 0 for horizontal orientation and x advances are always equal to 0 for vertical orientation. Also, rename `advances_x` to `advances` for consistency and declare QGlyphLayout's data size in a single place. Change-Id: I56b20f893f8a6feb7aa870e3edbca99dd93ba2e2 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Fix QPixmap and OpenGL threading warnings when paintingAleix Pol2014-01-181-1/+4
| | | | | | | | | | | If the QPA supports threaded pixmaps, don't print out a message warning the user about painting a pixmap in the non-main thread. Likewise, if the QPA supports threaded OpenGL, don't print out a warning when the user is about to paint on OpenGL from a non-main thread. Change-Id: I5b4928ee49b1d6c1b638b036fade12dc794258df Reviewed-by: Albert Astals Cid <albert.astals@canonical.com> Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* Avoid incorrect warning when painting onto a QImageLaszlo Agocs2013-11-231-4/+3
| | | | | | | | | | | | | | | | | | | Change Ia8ef48f3 introduced a regression: Trying to paint onto a QImage, QPicture or QPrinter from outside the main thread incorrectly shows a warning saying that it is not supported. The patch was incorrect because 'extraCondition' was used in the non-default branches of the switch and thus not passing extraCondition==true caused the message appear even when it shouldn't have. Let's just remove the extraCondition parameter altogether since it is not used in practice anyway. Change-Id: Id2e56c585d1f1013f24942cbcd53305fbb66aeba Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* Doc: Adding mark-up to boolean default values.Jerome Pasion2013-10-081-10/+10
| | | | | | | | | | | | | | | | | Default values should have mark-up to denote that they are code. This commit changes: -"property is true" to "property is \c true". -"Returns true" to "Returns \c true". -"property is false" to "property is \c false". -"returns true" to "returns \c true". -"returns false" to "returns \c false". src/3rdparty and non-documentation instances were ignored. Task-number: QTBUG-33360 Change-Id: Ie87eaa57af947caa1230602b61c5c46292a4cf4e Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* Deprecate QFontDatabase::supportsThreadedFontRendering()Konstantin Ritt2013-09-101-6/+0
| | | | | | | | As of 5.0, this always return true. Change-Id: If225c7219e283da97e870f0d66a87b21c3cacfc0 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Fix QPainter usage in non-GUI thread warning appearing in debugKonstantin Ritt2013-09-091-3/+3
| | | | | | | | | | | The third parameter is `extraCondition`, which is false by default, and it is used in condition `if (!extraCondition && QThread::currentThread() != qApp->thread()) {`. Passing extraCondition=true makes this condition always evaluate to false and thus hides a respective warning at all. Change-Id: Ia8ef48f341bd22f58375034d1992da716f78121d Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Remove unused check_gradient functionThiago Macieira2013-09-061-6/+0
| | | | | | | | | Found by ICC 14. I wonder how the other compilers didn't detect it. qpainter.cpp(119): warning #177: function "check_gradient" was declared but never referenced Change-Id: Ie94c04f1734e6d7bab6b540d763bb6e7c16e4cb9 Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* Fix new change-of-sign warning detected by ICC 14.Thiago Macieira2013-09-061-1/+1
| | | | | | | | | | | | qpainter.cpp(1656): error #68: integer conversion resulted in a change of sign tmp->changeFlags &= ~(QPaintEngine::DirtyClipPath | QPaintEngine::DirtyClipRegion); tmp->changeFlags is uint, but QPaintEngine::DirtyFlag is backed by int. That means the bitwise NOT sets the sign bit, which makes it negative. Change-Id: Id8dfc2c7012b519cc5f5799d223cb95a79ccd401 Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* QPainter: Fix (!a == b) bugTobias Hunger2013-08-311-2/+2
| | | | | | | | The ! binds to a only, which is most likely wrong here. Change-Id: I4aa09407a8acc68f97bef474781193774e4a7597 Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com> Reviewed-by: Kurt Pattyn <pattyn.kurt@gmail.com>
* Avoid double-highdpi scaling for attached painters.Gunnar Sletta2013-05-271-0/+1
| | | | | | | | updateMatrix will us both redirection matrix and highdpi scale matrix, so make sure we don't multiply it in twice. Change-Id: I7394e504746a8de54b4dc79492264deba320538f Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
* Fix transformed raster fonts on WindowsEskil Abrahamsen Blomfeldt2013-05-131-7/+10
| | | | | | | | | | | | | | | | | | We removed all Q_WS_WIN code when going to Qt 5. One of the things removed was the condition that we do painter path text rendering for transformed, non-ttf fonts, since the GDI engine does not support transforming those. This has now been reintroduced and adapted to the QPA way of doing things, by checking for it in the font engine subclass. Then there was the problem that QStaticText only supports cases where the font engine can transform the glyphs. Thus we need to fall back to regular text drawing in drawStaticText() for unsupported cases, and we need to skip the optimized path in the raster engine (which goes to drawStaticTextItem) Task-number: QTBUG-30932 Change-Id: I17ba7355ee127811b0e77bb3a9b9db092e99893b Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Add devicePixelRatio metric to QPaintDevice.Morten Johan Sørvig2013-04-151-16/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | Previously QPainter computed the devicePixelRatio based on the physical and logical dpi, and expected that the ratio between them would be either 1x or 2x. This was problematic for paint devices like printers where the physical dpi can be much higher than the logical dpi, and also for QScreen where the physical dpi would have to be defined as a multiple of the logical dpi. Add QPaintDevice::PdmDevicePixelRatio and QPaintDevice:: devicePixelRatio() getter and implement it for the QPaintDevice subclasses. Use it when calculating the highdpi scale transform in qpainter.cpp and when scaling the clip rect in qwidget.cpp. Remove physical dpi scaling for QImage, QPixmap and QOpenGLPaintDevice, reverting to the old behavior. Change-Id: I6c97510613196d4536ff39d08e9750b8782283d4 Reviewed-by: Samuel Rødal <samuel.rodal@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* Replace HB types used in API with Qt analogsKonstantin Ritt2013-03-121-4/+4
| | | | | | | | | | hb_uint32 <-> quint32 HB_Glyph <-> glyph_t HB_Fixed <-> QFixed, HB_FixedPoint <-> QFixedPoint HB_GlyphAttributes <-> QGlyphAttributes Change-Id: I4338ec4ce9a9c20ea591606ab10e6ef4f19931b8 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-02-201-2/+2
|\ | | | | | | | | | | | | | | | | | | Conflicts: mkspecs/features/unix/separate_debug_info.prf src/gui/kernel/qwindow_p.h src/plugins/platforms/cocoa/qcocoacursor.mm tests/auto/tools/moc/tst_moc.cpp Change-Id: Ieb57834c00f961a747ffe51e6eb9fc9612cebccf
| * Don't enable HIDPI when rendering directly to PDF on MacAndy Shaw2013-02-191-2/+2
| | | | | | | | | | | | | | | | | | | | | | When rendering to PDF using the PDF paint engine on Mac it would consider it to be rendering as HIDPI when ScreenResolution was used. This would mean nothing was being rendered at all in the PDF as a result. Task-number: QTBUG-28709 Change-Id: Ieb97ca9d0b47f6b96debbcf5e05e96c39292e412 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* | Document the QPainter::HighQualityAntialiasing render hint as obsolete.Samuel Rødal2013-02-121-6/+2
| | | | | | | | | | | | | | It was only used in the now removed OpenGL 1.x paint engine. Change-Id: I2237172de700bfd31ca25279fbed21d601785962 Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-01-281-1/+1
|\| | | | | | | Change-Id: I12b4d8b99bdccae53b1a978cd6eb8f4ac6fb3c76
| * Doc: Fix module name formatSze Howe Koh2013-01-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Follow the conventions at http://qt-project.org/wiki/Spelling_Module_Names_in_Qt_Documentation QtCore -> Qt Core QtDBus -> Qt D-Bus QtDesigner -> Qt Designer QtGui -> Qt GUI QtImageFormats -> Qt Image Formats QtNetwork -> Qt Network QtPrintSupport -> Qt Print Support QtScript -> Qt Script QtSql -> Qt SQL QtSvg -> Qt SVG QtTest -> Qt Test QtWebKit -> Qt WebKit QtWidgets -> Qt Widgets QtXml -> Qt XML QtConcurrent -> Qt Concurrent (partial) QtQuick -> Qt Quick (partial) Also, distinguish between "module" and "library" Change-Id: Icb8aa695ae60b0e45920b0c8fce4dc763a12b0cd Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-01-221-1/+1
|\| | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/io/qsavefile_p.h src/corelib/tools/qregularexpression.cpp src/gui/util/qvalidator.cpp src/gui/util/qvalidator.h Change-Id: I58fdf0358bd86e2fad5d9ad0556f3d3f1f535825
| * Update copyright year in Digia's license headersSergio Ahumada2013-01-181-1/+1
| | | | | | | | | | Change-Id: Ic804938fc352291d011800d21e549c10acac66fb Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Refactor paint/font-engine shouldDrawCachedGlyphs and supportsTransformationsTor Arne Vestbø2013-01-101-10/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some cruft had built up over time, and this is an attempt at cleaning up the naming and use of these functions, and should not have any behavioral effects. The function supportsTransformations() has been renamed in QPaintEngineEx to reflect its use, which is to decide if QPainter needs to pre-transform the coordinates of the static text before asking the paint-engine to draw it. The new name is requiresPretransformedGlyphPositions(). The OpenGL and CoreGraphics (Mac) paint engines keep their behavior of not needing pre-transformed text, while the raster engine needs this when using cached glyphs. The base-class implementation assumes that all transforms that include a projection will need pre-transform, which is also the case for the raster engine. All decisions in the paint engines about whether or not to use the glyph cache when drawing text are now deferred to the function shouldDrawCachedGlyphs(), which has been refactored for the GL paint engine(s) to share more logic. All implementations call the base class implementation, which ensures that large font sizes will not be cached. The raster engine will in addition ask the font engine whether or not it can produce glyphs for the glyph-cache with the given transform. This is the only remaining instance of the supportsTransformations() function, and will for all font engines except the CoreText engine support affine transformations. The CoreText engine on the other hand only supports translations (for now). Change-Id: I8fb5e43e3de3ef62a526a79a6dfeda7f9546771d Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* | Update Qt internals to use QChar::ScriptKonstantin Ritt2012-12-211-2/+2
|/ | | | | | | | | | | | | | ...and remove the outdated QUnicodeTables::Script enum. QFontEngineData now has one extra slot that never used (engines[QChar::Script_Inherited]). engines[QChar::Script_Unknown], if accessed, would be set with a Box engine instance, and could be used as a minor optimization some time later. In order to preserve the existing behavior, we map all scripts up to Latin to Common. Change-Id: Ide4182a0f8447b4bf25713ecc3fe8097b8fed040 Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com> Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* Basic high-dpi "retina" support for Qt 5.Morten Johan Sørvig2012-12-011-10/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | Bring Qt 5 on par with Qt 4, prepare for more comprehensive support later on. Introduce device independent pixels (dips), device pixels, and devicePixelRatio. Add high-dpi support to QPainter, QGLWidget, the cocoa platform plugin, mac and fusion styles. Dips are similar to CSS pixels, Apple points and Android density-independent pixels. Device pixels are pixels in the backing store/physical pixels on screen. devicePixelRatio is the ratio between them, which is 1.0 on standard displays and 2.0 on "retina" displays. New API: QImage::devicePixelRatio() and setDevicePixelRatio() QPixmap::devicePixelRatio() and setDevicePixelRatio() QWindow::devicePixelRatio() QScreen::devicePixelRatio() QGuiApplicaiton::devicePixelRatio() Change-Id: If98c3ca9bfdf0e1bdbcf7574cd5b912c9ff63856 Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* Pixel-align vertical metrics in QTextLayout againEskil Abrahamsen Blomfeldt2012-10-301-1/+4
| | | | | | | | | | | | | | | | | | | To avoid regressing due to de58eb64bc564fcb8af61a45576783e432d2380c, we need to return a pixel aligned height in QTextLine::height() and also use pixel aligned heights when calculating the position of lines as well as the bounding rect of the layout. Later, we can add a QTextLine::naturalHeight() or something like that which gives the fractional value, but until then, we need to access private API in QPainter to get the correct alignment, since we still don't want to align the height of the last line in the layout, we only want to align the origin of each line. Task-number: QTBUG-27740 Change-Id: I12325f07d33aaf1a1b967e0a11492759d0f565d9 Reviewed-by: Caroline Chao <caroline.chao@digia.com> Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* Revert hacks in text rendering code pathEskil Abrahamsen Blomfeldt2012-10-251-27/+16
| | | | | | | | | | | | | | There are a lot of hacks here and there in Qt trying to align the text in a correct way which caused regressions to appear once the default coordinate system changed. We need to remove these hacks to get a more consistent and maintainable base. This also fixes the regression introduced by changing the aliased coordinate system. Task-number: QTBUG-27667 Change-Id: I620db2ca23b7ff6c912f3a51e86e7e36bbef81f0 Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* Make QPen default to 1-width non-cosmetic.Samuel Rødal2012-10-221-38/+13
| | | | | | | | | | | Use the Qt4CompatiblePainting render hint when painting with QPainter to treat default constructed QPens as cosmetic still. The NonCosmeticDefaultPen render hint gets documented as obsolete, since it was in any case not respected by the raster nor OpenGL paint engine. Change-Id: I04d910e9700baf7f13a8aac07a3633014bb9283e Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>