| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|