| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
Updated version of LGPL and FDL licenseheaders.
Apply release phase licenseheaders for all source files.
Reviewed-by: Trust Me
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QNativeImageHandleProvider is a thin interface consisting of get()
and release() functions. Pixmaps constructed with such a provider
will call these functions to acquire and release a native handle,
e.g. a CFbsBitmap or RSgImage pointer in case of Symbian. The behavior
is largely similar to constructing pixmaps via fromSymbianCFbsBitmap
or fromSymbianRSgImage, with the exception of pixmap hibernation:
release() (and subsequently get()) is guaranteed to be called also
in case of hibernation, allowing more fine-grained tracking of
the usage and lifetime of image data.
Task-number: QT-4632
Reviewed-by: Jani Hautakangas
|
|
|
|
|
|
|
|
|
|
|
| |
Enable readback of pixel data for pixmaps that are constructed directly
from a VGImage. These do not have any backing data in main memory
(i.e. 'source' is null), however certain operations, like toImage(),
fill(), or painting into the pixmap do not work without it. With this
patch the data is read back via vgGetImageSubData when needed.
Task-number: QT-4669
Reviewed-by: Jani Hautakangas
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Similarly to QS60PixmapData, that is used on raster, QVGPixmapData
is also backed by a CFbsBitmap from now on (at least when it makes
sense to do so). This allows copy-less bitmap handle duplication in
from- and toSymbianCFbsBitmap() in case of certain image formats,
reduces local heap usage and improves performance with the s60 style
due to a reduced number of pixel data copies.
Task-number: QT-2505
Reviewed-by: Jason Barron
Reviewed-by: Jani Hautakangas
|
|
|
|
| |
Reviewed-by: Trust Me
|
|
|
|
|
|
|
| |
Functions were accidentally thought to be in private scope.
Renaming broke BC.
Reviewed-by: Jason Barron
|
|
|
|
|
|
|
|
|
|
| |
Use vgWritePixels, if possible, in case where VGImage
for QPixmap can't be allocated due to low GPU memory
situation. This patch also renames some VG paint engine
internal functions to clarify their purpose.
Task-number: QT-3589
Reviewed-by: Jason Barron
|
|
|
|
|
|
|
| |
QImage 'convertInPlace' uses less memory than 'convertToFormat' version.
Task-number: QT-3710
Reviewed-by: Jason Barron
|
|
|
|
| |
Reviewed-by: Trust Me
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Some OpenVG GPU's have limitations on the amount of memory
available to create VGImage's. When the memory runs out,
vgCreateImage() will fail.
This change introduces QVGImagePool, which keeps track of all
QVGPixmapData image allocations and ejects least-recently-used
pixmaps when GPU memory is exhausted.
Task-number: QT-2554
Reviewed-by: trustme
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Under S60, Qt will destroy the window surfaces of an application that
goes into the background, which frees up EGL surface objects. But the
VGImage's for pixmaps, and the EGLContext, were still using GPU memory.
This change keeps track of the number of widgets / window surfaces that
are in use and then calls hibernate() on all QVGPixmapData objects when
it goes to zero. Once all the VGImage's are destroyed, the EGLContext
should also be destroyed.
Task-number: QT-2555
Reviewed-by: Sarah Smith
|
|
|
|
|
|
|
|
|
| |
When a pixmap's contents change in QVGPixmapData, only recreate
the VGImage in the GPU if the size is different than before.
This should help reduce GPU memory fragmentation.
Task-number: QT-2504
Reviewed-by: Sarah Smith
|
|
|
|
|
|
|
|
| |
Custom graphics systems, may want to inherit from QVGPixmapData to
implement alternative pixmap management strategies. We make toVGImage()
overridable and the data members protected to support this.
Reviewed-by: Sarah Smith
|
|
|
|
|
|
| |
QPixmap::copy() now returns a pixmap with the same pixmap backend.
Reviewed-by: Gunnar Sletta
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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: Trust Me
|
|
|
|
| |
Reviewed-by: Trust Me
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|/
|
|
|
|
| |
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.
|
|
This change also moves the EGL support classes from QtOpenGL to QtGui
so they can be shared between OpenGL and OpenVG.
|