summaryrefslogtreecommitdiffstats
path: root/src/openvg
Commit message (Collapse)AuthorAgeFilesLines
* Update copyright year in Digia's license headersSergio Ahumada2013-01-1317-17/+17
| | | | | | Change-Id: I52bf8ef0447b701b4ebf7d7d240013a72adb9425 Reviewed-by: Akseli Salovaara <akseli.salovaara@digia.com> Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
* Change copyrights from Nokia to DigiaIikka Eklund2012-09-2917-408/+408
| | | | | | | | Change copyrights and license headers from Nokia to Digia Change-Id: I280c0a575987d1770e354b4948f1d4d767d711ea Reviewed-by: Simo Fält <simo.falt@digia.com> Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
* Update contact information in license headers.Sergio Ahumada2012-08-0117-34/+34
| | | | | | | | | | | | | - Replace Nokia contact email address with Qt Project website. - Remove "All rights reserved" line from license headers. As in the past, to avoid rewriting various autotests that contain line-number information, an extra blank line has been inserted at the end of the license text to ensure that this commit does not change the total number of lines in the license header. Change-Id: Ie7ba62011752fcb149b99b26317c54f2a0cfa931 Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
* Off-by-one-line error in QVGPaintEngine::drawImageMurray Read2012-04-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | QVGPaintEngine::drawImage(const QPointF &pos, const QImage &image) uses vgWritePixels if possible, and when the QImage is loaded from some file types, its lines are inverted, stored from bottom to top in memory. For inverted images, the image data pointer passed to vgWritePixels should be pointing at the start of the last line. However drawImage was actually passing a pointer to after the last line. This has undefined results, but in practice you either get the image contents drawn one line too high with the top line missing and and extra garbage bottom line, or you can also get a crash if beyond the last line is not readable memory. Fixed by correcting the pointer passed to vgWritePixels to point to the start of the last line for inverted images. Task-number: ou1cimx1#996894 Change-Id: I1cf5b976acc18adceec1e14633f8779441faa056 Reviewed-by: Jani Hautakangas <jani.hautakangas@nokia.com> Reviewed-by: Pasi Pentikäinen <ext-pasi.a.pentikainen@nokia.com>
* Recovering from draw failures after EGL surface creation failuremread2012-01-133-18/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The Qt drawing system is not designed to handle failures in beginPaint and endPaint. But the Symbian port is creating EGL contexts and surfaces on demand in these functions. These can fail, eg in the defect reported the app gets a visibile=true event for such a short period that it fails to create the surface before it is invisible again. These failures have to be coped with. Brush image drawing is failing if the app is asked to draw while in the background, because the EGL surface cannot be created. After this, if the app comes to the foreground at the wrong time, the failed drawing is shown on the screen as a flat colored area. A failedToAlloc variable in the openvg paint engine was locking in this failed drawing, so that it would never redraw. This is fixed by removing all use of that variable. Failed surface creation during a draw in response to a visibility change event was also leaving the window backing store with bad content. This is now cleared on a surface creation failure so that drawing is retried when the next visibility change event arrives. The retry mechanism for creating a surface on failure also makes the problem circumstances more likely to occur and can block the app unnecessarily. Now, instead of blocking for 1 second every time on failed surface creation, it only blocks on the first failure in a sequence thereby allowing other parts of the app to run freely while it is in the background. Task-number: ou1cimx1#951921 Change-Id: I1e27746957ff624b0d9a1cdc9b319d0a3477135d Reviewed-by: Gareth Stockwell <gareth.stockwell@accenture.com> Reviewed-by: Shane Kearns <ext-shane.2.kearns@nokia.com>
* Update year in Nokia copyright messages.Jason McDonald2012-01-1117-17/+17
| | | | | | | | | Simple search and replace. This commit doesn't touch 3rd-party files, nor translations (where the change is not so simple and will be handled in a separate commit). Change-Id: I4e48513b8078a44a8cd272326685b25338890148 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Revert "Fix memory leaks in OpenVG and OpenGL resource pools"mread2011-12-122-2/+15
| | | | | | | | | | | | This reverts commit 8752faf0564bed86396b01529dc8ef5064150f4c. Also Revert "Fix def files" This reverts commit d2a3b9ee8c9329cac96b5e509df0e6a69dbef91c. This was found to cause a crash in QMLGallery app. It is not necessary to delete these resource pools at app exit, as the OS should automatically release the resources at this point. Reviewed-by: Jani Hautakangas
* Fix memory leaks in OpenVG and OpenGL resource poolsJani Hautakangas2011-11-302-15/+2
| | | | | Task-number: QTBUG-22743 Reviewed-by: Murray Read
* OpenVG cleanup.Nikolaos Korkakakis2011-07-262-0/+13
| | | | | | | Changes needed to reflect the updates in the QWindowSurface. Merge-request: 1309 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Merge remote-tracking branch 'origin/4.7' into qt-4.8-from-4.7Liang Qi2011-07-202-3/+3
|\ | | | | | | | | Conflicts: src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
| * Avoid crash when surface creation fails.Laszlo Agocs2011-07-182-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | When the creation of the EGL window surface failed, the paint engine was not destroyed in the openvg module's window surface implementation. This led to accessing an obsolete engine instance later on in QSymbianControl::Draw, leading to a crash. Now a new, proper engine will be created, naturally the painting will still fail, but the application will not crash. Task-number: QTBUG-20339 Reviewed-by: Jani Hautakangas
* | Merge remote-tracking branch 'origin/4.7' into qt-4.8-from-4.7Liang Qi2011-06-244-3/+16
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/gui/image/qpixmap_raster_symbian.cpp src/gui/image/qpixmapdatafactory.cpp src/gui/painting/qgraphicssystem.cpp src/gui/styles/qs60style.cpp src/network/bearer/qnetworkconfigmanager_p.h src/s60installs/bwins/QtGuiu.def src/s60installs/bwins/QtOpenGLu.def src/s60installs/bwins/QtOpenVGu.def src/s60installs/eabi/QtGuiu.def src/s60installs/eabi/QtOpenVGu.def tests/auto/qnetworkproxyfactory/tst_qnetworkproxyfactory.cpp
| * Disable antialiasing for tiled image drawing.Laszlo Agocs2011-06-201-1/+8
| | | | | | | | | | Task-number: QTBUG-19821 Reviewed-by: Jani Hautakangas
| * Handle QVolatileImage-backed pixmaps optimally in drawPixmap().Laszlo Agocs2011-06-163-2/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | When drawing such pixmaps (used by both the openvg and opengl graphics systems) onto another pixmap or to a QImage, the performance was sub-optimal due to missing and accidentally disabled support specific to QVolatileImage. This is now fixed and drawing pixmaps into a QImage is also made optimal by using the QS60PaintEngine for QImage too. This will cause a 5-7x (or even up to 12x on certain hardware and platform) increase in offscreen pixmap drawing performance. Task-number: QTBUG-19880 Reviewed-by: Jani Hautakangas
* | Merge remote branch 'origin/4.7' into qt-4.8-from-4.7Jani Hautakangas2011-06-221-0/+1
|\ \ | |/ | | | | | | | | | | Conflicts: src/opengl/qgl.cpp src/opengl/qpixmapdata_symbiangl.cpp src/opengl/qwindowsurface_gl.cpp
| * Simplify texture pooling logic in GL graphics system.Jani Hautakangas2011-06-091-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | Remove ugly TemporarilyCachedBindOption and use QGLTexture objects as texture pool entries instead of QGLPixmapData. Make texture pooling totally Symbian specific, remove VG like texture pooling code and use common texture binding path which is used on other platforms also on Symbian. QGLPixmapData should be only used to bind SgImage based textures (will be implemented by another commit). Task-number: QTBUG-19180 Reviewed-by: Samuel Rødal
| * Update licenseheader text in source filesJyri Tahtela2011-05-1317-289/+289
| | | | | | | | | | | | | | Updated version of LGPL and FDL licenseheaders. Apply release phase licenseheaders for all source files. Reviewed-by: Trust Me
* | Merge remote branch 'qt/4.8' into fire-masterPaul Olav Tvete2011-06-0617-289/+289
|\ \ | | | | | | | | | | | | | | | | | | | | | Conflicts: src/plugins/platforms/wayland/qwaylandclipboard.cpp src/plugins/platforms/wayland/qwaylandclipboard.h src/plugins/platforms/wayland/qwaylanddisplay.cpp src/s60installs/eabi/QtOpenGLu.def
| * | Update licenseheader text in source files for qt4.8Jyri Tahtela2011-05-1317-289/+289
| | | | | | | | | | | | | | | | | | | | | Updated version of LGPL and FDL licenseheaders. Apply release phase licenseheaders for all source files. Reviewed-by: Trust Me
| * | Symbian build failure for Armv5Sami Merila2011-05-121-2/+2
| | | | | | | | | | | | | | | | | | | | | 1. Changed externs to Q_GUI_EXPORTs 2. ABSENTed missing exports from openGL's DEF-file Reviewed-by: Tomi Vihria
* | | Refactor glyph pretransform checkJiang Jiang2011-06-031-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Move paintEngineSupportsTransformations logic from QPainter to paint engine subclasses. Simplify and consolidate checks for cached drawing (pretransformed) and path drawing (untransformed) in raster paint engine. Fix unnecessary transform when paint engines actually take the path drawing track. Fix scaling and rotation transform in raster engine for Mac. Task-number: QTBUG-19086 Change-Id: I1c0c1800a5173d3db765b9fccfd0e7a3628e3815 Reviewed-on: http://codereview.qt.nokia.com/298 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com> (cherry picked from commit 43c0e08ba2e3487840b4063b2099bc17cdd4dce2)
* | | Symbian build failure for Armv5Sami Merila2011-05-311-2/+2
|/ / | | | | | | | | | | | | 1. Changed externs to Q_GUI_EXPORTs 2. ABSENTed missing exports from openGL's DEF-file Reviewed-by: Tomi Vihria
* | Merge branch 4.7 into qt-4.8-from-4.7Qt Continuous Integration System2011-05-021-0/+11
|\ \ | |/
| * Fix trailing whitespacesJani Hautakangas2011-05-021-1/+1
| | | | | | | | Reviewed-by: TRUSTME
| * Fix for native child widget performance issue.Jani Hautakangas2011-05-021-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | Flushing native child widgets in VG and GL window surfaces caused performance downgrade because unnecessary swapBuffers calls. On Symbian we must not support flushing native child widgets in VG and GL window surfaces because it causes GPU memory overhead and performance issues. Symbian graphics architecture allows us to render native child widgets to TLW EGL surface correctly in most of the cases. Task-number: QTMOBILITY-1570 Reviewed-by: Samuel Rødal
* | Merge remote-tracking branch 'origin/4.7' into qt-4.8-from-4.7Olivier Goffart2011-05-022-1/+6
|\ \ | |/ | | | | | | | | | | Conflicts: src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp src/s60installs/bwins/QtGuiu.def src/s60installs/eabi/QtGuiu.def
| * Upload VGImage data when drawing pixmaps that are being painted into.Laszlo Agocs2011-04-271-1/+1
| | | | | | | | | | | | | | | | | | | | | | When a painter is open on a pixmap's underlying QVolatileImage, it is better to upload the VGImage content every time the pixmap is drawn on the screen, in order to enable showing animations that are created by continously rendering into the same pixmap and keeping the same painter open. Task-number: QT-4002 Reviewed-by: Jason Barron
| * Make translucent windows working properly with OpenVG.Laszlo Agocs2011-04-271-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The OpenVG engine correctly uses vgClear() to fill the surface with transparent pixels whenever the window has the WA_TranslucentBackground attribute enabled. However both scissoring and masking affects the operation of vgClear(). Drawing artifacts were previously visible due this, simply because scissoring was left enabled by the VG paint engine, and the filling with transparent pixels happens in the window surface's beginPaint() that is called between the paint engine's end() (for the previous paint) and begin() (for the next paint). Task-number: QT-4907 Reviewed-by: Jani Hautakangas
* | Merge branch 'master' of scm.dev.nokia.troll.no:qt/qt-fire-staging into ↵Qt Continuous Integration System2011-04-281-0/+111
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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! ...
| * | Added support for six-parameter radial gradients.Samuel Rødal2011-04-131-0/+111
| | | | | | | | | | | | | | | | | | | | | | | | The extended radial gradients conform to the radial gradient specification in HTML 5 canvas. Task-number: QTBUG-14075 Reviewed-by: Andreas Kling
* | | Merge branch 4.7 into qt-4.8-from-4.7Qt Continuous Integration System2011-04-271-4/+5
|\ \ \ | | |/ | |/|
| * | Specify swap behavior preserved bit in openvg engine.Laszlo Agocs2011-04-271-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Unlike OpenGL, the EGL_SWAP_BEHAVIOR_PRESERVED_BIT was not set for the EGL configuration used with OpenVG. Yet the preserved swap was enabled still, which, according to the EGL spec, should fail. To make sure it still works with other EGL implementations, the bit is now set in the configuration. Reviewed-by: Jani Hautakangas
* | | Merge remote-tracking branch 'origin/4.7' into qt-master-from-4.7Olivier Goffart2011-04-181-0/+15
|\ \ \ | |/ / | | / | |/ |/| | | | | | | | | Conflicts: qmake/generators/makefile.cpp qmake/generators/win32/msbuild_objectmodel.cpp qmake/generators/win32/msvc_vcxproj.cpp src/corelib/global/qnamespace.h src/gui/text/qtextcontrol.cpp
| * Fix to 'QImage convertToFormat doesn't work correctly'Jani Hautakangas2011-04-131-0/+15
| | | | | | | | | | | | | | | | | | | | OpenVG paint engine tries to use vgWritePixels shortcut whenever possible to optimize rendering performance. The check 'canVgWritePixels' failed to map formats correctly and resulted to incorrect return value. Task-number: QTBUG-18682 Reviewed-by: Jason Barron
* | Put all the declarations of qt_defaultDpi{,X,Y}() in one placeJiang Jiang2011-04-052-6/+1
| | | | | | | | Reviewed-by: Samuel Rødal
* | Merge branch 'qt-master-from-4.7' of ↵Qt Continuous Integration System2011-04-032-4/+5
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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: (237 commits) Fix animation tests after merge Remove duplicated test. Add missing test file. Changing width of RTL positioner doesn't relayout Fix TextInput auto test failure on mac. PinchArea and Flickable don't work well enough together Do not set focus unnecessarily at window activation in Symbian QS60Style: Regression in drawing dialog background QS60Style: Support menu separator (pt.2) Fix auto test failure. Support for new softkey in Symbian^3 Once Image sourceSize is set there is no way to clear it. Rotation transform with NaN angle can cause crash QSoftkeyManager auto test update Fixed not switching to MeeGo graphicssystem. Canceling image download while reading causes crash Fix width of TextInput micro focus rectangle. Return correct boundaries reasons from QTextBoundaryFinder. GridView jumps to beginning of list when resized Fixed rounding of coordinates pre-transformation in CG paintengine. ...
| * \ Merge remote-tracking branch 'origin/4.7' into qt-master-from-4.7Olivier Goffart2011-03-312-4/+5
| |\ \ | | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: doc/src/declarative/example-slideswitch.qdoc doc/src/development/qmake-manual.qdoc doc/src/snippets/code/doc_src_qmake-manual.pro doc/src/snippets/code/doc_src_qtscript.qdoc src/corelib/animation/qabstractanimation.cpp src/s60installs/bwins/QtOpenGLu.def src/s60installs/eabi/QtOpenGLu.def src/s60installs/eabi/QtOpenVGu.def tests/auto/qdir/qdir.pro tests/auto/qsslsocket/tst_qsslsocket.cpp tools/qdoc3/doc/qdoc-manual.qdocconf
| | * Fix an issue with VGImage readback in openvg.Laszlo Agocs2011-03-242-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | The special case of creating a pixmap from RSgImage via a native handle provider needs extra attention when hibernating: In this case the hibernating happens as usual, however doing a readback would produce unwanted results and must be avoided. Reviewed-by: Jani Hautakangas
* | | Added WindowSurfaceFeature enum to QWindowSurface.Samuel Rødal2011-03-292-3/+6
|/ / | | | | | | | | | | | | | | Now that we've added hasPreservedContents() it's cleaner to convert the various features to feature flags, which is also more extensible in case more flags are needed in the future. Reviewed-by: Bjørn Erik Nilsen
* | Merge remote-tracking branch 'origin/4.7' into qt-master-from-4.7Thiago Macieira2011-03-241-3/+98
|\ \ | |/ | | | | | | Conflicts: src/opengl/qwindowsurface_gl.cpp
| * Implement tiled image and pixmap drawing in VG paint engine.Laszlo Agocs2011-03-221-3/+98
| | | | | | | | | | | | | | | | | | | | | | | | The vgWritePixel-based "fallback" in drawImage can only be used when the transformation is simple and no opacity is set. The tiled drawing introduced here will serve as an additional fallback for the more complex cases and will allow drawing large (12 Mpix or more) pixmaps and images with transformation and semi-transparency even when the complete image data would not fit into the GPU memory. Task-number: QTBUG-18251 Reviewed-by: Jani Hautakangas
* | Merge branch 4.7 into qt-master-from-4.7Qt Continuous Integration System2011-03-221-0/+4
|\ \ | |/
| * Fixed drawImage() not to attempt drawing null images on openvg.Laszlo Agocs2011-03-221-0/+4
| | | | | | | | | | | | | | | | | | QVGPaintEngine did not have proper checks for null QImage in the drawImage functions so it went on trying to create a VGImage of size 0x0 which is bound to fail always. This resulted in confusing warnings about not being able to reclaim space for 0x0 images. Reviewed-by: Jani Hautakangas
* | Merge remote-tracking branch 'origin/4.7' into qt-master-from-4.7Olivier Goffart2011-03-221-4/+4
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: examples/declarative/positioners/layoutdirection/layoutdirection.qml src/corelib/global/qglobal.h src/plugins/qpluginbase.pri src/qbase.pri src/s60installs/bwins/QtOpenGLu.def src/s60installs/eabi/QtOpenGLu.def tests/auto/selftests/expected_cmptest.txt tests/auto/selftests/expected_crashes_3.txt tests/auto/selftests/expected_longstring.txt tests/auto/selftests/expected_maxwarnings.txt tests/auto/selftests/expected_skip.txt tools/assistant/tools/assistant/doc/assistant.qdocconf tools/qdoc3/test/assistant.qdocconf tools/qdoc3/test/designer.qdocconf tools/qdoc3/test/linguist.qdocconf tools/qdoc3/test/qdeclarative.qdocconf tools/qdoc3/test/qmake.qdocconf tools/qdoc3/test/qt-build-docs_ja_JP.qdocconf tools/qdoc3/test/qt-build-docs_zh_CN.qdocconf
| * Changed s60 style not to rely on QPixmapData::toNativeType().Laszlo Agocs2011-03-211-2/+0
| | | | | | | | | | | | | | | | | | Forcing VG (and GL) pixmapdata to support toNativeType() with type VolatileImage is unnecessary. It is cleaner to try doing a fromNativeType() with bitmap+mask and fall back if that results in a null pixmapdata. Reviewed-by: Jani Hautakangas
| * Add missing bitmap locking to QVGPixmapData::fromNativeType.Laszlo Agocs2011-03-211-2/+4
| | | | | | | | Reviewed-by: Jani Hautakangas
* | Make getters for staticContentsSupport and partialUpdateSupport virtualArmin Berres2011-03-162-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | When QRuntimeGraphicsSystem is asked for its support for static contents of partial updates it should return the value for the currently running wrapped graphicssystem. As the getters have not been virtual so far this could not be implemented. Additionally the setters have been removed as these values are not supposed to be set from the outside. Only the graphicssystems itself knows what it supports. If the default values should be changed the methods should be overwritten. Merge-request: 1136 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* | Merge remote-tracking branch 'origin/4.7' into qt-master-from-4.7Thiago Macieira2011-03-116-20/+161
|\ \ | |/ | | | | | | | | | | Conflicts: mkspecs/common/symbian/symbian.conf src/s60installs/bwins/QtGuiu.def src/s60installs/eabi/QtGuiu.def
| * Fix for major regression in OpenVG clippingJani Hautakangas2011-03-101-0/+1
| | | | | | | | | | | | | | | | | | OpenVG paint engine didn't reset it's mask fallback state correctly when engine was resetted. Task-number: QTBUG-17966 Reviewed-by: Jason Barron
| * Fix for fromSymbianCFbsBitmap changing the source data unexpectedly.Laszlo Agocs2011-03-101-1/+0
| | | | | | | | | | | | | | | | | | | | | | Inverting the pixels for bitmaps of mode EGray2 is done in-place, which is wrong if the bitmap handle was duplicated. Instead, we need to make a copy. This also means that we cannot treat EGray2 a conversion-less format in openvg, but such images are likely to be used as masks only, so optimizing just for mere drawing in case of this format is not really necessary. Reviewed-by: Jani Hautakangas