| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
| |
This fixes an "off by 1" bug in screen compositing with OpenVG
that left lines all over the background when windows were moved.
Task-number: QT-2322
Reviewed-by: Sarah Smith
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, the drop shadow was colorizing the incoming
image and then blurring the colorized version. This change
first blurs the image to an alpha-only VGImage and then uses
that VGImage as a stencil to draw the drop shadow color.
This way, there is only 1 filter step and a draw instead of
2 filter steps and a draw. The result is to make the performance
of the drop shadow filter almost identical to the blur filter.
Reviewed-by: trustme
|
|\ |
|
| |
| |
| |
| |
| | |
Task-number: QT-2016
Reviewed-by: trustme
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Custom window surfaces, graphics systems, and Qt/Embedded screen
drivers often need to access QPaintDevice::metric(), but it is
protected. Hence the growing number of friends in QWidget and
QImage. The qt_paint_device_metric() function provides a more
future-proof approach that doesn't require lots of friends.
Reviewed-by: Gunnar
|
| |
| |
| |
| |
| |
| |
| |
| | |
If the scissor is being used to clip instead of the mask, use the
bounding rectangle of the clip path if it cannot be handled as a
simple rectangle.
Reviewed-by: trustme
|
| |
| |
| |
| |
| |
| |
| |
| | |
The EGL implementation used in S60/NGA for OpenVG does not
return a configuration with alpha masking unless it is
explicitly requested.
Reviewed-by: Julian de Bhal
|
| |
| |
| |
| |
| |
| |
| | |
Best performance will be acheived with OpaqueHint and drawing
the full pixmap rather than sub-regions.
Reviewed-by: trustme
|
|/
|
|
|
|
| |
QPixmap::copy() now returns a pixmap with the same pixmap backend.
Reviewed-by: Gunnar Sletta
|
|
|
|
|
|
|
|
|
|
|
|
| |
It wasn't possible for the paint engine to override the drop
shadow filter because QPixmapDropShadowFilter::draw() was not
asking for an engine-specific filter object.
Also, change the OpenVG filter to use vgGaussianBlur() instead of
vgConvolve(), and draw the original image on top of the shadow.
Task-number: QTBUG-4583
Reviewed-by: trustme
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The QPF implementation of alphaMapForGlyph() was returning
color values of RGBA = (a, a, a, 255) instead of (0, 0, 0, a),
which was inconsistent with all the other font engines.
This inconsistency caused some QPF-specific workarounds in the
OpenGL and OpenVG paint engines. This change removes the workarounds
and makes QPF generate the right colors from the start. Paint
engines that ignore the color table or which don't use the
alphaMapForGlyph() function (e.g. raster) are not affected.
Reviewed-by: Paul
|
|
|
|
| |
Reviewed-by: Sarah Smith
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QtOpenVG was doing a lot of housekeeping to avoid having to
switch EGL contexts if the same surface was used over and over.
This housekeeping really belongs in the QEgl layer so that
QtOpenGL could potentially use it as well.
This change also adds some overrides for makeCurrent(),
swapBuffers(), and destroySurface() that take an EGLSurface
directly. This is the first step in separating EGL surface
management from context management.
Reviewed-by: Sarah Smith
|
|
|
|
|
|
|
|
|
|
| |
The multitouch/dials example was displaying rendering artifacts
on the dials in the default style. This was due to incorrect
VGPath construction when sizeof(qreal) == sizeof(VGfloat).
It was adding two VG_CUBIC_TO_ABS elements per cubic instead of one.
Task-number: QT-2035
Reviewed-by: Sarah Smith
|
|
|
|
|
|
|
|
|
| |
We can delay calling ensureContext() since it will happen when painting
begins anyway. There is a chance that we can get to this function when
a window is being hidden and if this is the first thing that happens in
the application, there is no need to call ensureContext() yet.
Reviewed-by: Rhys Weatherley
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We need a way to support converion to and from multiple native pixmap
types from multiple pixmap backends. Instead of adding more virtual
functions to QPixmapData, make the existing one more generic but pass
an opaque pointer and a type and do some internal casting.
Currently this function is Symbian only, but could easily be extended
to work on other platforms.
Reviewed-by: Aleksandar Babic
Reviewed-by: Jani Hautakangas
|
|
|
|
| |
Reviewed-by: trustme
|
|
|
|
|
|
|
|
| |
Previously rounded rectangles were converted into a QVectorPath
and then a VGPath. This change creates the VGPath directly without
an intermediate step and was made possible by change dd3e4308.
Reviewed-by: trustme
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This enables us to convert from and to new Symbian type of
graphics resource, namely SgImage. This only supported with
the OpenVG graphics system.
On other graphics systems this will return null QPixmap.
Conflicts:
src/corelib/global/qglobal.h
src/gui/image/qpixmap.h
src/gui/image/qpixmap_s60.cpp
Reviewed-by: Jason Barron
|
|
|
|
| |
Reviewed-by: trustme
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Engine-specific pixmap filters were being created, used, and destroyed
every time draw() was called on QPixmapColorizeFilter, QPixmapBlurFilter,
and so on. This had a heavy performance penalty and made it difficult
for the GL paint engine to cache shaders from one request to the next.
A generic filter can request an engine-specific filter that matches its
parameters. The engine can either create a new one or return a previously
allocated filter object.
Ownership of engine-specific pixmap filter objects is moved to the
paint engine itself.
Reviewed-by: Andrew den Exter
Reviewed-by: Michael Brasser
Reviewed-by: Michael Goddard
Reviewed-by: Sarah Smith
|
|
|
|
|
|
|
|
| |
The reference count was reducing down to zero during paint engine
cleanup when we weren't ready to destroy the context. Artificially
increase it to prevent the early context destroy.
Reviewed-by: Sarah Smith
|
|
|
|
| |
Reviewed-by: Trust Me
|
|
|
|
| |
Reviewed-by: Trust Me
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Conflicts:
demos/boxes/glshaders.cpp
demos/boxes/vector.h
demos/embedded/fluidlauncher/pictureflow.cpp
demos/embedded/fluidlauncher/pictureflow.h
doc/src/desktop-integration.qdoc
doc/src/distributingqt.qdoc
doc/src/examples-overview.qdoc
doc/src/examples.qdoc
doc/src/frameworks-technologies/dbus-adaptors.qdoc
doc/src/geometry.qdoc
doc/src/groups.qdoc
doc/src/objecttrees.qdoc
doc/src/platform-notes.qdoc
doc/src/plugins-howto.qdoc
doc/src/qt3support.qdoc
doc/src/qtdbus.qdoc
doc/src/qtdesigner.qdoc
doc/src/qtgui.qdoc
doc/src/qtmain.qdoc
doc/src/qtopengl.qdoc
doc/src/qtsvg.qdoc
doc/src/qtuiloader.qdoc
doc/src/qundo.qdoc
doc/src/richtext.qdoc
doc/src/topics.qdoc
src/corelib/tools/qdumper.cpp
src/gui/embedded/qkbdpc101_qws.cpp
src/gui/embedded/qkbdsl5000_qws.cpp
src/gui/embedded/qkbdusb_qws.cpp
src/gui/embedded/qkbdvr41xx_qws.cpp
src/gui/embedded/qkbdyopy_qws.cpp
src/gui/embedded/qmousebus_qws.cpp
src/gui/embedded/qmousevr41xx_qws.cpp
src/gui/embedded/qmouseyopy_qws.cpp
src/gui/painting/qpaintengine_d3d.cpp
src/gui/painting/qwindowsurface_d3d.cpp
src/opengl/gl2paintengineex/glgc_shader_source.h
src/opengl/gl2paintengineex/qglpexshadermanager.cpp
src/opengl/gl2paintengineex/qglpexshadermanager_p.h
src/opengl/gl2paintengineex/qglshader.cpp
src/opengl/gl2paintengineex/qglshader_p.h
src/opengl/util/fragmentprograms_p.h
src/plugins/kbddrivers/linuxis/linuxiskbdhandler.cpp
src/plugins/mousedrivers/linuxis/linuxismousehandler.cpp
src/script/parser/qscript.g
src/script/qscriptarray_p.h
src/script/qscriptasm_p.h
src/script/qscriptbuffer_p.h
src/script/qscriptclass.cpp
src/script/qscriptclassdata_p.h
src/script/qscriptcompiler.cpp
src/script/qscriptcompiler_p.h
src/script/qscriptcontext.cpp
src/script/qscriptcontext_p.cpp
src/script/qscriptcontext_p.h
src/script/qscriptcontextfwd_p.h
src/script/qscriptecmaarray.cpp
src/script/qscriptecmaarray_p.h
src/script/qscriptecmaboolean.cpp
src/script/qscriptecmacore.cpp
src/script/qscriptecmadate.cpp
src/script/qscriptecmadate_p.h
src/script/qscriptecmaerror.cpp
src/script/qscriptecmaerror_p.h
src/script/qscriptecmafunction.cpp
src/script/qscriptecmafunction_p.h
src/script/qscriptecmaglobal.cpp
src/script/qscriptecmaglobal_p.h
src/script/qscriptecmamath.cpp
src/script/qscriptecmamath_p.h
src/script/qscriptecmanumber.cpp
src/script/qscriptecmanumber_p.h
src/script/qscriptecmaobject.cpp
src/script/qscriptecmaobject_p.h
src/script/qscriptecmaregexp.cpp
src/script/qscriptecmaregexp_p.h
src/script/qscriptecmastring.cpp
src/script/qscriptecmastring_p.h
src/script/qscriptengine.cpp
src/script/qscriptengine_p.cpp
src/script/qscriptengine_p.h
src/script/qscriptenginefwd_p.h
src/script/qscriptextenumeration.cpp
src/script/qscriptextenumeration_p.h
src/script/qscriptextqobject.cpp
src/script/qscriptextqobject_p.h
src/script/qscriptextvariant.cpp
src/script/qscriptfunction.cpp
src/script/qscriptfunction_p.h
src/script/qscriptgc_p.h
src/script/qscriptmember_p.h
src/script/qscriptobject_p.h
src/script/qscriptprettypretty.cpp
src/script/qscriptprettypretty_p.h
src/script/qscriptvalue.cpp
src/script/qscriptvalueimpl.cpp
src/script/qscriptvalueimpl_p.h
src/script/qscriptvalueimplfwd_p.h
src/script/qscriptvalueiteratorimpl.cpp
src/script/qscriptxmlgenerator.cpp
src/script/qscriptxmlgenerator_p.h
tests/auto/linguist/lupdate/testdata/recursivescan/project.ui
tests/auto/linguist/lupdate/testdata/recursivescan/sub/finddialog.cpp
tests/auto/qkeyevent/tst_qkeyevent.cpp
tools/linguist/shared/cpp.cpp
|
|
|
|
|
|
|
| |
OpenVG window surfaces were leaking because the QVGEGLWindowSurfaceDirect
destructor was previously not cleaning up the EGLSurface object.
Reviewed-by: trustme
|
|
|
|
|
|
|
|
| |
Previously we were using QPaintEngine::syncState() which is not ideal
naming-wise, since it actually prepares for native painting instead of
syncing the painter's state to native state.
Reviewed-by: Trond
|
|
|
|
|
|
|
|
|
|
| |
TexturePattern brushes were sometimes turning all black with OpenVG.
This was due to the vgDestroyImage() destroying the cached VGImage
in the QVGPixmapData. We only need to use vgDestroyImage() if the
QPixmap is not backed up by a QVGPixmapData (bitmaps and pixmaps
from other paint engines).
Reviewed-by: Sarah Smith
|
|
|
|
| |
Reviewed-by: Sarah Smith
|
|
|
|
|
|
|
| |
After the latest round of changes to Q_DECLARE_PRIVATE to use
templates, we no longer need to call data() because Q_D() will
expand to d_func() which will always return a pointer to the actual
object instead of the scoped pointer.
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
doc/src/examples.qdoc
doc/src/plugins-howto.qdoc
doc/src/topics.qdoc
examples/phonon/musicplayer/mainwindow.cpp
src/3rdparty/freetype/src/base/ftobjs.c
src/corelib/global/qglobal.h
src/corelib/tools/qalgorithms.h
src/corelib/tools/qshareddata.cpp
src/corelib/tools/qsharedpointer.cpp
src/corelib/tools/tools.pri
src/corelib/xml/qxmlstream.h
src/gui/painting/painting.pri
src/gui/widgets/qdatetimeedit.cpp
tests/auto/qdesktopservices/qdesktopservices.pro
tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp
tests/auto/qtextcodec/test/test.pro
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
On the Mac, it means "-framework ApplicationServices -framework Carbon
-framework AppKit" are no longer part of the default LIBS in Qt
applications. This required a lot of fixes where we used Mac-specific
code in Qt.
On X11, it was very straightforward, because we apparently use very
little of X11 outside QtGui.
I haven't changed the Windows-specific LIBS paths, because I don't
know how Windows behaves. Windows has DLLs, but it links to static
"import" libraries. So is it static linking or dynamic linking?
Reviewed-By: Marius Storm-Olsen
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
examples/opengl/samplebuffers/glwidget.cpp
src/corelib/io/qfsfileengine_unix.cpp
src/corelib/kernel/qobject.cpp
src/corelib/tools/qsharedpointer.cpp
src/gui/gui.pro
tests/auto/qhttp/tst_qhttp.cpp
tests/auto/qkeyevent/tst_qkeyevent.cpp
|
| |
| |
| |
| | |
Reviewed-by: Trust Me
|
|\ \
| |/ |
|
| |
| |
| |
| |
| |
| |
| |
| | |
Custom OpenVG pixmap filters written by users will need to access
the VGImage form of a QPixmap. The qPixmapToVGImage() function
is provided for this purpose, as a private API.
Reviewed-by: Sarah Smith
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
configure.exe
qmake/Makefile.unix
qmake/generators/makefile.cpp
src/corelib/global/qglobal.h
src/corelib/kernel/kernel.pri
src/corelib/kernel/qcoreevent.cpp
src/corelib/kernel/qsharedmemory_unix.cpp
src/gui/graphicsview/qgraphicsscene.cpp
src/gui/kernel/qaction.cpp
src/gui/kernel/qaction.h
src/gui/kernel/qaction_p.h
src/gui/kernel/qapplication.cpp
src/gui/kernel/qapplication.h
src/gui/kernel/qwidget.cpp
src/gui/kernel/qwidget.h
src/gui/kernel/qwidget_mac.mm
src/gui/painting/qgraphicssystemfactory.cpp
src/gui/styles/qwindowsstyle.cpp
src/gui/text/qfontengine_qpf.cpp
src/gui/widgets/qabstractscrollarea_p.h
src/network/access/qnetworkaccessdebugpipebackend.cpp
src/network/socket/qlocalsocket_unix.cpp
src/network/socket/qnativesocketengine_p.h
src/network/socket/qnativesocketengine_unix.cpp
src/openvg/qpaintengine_vg.cpp
tests/auto/q3sqlcursor/tst_q3sqlcursor.cpp
tests/auto/qcssparser/qcssparser.pro
tests/auto/qdir/tst_qdir.cpp
tests/auto/qfile/tst_qfile.cpp
tests/auto/qobject/tst_qobject.cpp
tests/auto/qpathclipper/qpathclipper.pro
tests/auto/qprocess/tst_qprocess.cpp
tests/auto/qsettings/tst_qsettings.cpp
tests/auto/qsharedpointer/qsharedpointer.pro
tests/auto/qsqlquerymodel/qsqlquerymodel.pro
tests/auto/qsqlrelationaltablemodel/qsqlrelationaltablemodel.pro
tests/auto/qsqltablemodel/qsqltablemodel.pro
tests/auto/qsqlthread/qsqlthread.pro
tests/auto/qwidget/tst_qwidget.cpp
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If the QPainterPath contains a structure that looks like a simple
rectangle, then use the faster clip(QRect) function instead of a
full VGPath-based render call.
Task-number: QT-64
Reviewed-by: trustme
|
| |
| |
| |
| |
| |
| |
| |
| | |
This change should improve performance of single-rectangle clip regions
by avoiding the overhead of creating and intersecting QRegion objects.
Task-number: QT-64
Reviewed-by: trustme
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
"Special case: if the intersection of the system clip and the region
is a single rectangle, then use the scissor for clipping." It was
doing the intersection but then didn't use the intersection to test
for the single-rectangle case.
Task-number: QT-64
Reviewed-by: trustme
|
| |
| |
| |
| | |
Reviewed-by: trustme
|
| |
| |
| |
| | |
Do the same fix as with the OpenGL paint engine.
|
|/
|
|
|
|
| |
This header is included by the VG graphics system plugin and since that
exists in a different module, the header inclusion bug rears its ugly
head again and we need to workaround it by making it a system include.
|
|
|
|
|
|
|
| |
ShivaVG runs on top of OpenGL. Include the QMAKE_*_OPENGL flags
on the link line if it is needed by the OpenVG engine.
Reviewed-by: trustme
|
|
This change also moves the EGL support classes from QtOpenGL to QtGui
so they can be shared between OpenGL and OpenVG.
|