| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This change is in response to the review for b063135, but was missed
from that patch.
Reviewed-By: Kim
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* Move most of drawPixmaps to private
* Move most of stroke to private
* Remove dead code: context()
* Make optimiseForBrushTransform use xform type
* Use GLuint for uniform location
* Rename lastTexture -> lastTextureUsed
* Move qopengl2paintengine_cleanup_vectorpath to private
* Re-ordered declarations in header
* Remove dead temporaryTransform
* Rename use_system_clip -> useSystemClip
Reviewed-By: Kim
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The old code set and unset a temporary matrix for every draw command
when doing aliased rendering. Instead, we just use a flag to indicate
that updateMatrix() should add the offset. This means the offset is
added only once. When doing lots of small rendering operations on a
(non-multisampled) QGLWidget, this gives up to 72% performance boost
on the SGX.
Reviewed-By: Kim
|
| |\ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
4.6-integration
* '4.6' of scm.dev.nokia.troll.no:qt/oslo-staging-2:
revert f36fb8b2b63b3734cc2bd66b329ca4fef1204845
Read QWS_SIZE from layer rather than screen
Get rid of no_cast_from_ascii warning
Docs: Amendments to latest changes to QImageReader docs.
images: Document QImageReader::loopCount behaviour for infinite loops
gif: Add unit test for QImageReader::size calls
gif: 10% speedup on microbenchmark on QImageReader
png: Avoid calling QImage::scanLine(int) from within a loop
QImageReader: Avoid errorString creation in the normal case
Fix text rendering on GL2 paint engine
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
If you draw with a brush, then draw a pixmap, then draw with the
same brush, the GL2 engine wouldn't update the fragment shader to
use the brush. This is because it detected the brush hadn't changed
and so didn't need updating. To fix this, we now set the current
brush to noBrush when drawing an image/pixmap so the engine knows
it needs to update the GL state for the brush.
Reviewed-By: Kim
|
| |\ \ \
| | |/ /
| |/| /
| | |/
| | | |
Conflicts:
tests/benchmarks/benchmarks.pro
|
| | |
| | |
| | |
| | |
| | | |
Task-number: QTBUG-6936
Reviewed-by: Julian de Bhal
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When I added new fields to QGLFormat in commit 592dc597, I forgot
to update operator==. It has now been fixed and the auto-test
updated.
Reviewed-by: Trond
|
| | |
| | |
| | |
| | |
| | | |
Task-number: QTBUG-4438, QT-2662, QT-2663
Reviewed-by: Tom
|
| | | |
|
|\ \ \
| |/ /
| | |
| | |
| | |
| | |
| | | |
Conflicts:
examples/webkit/fancybrowser/main.cpp
src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
tools/assistant/tools/assistant/bookmarkmanager.cpp
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
QGraphicsView based applications will set a new transform for every
item before it's painted. This leads to lots of updates to the PMV
matrix. So switching to a 3x3 rather than a 4x4 gives us less data
to pass to GL for each QGraphicsItem which gets rendered. It also
means the vertex shader is more efficient. However, this patch only
gives a maximum 2.5% speed improvement on the SGX, which seems to be
only due to the faster vertex shader rather than the reduced amount
of data we pass to GL.
Reviewed-By: Kim
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The shader manager will now a) not seg-fault and b) actually tell you
which shader has the error.
Reviewed-By: Kim
|
| | |
| | |
| | |
| | | |
Reviewed-By: Rhys Weatherley
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
In the triangulating stroker, the last point was being duplicated in
dashed paths. But because QDataBuffer::add() takes a ref to a float
rather than a float, it would resize the data buffer and then try to
fetch the values out of a pointer to the original buffer memory.
This change copies the values into temporary variables before
resizing the array.
Task-number: QTBUG-6045
Reviewed-by: Sarah Smith
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Previous code was aligning lines on a 3-byte boundary.
Task-number: QTBUG-6902
Reviewed-by: Julian de Bhal
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
If the same brush is used over and over again, this gives a
huge performance boost (measured to be 25% faster on desktop
and 73% faster on SGX).
Reviewed-By: Samuel Rødal
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Using a QPainter on a QGLFramebufferObject will not return the
GL context to its original conditions, especially with the OpenGL2
paint engine. Update the docs to make this clearer.
Task-number: QTBUG-6712
Reviewed-by: Daniel Pope
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Also document the depth testing conditions for the 2D and 3D
versions of the function.
Task-number: QTBUG-5041
Reviewed-by: Daniel Pope
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When a QGLWidget is re-parented, it's native X11 window usually
gets destroyed and re-created. This also happens when you set a
window attribute or flag. On EGL, we must destroy the surface
for the window before destroying the window itself, otherwise
we can leak the surface. This also fixes lots of BadDrawable
errors when running the autotests (which were due to surface
leaks!).
Reviewed-By: TrustMe
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
If the QGLWidget's QGLFormat says it should have an alpha
channel, try to find an ARGB Visual.
Reviewed-By: Trond
Task-number: QT-2602
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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
|
| | |
| | |
| | |
| | | |
Reviewed-by: Gunnar
|
| | |
| | |
| | |
| | | |
Reviewed-by: Gunnar
|
| | | |
|
| | |
| | |
| | |
| | | |
The result of a function returning qint64 was stored in an int.
|
| | |
| | |
| | |
| | |
| | | |
Because of numerical inaccuracy, the interpolation factor could
exceed 1 by a small amount which would cause an assert failure.
|
|\ \ \
| |/ /
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/corelib/io/qfsfileengine.cpp
src/network/access/qnetworkrequest.cpp
tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We want to avoid any unnecessary mallocs when checking GL/GLX
extensions. The GL extension string can be quite long and contain
several hundred extensions. The old code forced one malloc for each
extension + 1 extra malloc for the extension string itself when
it was copied into the QByteArray.
Reviewed-by: Kim
|
| | |
| | |
| | |
| | | |
Reviewed-by: Eskil
|
| |\ \ |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This is a platform regression and should never have been there in the
first place. Having this as the default format on embedded devices
may drop the framerates with as much as 30% on selected HW.
Reviewed-by: Tom Cooksey
|
| | |\ \
| | | | |
| | | | |
| | | | |
| | | | | |
Conflicts:
src/s60installs/bwins/QtGuiu.def
|
| | | |\ \ |
|
| |/ / / /
| | | | |
| | | | |
| | | | | |
Reviewed-by: Eskil
|
| |\ \ \ \ |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Reviewed-by: trustme
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
The "vertical flip" flag in the PVR format is the inverse of the
"inverted y" state that we use in Qt.
Reviewed-by: trustme
|
| | | |/ /
| | |/| |
| | | | |
| | | | | |
Reviewed-by: trustme
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
OpenGL/ES requires that the internal and external formats be the
same when calling glTexImage2D(). This caused problems with
devices that had the GL_EXT_bgra extension.
This change makes the formats the same just before the upload and
also makes sure that the pixel type is GL_UNSIGNED_BYTE when
GL_BGRA is used. No change for desktop systems.
Reviewed-by: Donald Carr
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The auto-detect logic was looking for fragment programs to check
for OpenGL2 support. It should have been looking for fragment shaders.
Task-number: QTBUG-5638
Reviewed-by: Sarah Smith
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The QGLContext::bindTexture(QString) function has been augmented
with support for ETC1, PVRTC2, and PVRTC4 compressed textures,
in addition to the existing DDS support.
The QGLPixmapData class has also been modified to recognize
compressed texture formats in fromFile() and fromData().
This change also fixes a bug in bindTexture() that prevented
the same compressed texture file from being bound in multiple
contexts. There is now a separate file cache for each context group.
Task-number: QT-2547
Reviewed-by: Trond
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Also check for existing QEglContext before creating a new one and
leaking a context.
Reviewed-by: TrustMe
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The format and internal_format parameters to glTexImage2D need to always
match on OpenGL ES 2.0.
Reviewed-by: Tom Cooksey
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Reviewed-by: Trond
Reviewed-by: Tom
|
|\ \ \ \ \
| | |_|/ /
| |/| | | |
|
| |\ \ \ \
| | |_|/ /
| |/| | /
| | | |/
| | |/| |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Intel Q45/Q43 Express Chipset has problems with glColor4ub()
not updating GL_CURRENT_COLOR correctly. Replace all references
with calls to glColor4f() instead as it is more likely to be
implemented correctly on all chipsets.
Task-number: QTBUG-6217
Reviewed-by: Sarah Smith
|