summaryrefslogtreecommitdiffstats
path: root/src/gui/effects/qgraphicseffect.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Fixes the documentation of QGraphicsEffect::update().Yoann Lopes2010-06-301-6/+3
| | | | | | | Reflects now the real behavior of this function. Related to a false bug report (QT-3481). Reviewed-by: sroedal
* Fixed scrolling bugs in widget graphics effect backend.Samuel Rødal2010-05-071-1/+1
| | | | | | | | | | | The cache wasn't invalidated for widgets with a graphics effect inside a scrolling QScrollArea, so for now we disable caching for widget source pixmaps. Also, we can't clip the source pixmap to device coordinates since there's no knowledge of which areas of the source pixmap the effect uses to compute the visible pixels. See change fd30cc9fabe6fc023 for the graphics item effect backend fix. Reviewed-by: Bjørn Erik Nilsen
* Documented behavior of blur effect radius and drop shadow offset.Samuel Rødal2010-02-181-2/+10
| | | | | | | | Our graphics effects are always done in device coordinates (unless they can be done in logical coordinates with the same result as an optimization, e.g. opacity effects). Reviewed-by: Andy Shaw
* Prevented calling the pixmap filter implementations with null pixmaps.Samuel Rødal2010-02-151-2/+12
| | | | Reviewed-by: Bjørn Erik Nilsen
* Compiler warning.Bjørn Erik Nilsen2010-01-271-2/+2
|
* Improved performance of translating device coordinate graphics effects.Samuel Rødal2010-01-131-0/+5
| | | | | | | | Don't invalidate the cache if we're only translating and the effect rect is fully contained within the device rect of the painter. Task-number: QTBUG-6901 Reviewed-by: Bjørn Erik Nilsen
* Update copyright year to 2010Jason McDonald2010-01-061-1/+1
| | | | Reviewed-by: Trust Me
* Optimized blur / drop shadow effects for the GL 2 paint engine.Samuel Rødal2009-12-141-7/+4
| | | | | | | | | Do the blur in half the resolution in software and then upload the result as a texture and smooth-scale it on the GPU. This leads to stable and decent performance regardless of the blur radius, and simplifies the implementation quite a bit. Reviewed-by: Bjørn Erik Nilsen
* Added InvalidateReason to invalidateCache to optimize effectsSamuel Rødal2009-12-141-3/+7
| | | | | | | | This lets us ignore the invalidateCache call when the transform of a graphics item with an effect changes, and the cached system is LogicalCoordinates and cached mode is not PadToEffectiveBoundingRect. Reviewed-by: Bjørn Erik Nilsen
* Fixed bug in QGraphicsPixmapItem shortcut for graphics effects.Samuel Rødal2009-12-141-1/+4
| | | | | | We need to take the pixmap item's drawing offset into consideration. Reviewed-by: Bjørn Erik Nilsen
* Fix redraw bugs when using graphics effects in device coordinate mode.Samuel Rødal2009-12-101-3/+11
| | | | | | | | | | QGraphicsEffect::boundingRectFor() needs the source bounding rect in device coordinates. This patch fixes the documentation to reflect this, and fixes some internal usage of boundingRectFor() to ensure it always gets the device rect of the source. Task-number: QTBUG-5918 Reviewed-by: Bjørn Erik Nilsen
* doc: Fixed qdoc according to Bjarne's recommendation.Martin Smith2009-11-161-13/+0
| | | | | | Someone had changed an operator==() and an operator!=() from single parameter members to two-parameter friends but hadn't changed the qdoc comments.
* Doc: remove graphics for effects that are no longer in scope.Volker Hilsheimer2009-11-101-1/+11
|
* Improvements to graphics effects API after review round.Samuel Rødal2009-11-101-90/+143
| | | | | | | | | | | | * Get rid of QGraphicsEffectSource from the public API, instead add convenience functions in QGraphicsEffect. This way we commit to less API, and are free to introduce a customizable QGraphicsEffectSource in a future release. * Move PixmapPadMode into QGraphicsEffect and tweak the names of the enum values. * Make QGraphicsBlurEffect::BlurHint into a bit flag, for extensibility. Reviewed-by: Bjørn Erik Nilsen
* Merge branch '4.6-s60' into 4.6axis2009-11-061-0/+5
|\
| * Merge branch '4.6' of git@scm.dev.nokia.troll.no:qt/qt into 4.6-s60axis2009-11-051-0/+2
| |\
| * | Fix for link error when building QtSvgGareth Stockwell2009-11-041-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Building QtSvg for Symbian (ARMV5 build) fails due to the following linker error: QGraphicsEffectSourcePrivate::invalidateCache(bool) const (referred from qsvgwidget.o). This function is called from the inline destructor of QGraphicsEffectSourcePrivate. Making this destructor non-inline fixes the problem. It is not clear why QtSvg is instantiating this destructor, however, as neither QGraphicsEffectSourcePrivate nor any of its derived classes are referred to from QtSvg source. This problem seems to have been triggered by 85e41590. Reviewed-by: Shane Kearns
* | | Doc: Fixed qdoc warnings.David Boddie2009-11-051-1/+17
| |/ |/| | | | | Reviewed-by: Trust Me
* | Add QT_NO_GRAPHICSEFFECTJørgen Lind2009-11-041-0/+2
|/ | | | | | | It depends on QT_NO_GRAPHICSVIEW for now, but it is possible to remove this dependency. Reviewed-by: paul
* Merge branch '4.6' of git@scm.dev.nokia.troll.no:qt/qt into 4.6Gunnar Sletta2009-11-031-51/+21
|\
| * Merge commit 'widget/4.6' into origin/4.6Olivier Goffart2009-10-301-51/+21
| |\ | | | | | | | | | | | | Conflicts: src/gui/effects/qgraphicseffect.cpp
| | * Get rid of QPainter warnings generated from QGraphicsOpacityEffect.Bjørn Erik Nilsen2009-10-291-49/+20
| | | | | | | | | | | | | | | | | | | | | Problem was that we painted on null pixmap. We also want to use the pixmap cache (QGraphicsEffectSource::pixmap()) to improve performance. Reported by Andrew Baldwin's performance team.
* | | Merge branch '4.6' of git@scm.dev.nokia.troll.no:qt/qt-graphics-team into 4.6Gunnar Sletta2009-11-021-11/+53
|\ \ \
| * | | Made QGraphicsEffectSource::draw() use cached pixmap if possible.Samuel Rødal2009-11-021-1/+17
| | | | | | | | | | | | | | | | | | | | | | | | Small optimization for the case where the source pixmap is cached. Reviewed-by: Gunnar Sletta
| * | | Moved Qt::RenderHint back into QGraphicsBlurEffect and added a hint.Samuel Rødal2009-11-021-9/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Added AnimationHint, which didn't make too much sense in a generic enum, so Qt::RenderHint was moved back into QGraphicsBlurEffect as QGraphicsBlurEffect::BlurHint. Reviewed-by: Gunnar Sletta
| * | | Optimized graphics effects to not needlessly invalidate cache.Samuel Rødal2009-11-021-1/+8
| |/ / | | | | | | | | | | | | | | | | | | When the effect rect changes we only need to invalidate the cache if the mode is ExpandToEffectRectPadMode. Reviewed-by: Gunnar Sletta
* | | Fixed test, QGraphicsSourceEffect::pixmap(), caching caused failure.Gunnar Sletta2009-11-021-0/+8
|/ / | | | | | | Reviewed-by: Samuel
* | Added some optimizations to the blur and drop shadow GL filters.Samuel Rødal2009-10-291-3/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Use ExpandToTransparentBorderPadMode since we can use GL_CLAMP_TO_EDGE to clamp to the texture. * Shrink the bounding rects reported by the blur and drop shadow filters (expanding by 2 * radius isn't needed). * Use a single-pass blur for radii <= 3 to avoid the overhead of rendering to an FBO. * Made the fast blur setting generate filters for only a predefined set of radii, and then use the actual blur radius to spread the sample points outwards. * Optimized the generated program to rely less on temporary variables, as those seemed to not be handled very well by certain GLSL compilers. Reviewed-by: Gunnar Sletta
* | Made blur and drop shadow APIs use qreal instead of int for blur radius.Samuel Rødal2009-10-271-8/+8
| | | | | | | | | | | | | | There's no reason to lock ourselves to int in the API when some of the backend could handle floating point blur radii. Reviewed-by: Bjørn Erik Nilsen
* | Options on how to get a pixmap from an effect sourceGunnar Sletta2009-10-271-5/+17
| | | | | | | | | | | | Usable for future optimizations. Reviewed-by: Samuel
* | Merge branch '4.6' of git@scm.dev.nokia.troll.no:qt/qt-graphics-team into 4.6Gunnar Sletta2009-10-261-2/+6
|\ \
| * | Made sure we invalidate the cache when the effect rect changes.Samuel Rødal2009-10-261-2/+6
| |/ | | | | | | | | | | | | When blurring and the blur radius increases we need a bigger effect rect to do within-pixmap-bounds filtering. Reviewed-by: Bjørn Erik Nilsen
* | Removed pixelize, bloom and grayscale filterGunnar Sletta2009-10-231-449/+4
|/ | | | | | | | | | | | | | | | | This is new API and we don't want to add several items that are not strictly needed. This is a new set of features and we can grow them once we have more input from users on what is needed. The Bloom filter was added based on input from designers, but is not implemented according to how designers think of blook, so the effect doesn't meet the requirements. The Grayscale filter is functionally a duplicate of the colorize filter and is therefore not needed. The Pixelize filter has no genuine usecase. Reviewed-by: Samuel
* Added caching of graphics effect source pixmaps to speed up effects.Samuel Rødal2009-10-221-1/+18
| | | | | | | If an effect is applied repeatedly on the same source, just with varying parameters, we can save a lot by caching the source pixmaps. Reviewed-by: Bjørn Erik Nilsen
* CompileEskil Abrahamsen Blomfeldt2009-10-151-1/+1
| | | | | | There's no implicit conversion from QPixmap to QImage Reviewed-by: Gunnar
* Optimized bloom graphics effect implementation.Samuel Rødal2009-10-141-9/+13
| | | | | | | Avoid doing so many conversions by operating on raster pixmaps, and by using INV_PREMUL/PREMUL instead of converting to ARGB32. Reviewed-by: Gunnar Sletta
* Fixed wrong use of graphics effects for pixmap graphics items.Samuel Rødal2009-10-141-27/+7
| | | | | | | | | | | The blur, drop shadow, and bloom graphics effects are scale dependent, since they have radius and offset (in the case of drop shadow) parameters that are specified in device coordinates. Thus, we can't apply the effect in logical coordinates and scale up, and need to always use the device coordinate path for these effects. The opacity and grayscale effects still use the logical coordinate optimization. Reviewed-by: Gunnar Sletta
* Fix compilation with -pedanticDavid Faure2009-10-071-1/+1
| | | | | Merge-request: 1716 Reviewed-by: Thiago Macieira <thiago.macieira@nokia.com>
* Doc: Remaining pieces of the Graphics effect documentation.Bjørn Erik Nilsen2009-09-301-0/+21
|
* Added QGraphicsBloomEffect::blurHint.Bjørn Erik Nilsen2009-09-301-0/+34
| | | | | | | This allows the user to control whether to use a fast dynamic blur or a static high quality blur. Reviewed-by: Samuel
* Add Qt::RenderHint to control rendering operations.Bjørn Erik Nilsen2009-09-301-25/+11
| | | | | | | | | | | We need a way to control various rendering operations. For example, whether quality is more important than performance, or the other way around. This change also replaces occurences of QPixmapFilter/QGraphicsEffect::BlurHint (introduced in 1a431e850893b6b162c833f4f148f090e2427dda) with Qt::RenderHint. Reviewed-by: Samuel
* Readd QGraphicsBloomEffect.Bjørn Erik Nilsen2009-09-301-0/+178
| | | | | | | | This effect was removed in 1c9a28ea64cc53e61a64644dc5a4ff121b475bc5, but has now been readded on request from a couple of customers. Andreas also agreed we should provide this effect. Reviewed-by: Andreas
* Added BlurType to blur graphics effect API.Samuel Rødal2009-09-241-2/+50
| | | | | | | | This lets the user control whether to use a fast dynamic blur when animating the radius of the blur for example, or to use a static high quality blur for one-time or constant radius blurring. Reviewed-by: Gunnar Sletta
* Made QGraphicsBlurEffect use the high blur quality setting.Samuel Rødal2009-09-151-0/+2
| | | | | | | This greatly increases the blur quality in the OpenGL implementation, and doesn't affect the performance of the raster implementation. Reviewed-by: Bjørn Erik Nilsen
* doc: Fixed some qdoc errors.Martin Smith2009-09-151-0/+12
|
* Add filter strength to QGraphics[Colorize,Grayscale]Effect.Ariya Hidayat2009-09-141-0/+63
| | | | | Autotest: included Reviewed-by: Bjørn Erik Nilsen
* Update license headers again.Jason McDonald2009-09-091-4/+4
| | | | Reviewed-by: Trust Me
* Make QGraphicsShaderEffect private API for 4.6Rhys Weatherley2009-09-061-1/+0
| | | | | | | The custom shader code in the OpenGL2 paint engine needs time to mature before we make this official public API. Reviewed-by: trustme
* doc: Fixed several qdoc errors.Martin Smith2009-09-021-1/+2
| | | | That's the last of them... for now.
* Fix rounding bug in QGraphicsOpacityEffect.Bjørn Erik Nilsen2009-09-011-4/+5
| | | | The pixmap was painted at wrong offset.