| Commit message (Collapse) | Author | Age | Files | Lines |
|\ |
|
| |
| |
| |
| |
| | |
Task-number: QTBUG-7399
Reviewed-By: TrustMe
|
|/
|
|
|
|
|
|
|
|
|
| |
The QGLPixmapData used default bind options, which means
that the pixmap is always flipped up-side-down and
rendered with flipping. The opaque pixmaps were
uploaded unflipped which caused the bug. Ideally we do not
want pixmap flipping so change the default in gl pixmaps and
tag it accordingly.
Reviewed-by: Samuel
|
|
|
|
|
|
|
|
| |
Using renderPixmap() with scenes that contained textures might not work
due to the wrong texture format being used under certain circumstances.
Task-number: QTBUG-7213
Reviewed-by: Gunnar
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Qt used to store the GL extensions a particular implementation supported
in a global cache, which was initialized once and never updated.
This could cause problems because different types of context might
support different kinds of extensions (e.g. the difference between
sw and hw contexts). With this patch, the GL extensions are cached
and updated within each QGLContext. It also makes the extension
initialization lazy, which saves application initialization costs for
embedded platforms.
The patch introduces a internal cross platform QGLTemporaryContext
class that is used to create a light-weight GL context without going
via QGLWidget and friends (QWS and WinCE still have QGLWidget fallbacks
for now).
Reviewed-by: Kim
Reviewed-by: Samuel
|
|
|
|
|
|
|
|
| |
We need to clobber the vertex attribute pointers _before_ we call
setState() to regenerate the clip, or we'll use invalid vertex
pointers when writing the clip.
Reviewed-by: Paul
|
|\
| |
| |
| |
| | |
Conflicts:
dist/changes-4.6.1
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Task: ed2a03b3bc85be056eca87928d18a746faa07bca
Reviewed-by: Trond
Commit ed2a03b3bc85be056eca87928d18a746faa07bca removed all QuickDraw
code and made QPixmap::macQDHandle() return 0 in all cases.
Unfortunately QGLWidget::renderPixmap() depended on macQDHandle
returning a valid handle, causing it to break.
Fix this by inserting the macQDHandle implementation were we would
call macQDHandle before. This is the only place in Qt where macQDHandle
is used.
|
| |\
| | |
| | |
| | |
| | | |
Conflicts:
src/multimedia/audio/qaudioformat.cpp
|
| |\ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
4.6-integration
* '4.6' of scm.dev.nokia.troll.no:qt/oslo-staging-1:
QIODevice: Fix readAll()
Temporary hackiesh solution to prevent BOM in the xml data.
Fixed qxmlstream autotest when using shadow builds.
Attempt at readding the capital P headers for Phonon
Remove special Phonon processing from syncqt.
Use the lowercase/shortname.h headers for Phonon includes
Fixes a crash when setting focus on a widget with a focus proxy.
Update copyright year to 2010
doc: Clarified activeSubControls and subControls.
Remove warning "statement with no effect"
doc: Clarified that .lnk files are System files on Windows.
|
| | | |
| | | |
| | | |
| | | | |
Reviewed-by: Trust Me
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
QGLPixmapData::toImage() called qt_gl_read_texture() which didn't take
into account that the texture was in a premultiplied format.
Task-number: QTBUG-7190
Reviewed-by: Trond
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The text was blurry because it wasn't pixel aligned. Fixed by
using nearest-neighbour texture filtering when using only
translations on the painter.
Reviewed-by: Trond
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Fixed bug where drawing subpixel antialiased glyphs on a
translucent surface would cause all the pixels in the glyphs'
bounding box to become opaque.
Task-number: QTBUG-7190
Reviewed-by: Trond
|
| |_|/
|/| |
| | |
| | |
| | |
| | |
| | |
| | | |
This removes a lot of unnecessary GL state changes resulting in an
18% performance boost on desktop and 5% on SGX for the 25920 3x3
solid rectangle test case.
Reviewed-By: Samuel
|
| | |
| | |
| | |
| | |
| | | |
Task-number: QTBUG-7203
Reviewed-by: Samuel
|
| | |
| | |
| | |
| | | |
Reviewed-by: TrustMe
|
|/ /
| |
| |
| |
| |
| | |
This is already done in the QGLWidget constructor.
Reviewed-by: Kim
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We don't add new public methods in patch releases.
This reverts commit 2b4d3391fd922dfc5ac28815bbd5f36c4041b658.
This patch also fixes the paint engine to use glUniformMatrix3fv
directly now it has been removed from 4.6. It is a 3 line change.
Reviewed-By: Samuel
|
| |
| |
| |
| |
| |
| |
| | |
Exchanged the temporary QGLWidget with a lightweight internal class.
Measured on a device it can be upto 20 ms faster to construct.
Reviewed-by: Tom Cooksey
|
| |
| |
| |
| |
| |
| | |
..and replace it with a much lighter, internal QGLTempContext.
Reviewed-by: Samuel
|
| | |
|
| |
| |
| |
| | |
Reviewed-By: Samuel
|
| |
| |
| |
| |
| | |
Task-number: QT-2600
Reviewed-by: Samuel
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When we're rendering text, the glyphs need to be aligned to the
pixel grid otherwise we get strange artifacts. Normally text is
drawn at integer coordinates, however it is still possible to
have a transform which translates by a non-integer offset. This
patch adds a flag to the engine which can be used to snap any
translate to the pixel grid.
Task-number: QTBUG-7094
Reviewed-By: Kim
|
| |
| |
| |
| | |
Reviewed-By: Trustme
|
| |
| |
| |
| |
| | |
Merge-request: 412
Reviewed-by: Tom Cooksey <thomas.cooksey@nokia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Fall back and use the GL 1 engine for the renderText() functions.
Getting it to work with the GL 2 engine is a futile effort.
Making it work with renderPixmap() in the GL 2 engine is not possible
at all, since software contexts in general do not support shader
programs.
Task-number: QTBUG-5002, QTBUG-6931
Reviewed-by: Kim
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Now that the shader manager takes care of enabling/disabling the
vertex attribute arrays for us, the GL2 paint engine doesn't have
to do it. This reduces GL state changes within the paint engine
and provides significant performance improvements. For a given test
case (25,000 3x3px solid rects), the improvement is 67% on desktop
(nVidia) and 9% on embedded (SGX).
Reviewed-By: Kim
|
|/
|
|
|
|
|
|
|
|
|
|
|
| |
The GL2 engine (and probably Qt/3D) needs to track which vertex
attribute arrays are currently enabled and which are disabled. As
this is per-context state, the logical place to track this is in the
context and not in the paint engine.
This patch also makes the GL2 engine's shader manager enable/disable
the appropriate attribute arrays for a given shader program when it
is used.
Reviewed-By: Kim
|
|
|
|
|
|
|
| |
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
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|