| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/3rdparty/webkit/VERSION
src/3rdparty/webkit/WebCore/ChangeLog
src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp
src/3rdparty/webkit/WebKit/qt/ChangeLog
src/gui/painting/qpainter.cpp
src/gui/painting/qtextureglyphcache.cpp
src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
src/opengl/gl2paintengineex/qtextureglyphcache_gl_p.h
src/s60installs/bwins/QtGuiu.def
src/s60installs/eabi/QtCoreu.def
src/s60installs/eabi/QtGuiu.def
src/s60installs/eabi/QtNetworku.def
src/s60installs/eabi/QtOpenVGu.def
tests/auto/qfontmetrics/tst_qfontmetrics.cpp
tools/linguist/lupdate/main.cpp
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The default GL_TEXTURE_MIN_FILTER is GL_NEAREST_MIPMAP_LINEAR, which
means you have to have mipmaps generated in order for it to produce
correct results. We don't use mipmaps when this particular path
is taken, so use texture filters that is in line with what we do in the
non-pixmap_to_texture path.
Task-number: QTBUG-11158
Reviewed-by: Kim
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Since the paint engine now transforms the prerendered glyphs instead of
rendering transformed glyphs as paths, we need to turn on texture
filtering to avoid antialiasing artifacts. In order to do this, we also
need to pad the glyphs in the glyph cache, otherwise you will get
artifacts when sampling the area around the glyph's bounding rect (where
there might be other glyphs.) This done by adding a glyphPadding()
function to the cache which returns the number of pixels to pad between
each glyph.
Updated: This also fixes a general issue where some combinations of font
sizes and transformations will cause the engine to sample neighbouring
glyphs, so this has been backported to Qt 4.6.x.
Task-number: QTBUG-9706, QTBUG-11028
Reviewed-by: Tom
Conflicts:
src/gui/painting/qtextureglyphcache.cpp
src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
|
| |
| |
| |
| |
| | |
Merge-request: 2404
Reviewed-by: Trond
|
| |
| |
| |
| |
| |
| | |
The function is marked internal for now.
Reviewed-by: Gunnar
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
If you have two non-sharing GL contexts and try to draw the same
QPixmap in both of them, they will wind up competing for a spot in the
texture cache. Make the context group a part of the cache key to avoid
that.
Task-number: QT-3462
Reviewed-by: Kim
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Since the OpenGL2 paint engine supports transforming the prerendered
glyphs rather than rasterizing the glyphs with the transformation
applied, we don't need to recalculate the QStaticText layout whenever
the transformation changes. This means that we can do fast animated
transforms for QStaticText on this paint engine. A quick test yields
something like 100x speed-up on Windows. This also give visually
better results, as we previously would animate the hinting of the
glyphs, thus causing jittering.
The autotest has been updated to reflect the fact that drawText() and
drawStaticText() now go through identical paths on GL, also when
transforms are set on the painter. However, the scale was changed in
one test, because it was so great that drawText() would fall back to
paths. With QStaticText the idea is speed, so you'll get a poor, but
fast result instead, which is better than tricking people.
Reviewed-by: Samuel
|
| |
| |
| |
| | |
Reviewed-by: Gunnar
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2:
Wrong QGraphicsItem::childrenBoundingRect() when applying effects.
Fix a bug in QDirectFBPixmapData::fromImage
Replace memmove with memcpy
Fixed compilation of QtOpenGL.
Optimize initialization of QStaticText
|
| | |
| | |
| | |
| | | |
Reviewed-by: Eskil
|
|/ /
| |
| |
| |
| | |
Task-number: QTBUG-10611
Reviewed-by: joerg
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
demos/demos.pro
mkspecs/features/resources.prf
mkspecs/features/uic.prf
src/corelib/io/qurl.cpp
src/corelib/tools/qlocale_symbian.cpp
src/gui/graphicsview/qgraphicsscene.cpp
src/gui/graphicsview/qgraphicswidget_p.cpp
src/gui/graphicsview/qgraphicswidget_p.h
src/gui/util/qsystemtrayicon_win.cpp
src/multimedia/audio/qaudioinput.cpp
tests/auto/qhostinfo/qhostinfo.pro
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If you forward declare a shader function which takes a sampler as
argument, the shader program will fail to link on ATI cards under
Windows.
Task-number: QTBUG-10510
Reviewed-by: Trond
|
| |
| |
| |
| |
| |
| |
| |
| | |
There seems to be a driver bug that causes glTexSubImage2D() to not
align data correctly when uploading a GL_ALPHA texture.
Task-number: related to QTBUG-10510
Reviewed-by: Samuel
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When a pixmap is bound using the texture_from_pixmap extension we retain
a reference to the pixmap to stop us destroying it before swapBuffers()
or glFlush() is called. The references were not cleared out correctly
in the GL 1 engine.
Task-number: QTBUG-10529
Reviewed-by: Samuel
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The SGX chip has a limitation regarding FBOs in that it doesn't support
FBO sizes that are POT and less than 16 pixels in width/height.
Since the FBO we use in the GL glyph cache always mirrors the size
of the texture itself, we limit that instead to avoid creating
invalid FBOs.
Task-number: QTBUG-10645
Reviewed-by: Gunnar
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The workaround flags are put into the platform independent section
for now, since there might be a general need for these as we expand
our GL and GL ES usage. The workaround_needsFullClearOnEveryFrame flag
covers the case where you get a performance penalty on PowerVR hw
if all rendering buffers are not cleared. The
workaround_brokenFBOReadBack flag covers the case where copying pixels
from a texture (e.g. via glCopyTexSubImage2d()) bound in an FBO doesn't
work.
Task-number: QTBUG-10670
Reviewed-by: Gunnar
|
| |
| |
| |
| | |
Reviewed-by: Trond
|
| |
| |
| |
| | |
Reviewed-by: Kim
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2: (24 commits)
Stabilize tst_QColumnView::parentCurrentIndex
Really fix tst_QDockWidget::taskQTBUG_9758_undockedGeometry on Linux
Fix typos in Elastic Nodes example documentation.
Made paint engine texture drawing work in GL ES 2 and updated docs.
Opt out of visual-config size checks with extension
Fix off-by-one in text layouts and widget size hints on Mac
Stabilize tst_QDockWidget::taskQTBUG_9758_undockedGeometry
Mark QFileDialog::Options as a Q_FLAGS
fix tst_QDockWidget::taskQTBUG_9758_undockedGeometry on Linux
Fixed scrolling bugs in widget graphics effect backend.
Fixed source pixmap bug in widget graphics effect backend.
Fix crash with stylesheet if widget change style in the changeEvent
Fix textdrawing under GL on N900.
Fixed bug in QIODevice::read after first reading 0 bytes.
Fix auto-test failure on Mac/Linux/QWS.
Some EGL implementations does not return a EGLNativeDisplayType
Fixed the sizing of the dock area with fixed size dock widgets
QSortFilterProxyModel: Warning or assert failure
Performance issue with QGraphicsItem::ItemClipsChildrenToShape.
Fixes crash in QGraphicsItem::mouseMove for untransformable items.
...
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Now QGLWidget::drawTexture() can be used on OpenGL ES 2.0 when there's
an active painter.
Task-number: QTBUG-10420
Reviewed-by: Trond
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The driver in the N900 doesn't support glCopyTexSubImage
or glReadPixels for FBO's that have a GL_ALPHA or POT
color attachment. The ifdef'ed code in resize() was
a previous attempt to make this work which didn't.
We could have changed the texture to be GL_RGBA and changed
the texture size to be NPOT, but that would have wasted
precious GPU memory and would have been slower, so we
waste a bit of system memory instead, by having a QImage
copy along with the texture.
Reviewed-by: Eskil
Reviewed-by: Trond
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| | |
do not consume excessive amounts of memory, and so can still be reasonably kept
cached with the pixmap.
Saves 8K for every pixmaps drawn to on raster paint engine. Saves about 2K for other graphicssystems.
Task-number: QTBUG-10215
Reviewed-by: Gunnar
|
| |
| |
| |
| |
| |
| |
| | |
If the system supports an OpenGL version higher than what is
recognized by Qt, all the version flags up to 3.2 should be set.
Reviewed-by: Trond
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2:
Fix project file generation for MSVC 2010
Fix wrong translation and clip for the raster paint-engine on Mac
Return the correct library name in qt_gl_library_name for GLES*
qmake: remove useless evaluation of variables from VS project generators
Fix QT_NO_LIBRARY
Documentation for the Elastic Nodes example.
qmake: fix duplicate linker options in VS project files
Ensured that WA_InputMethodEnabled was set before FocusInEvent was sent.
qmake: fix duplicate compiler options in VS project files
Documentation for the Drag and Drop Robot example.
Fix crash in styles example when running with opengl graphicssystem
Fixed the sizehint for cols/rows in qtableview
QUrl: parsing of host name with an undercore.
Null pointer check
Revert "Try to use multisampled opengl graphicssystem on all platforms"
A small mistake when comparing the flag.
Add unit tests covering most of QVector's API.
Fix crash when CoreText fails to shape text for us
Fix crash when using opengl graphicssystem on desktop
Revert "Revert "Implement heightForWidth support for QTabWidget and QStackedLayout.""
|
| | |
| | |
| | |
| | | |
Reviewed-By: Gunnar
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When drawing text using glyphs, the shader manager will select the
"MaskFragmentShader" which requires a varying called "textureCoords"
which is used to sample the glyph from the glyph texture. That's
fine, except when you try to use one of the pattern brushes or a
texture brush, because the src pixel fragment shader snippets for
those brushes also sample from a texture (the brush texture) and name
the verying they use "textureCoords" too. This led to textureCoords
being defined twice, which in turn caused a shader compile error
which then casued the seg-fault. This patch simply renames the
varying used to pass the coordinates for the brush texture so it
doesn't conflict.
Reviewed-By: Kim
Task-Number: QTBUG-9522
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This reverts commit 5f63f95def838ce72af99dc697ecce092fe7eb69.
Fixes GL graphics system on Windows. With the patch, windows would pop
up as completely empty.
|
| |\ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2:
Add unit tests covering most of QVector's API.
Fix crash when CoreText fails to shape text for us
Fix crash when using opengl graphicssystem on desktop
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Reviewed-By: Eskil
Task-number: QTBUG-10225
|
|\ \ \ \
| |/ / /
|/| | /
| | |/
| |/|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
All EGL-related changes from 4.6 were discarded.
Conflicts:
src/gui/egl/egl.pri
src/gui/egl/qegl.cpp
src/gui/egl/qegl_p.h
src/gui/egl/qegl_stub.cpp
src/gui/egl/qeglproperties_p.h
src/gui/egl/qeglproperties_stub.cpp
src/gui/gui.pro
src/multimedia/multimedia/audio/qaudioinput_win32_p.h
src/s60installs/bwins/QtGuiu.def
src/s60installs/eabi/QtGuiu.def
|
| | |
| | |
| | |
| | |
| | | |
Task-number: QTBUG-7545
Reviewed-by: Kim
|
| |/
|/|
| |
| | |
Correct a typo that breaks extension properties in some cases.
|
| |
| |
| |
| | |
Reviewed-By: TrustMe
|
| |
| |
| |
| |
| |
| |
| |
| | |
If two threads call the Q_GLOBAL_STATIC accessor at the same time,
two QX11GLSharedContexts objects can be created with one being
destroyed.
Reviewed-By: TrustMe
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When the OpenGL graphics system is in X11GL mode, it will use the
QX11GLWindowSurface for all widgets except QGraphicsViews with the
FullViewportUpdate update mode set, where it will use the regular
QGLWindowSurface, as this is probabbly faster.
QX11GLWindowSurface differs from QGLWindowSurface because it allows
accelerated scrolling and partial updates, while still being using
opengl to do rendering.
Task-number: QT-280
Task-number: QT-2625
Reviewed-By: Trond
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If the back buffer is destroyed when swap buffers is called, we must
tell the backing store any update needs to invalidate the entire
window surface, so everything gets re-drawn.
Task-number: QTBUG-9978
Reviewed-By: Trond
|
| |
| |
| |
| | |
Reviewed-By: Samuel
|
| |
| |
| |
| |
| |
| |
| |
| | |
If QGLWidgetPrivate::recreateEglSurface is called after a surface
has been deleted, it should always create a new surface and ignore
the fact that the window ID may not have changed.
Reviewed-By: Trond
|
| |
| |
| |
| |
| |
| | |
Now all the window surface autotests pass.
Reviewed-By: TrustMe
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Previously we were calling all manor of synchronisation calls to
make sure there were no issues. These have been sanitised to just
use eglWaitClient and eglWaitNative and only in places which need
it. There is still a bug where small updates will sometimes result
in small horizontal streaks. However, this has been confirmed to be
a cache flush bug in the X server 2D driver. The driver bug is
tracked in Meamo bugzilla as bug 164941. Hopefully it will be fixed
soon.
Reviewed-By: TrustMe
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This patch moves initialisation into a new QX11GLSharedContexts
class which is created as a Q_GLOBAL_STATIC. This class owns both
the RGB/ARGB EGL contexts and the QGLContext used for sharing.
Finally, the shared QGLContext is make a valid context wrapping the
RGB EGL context and a small pixmap surface. This makes the shared
QGLContext the QGLContextGroup master, so when it is deleted, it
can be made current to delete the GL resources. Among other benefits,
this patch stops apps seg-faulting when they gracefully quit.
Reviewed-By: TrustMe
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
It's better to defer the synchronisation to just before the point it
is actually needed. When used as a window surface, this is in flush
and scroll. If the QX11GLPixmapData is used as the defaut backend
for QPixmaps, it might need to be put back into endPaint. However,
the GL driver will hopefully make sure rendering to the pixmap is
complete before binding it as a texture via texture-from-pixmap.
Also, it's probably better to use eglWaitClient rather than glFinish
for synchronisation as it is potentially slightly more optimal.
Reviewed-By: TrustMe
|
| |
| |
| |
| | |
Reviewed-By: TrustMe
|
| |
| |
| |
| | |
Reviewed-By: Kim
|
| |
| |
| |
| | |
Reviewed-By: TrustMe
|
| |
| |
| |
| |
| | |
Reviewed-by: Trond
Reviewed-by: Tom
|
| |
| |
| |
| |
| |
| |
| | |
This was a huge extra cost in all QPainter::begin's on
GL target surfaces
Reviewed-by: Rhys Weatherley
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
QGLWidgets are assumed to be buffer destroyed, however regular
QWidgets assume they can to partial updates and thus need the
preserved swap behaviour.
Reviewed-By: Trond
Task-number: QTBUG-9554
|