| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
| |
The QStaticTextItem held an uncounted reference to QFontEngine. The
pointer would dangle in some cases where there was no font object
referencing the engine and the cache was cleaned out (e.g. when a
new application font is added.) Properly count the reference, and also
add reference counting to userData to make it harder to shoot yourself
in the foot, since the QStaticTextItem class is now being used in
different places,
Task-number: QTBUG-14446
Reviewed-by: Martin Jones
|
| |
|
|
|
|
|
|
| |
This is needed for RVCT4
Reviewed-by: Jason Barron
|
|
|
|
|
|
|
|
|
| |
GL_OES_element_index_uint detection was not working because
EGL config wasn't yet resolved. In addition QFrameBufferObject
should use 24bit depth render buffer if extension is available.
Task-number: QTBUG-14542
Reviewed-by: Gunnar
|
|
|
|
|
|
|
|
|
|
|
| |
This is a backport of 3874cd95e203da40d5205ef6455d7f56cba6923a which
was committed to qt:master. Since the patch that originally exposed
the bug was added to 4.7.2, this patch is required there as well.
Bug is visible when resizing the glyph cache on devices where
QGLContext::brokenFBOReadback defaults to true, or by setting this to
true on desktop.
Reviewed-by: Gunnar
|
|
|
|
|
|
|
|
|
|
| |
On OSX AssertMacros.h header has macro called verify() and
QRBTree::verify() function was substituted by this macro.
On Windows/Mingw includes need to point to exported private
include folder.
Reviewed-by: Kim
|
|
|
|
|
|
| |
for some reason rvct didn't catch that.
Reviewed-by: TRUSTME
|
|
|
|
|
|
|
|
|
|
| |
IVE3 doesn't support UNSIGNED_INT <type> index values in DrawElements.
This patch checks if GL_OES_element_index_uint extensions is
supported and determines DrawElement indices type based on that.
On desktop environment UNSIGNED_INT is always supported.
Task-number: QTBUG-13563
Reviewed-by: Gunnar
|
|
|
|
|
| |
Task-number: QTBUG-14050
Reviewed-by: Eskil Abrahamsen Blomfeldt
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| | |
Avoid adding a virtual QPixmapData::hasMask() function, we can
do without it. Made QPixmap::hasAlpha() fast, so we can use that
instead.
Reviewed-by: Samuel
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
A regression from 4.6.x. This is an X11-only problem caused by the
separate masks that an X11 QPixmap can contain. These masks we're not
taken into account when a number optimizations were done for 4.7.
Introduction of the texture-from-pixmap extension in 4.6 also broke
masked pixmaps under X11.
Task-number: QTBUG-13814
Reviewed-by: Samuel
|
| |
| |
| |
| |
| | |
This reverts commit 89cbb165600de9a557a8a621dc41b93c2a7a2b52.
The patch should be applied to Qt 4.8, not 4.7.
|
| |
| |
| |
| |
| |
| |
| | |
Cache the last set filtering mode on glyph textures and update only
when necessary.
Reviewed-by: Gunnar Sletta
|
| |
| |
| |
| |
| |
| |
| | |
Qt always uses the same texture unit as the maskTexture, so it makes sense
to set the uniform only once when the program is created.
Reviewed-By: Gunnar Sletta
|
| |
| |
| |
| | |
Reviewed-by: Gunnar Sletta
|
| |
| |
| |
| |
| |
| |
| | |
The only consumer of TextDrawingMode is drawCachedGlyphs, and it always
sets these two attrib pointers anyway.
Reviewed-By: Gunnar Sletta
|
|/
|
|
|
|
|
| |
If the glyph cache texture changes size, the texture coordinate array
must be regenerated to point to the correct texture locations.
Reviewed-By: Gunnar Sletta
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Our glyph caching system doesn't take GL texture size limitation into
account, and assumes you can create an infinitely large texture.
On top of that, the cache will never create a cache that is wider
than 256, or QT_DEFAULT_TEXTURE_GLYPH_CACHE_WIDTH, which means we'll
hit the texture size limit even faster. With this patch the entire
texture is utilized. However, to fix in properly we need to support
having multiple texture for each font engine. That will be fixed
shortly (see task QTBUG-13784).
Task-number: QT-3971
Reviewed-by: Eskil
|
|
|
|
|
| |
Task-number: QTBUG-13450
Reviewed-by: Samuel
|
|
|
|
|
| |
Task-number: QTBUG-13409
Reviewed-by: Trond
|
|
|
|
|
|
|
| |
- Don't use toImage() / fromImage() to copy when a render FBO is active.
- Use raster for rendering to small (< 32x32) pixmaps.
Reviewed-by: Trond
|
|
|
|
|
| |
Task-number: QT-2139
Reviewed-by: Gunnar Sletta
|
|
|
|
| |
Reviewed-by: Eskil
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The merge 03dc74984749adf5b11482bf871a47086217845c mistakenly merged
the glyphMargin() (which had been removed in 4.7 because
QGLTextureGlyphCache now inherits from the image glyph cache) with the
glyphPadding() which had been introduced in separate commits in both
branches (probably backported.) This broke text drawing into a pixmap
with an alpha with the GL engine, because we'd assume a margin of 1,
but the alphaMapForGlyph() function doesn't support margins.
Task-number: QTBUG-11987
Reviewed-by: Gunnar
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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: Eskil
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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.
...
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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
|
|/ /
| |
| |
| | |
Correct a typo that breaks extension properties in some cases.
|
| |
| |
| |
| | |
Reviewed-By: Kim
|
| |
| |
| |
| |
| | |
Reviewed-by: Trond
Reviewed-by: Tom
|
| |
| |
| |
| | |
Reviewed-By: Samuel
|
| |
| |
| |
| |
| | |
Merge-request: 2344
Reviewed-by: Tom Cooksey
|
| |
| |
| |
| |
| | |
Merge-request: 2344
Reviewed-by: Tom Cooksey
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2: (44 commits)
QSlider and StyleSheet: fix one pixel error while drawing the SliderAddPage
accelerate QWindowsPipeWriter for bigger chunks of data
Fix antialiasing with transformed text in OpenGL2 paint engine
Fix flattening of largely scaled, thin, dashed beziers.
Increased the precision used to flatten beziers
Fix QT_NO_MOVIE
Fix compile error with QT_NO_ACTION in QtGui
Fix QT_NO_COMPLETER
Fix QT_NO_FSCOMPLETER
Fix QT_NO_FILESYSTEMMODEL
Build fix
Safeguard ourselves against corrupt registry values for cleartype gamma
fix cetest build properly
qdrawhelper: optimize the fetch transformed bilinear functions
Compile fix for WinCE
Make sure the selectionChanged signal is not called too much
Implement heightForWidth support for QTabWidget and QStackedLayout.
Fix the doc for QFrame::frameStyle
Don't use texture-from-pixmap if the target isn't GL_TEXTURE_2D
Add runtime check for GLX >= 1.3 before using glXCreatePixmap
...
|
| |\ \ |
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Reviewed-by: Samuel
Task: http://bugreports.qt.nokia.com/browse/QTBUG-9218
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This means texture-from-pixmap can now be used for brush pixmaps.
Task-number: QTBUG-9707
Task-number: QT-3013
Reviewed-By: Samuel Rødal
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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.
Task-number: QTBUG-9706
Reviewed-by: Tom
|