| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
(cherry picked from commit eb2926a2f9607e985b8bca54346e6fdf91343247)
|
|
|
|
|
|
|
| |
- 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
|
|\ \ \
| |/ /
|/| /
| |/
| |
| |
| | |
Conflicts:
qmake/generators/symbian/symmake.cpp
src/gui/image/qimage.cpp
src/openvg/qwindowsurface_vgegl.cpp
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In the case where a polygon or polyline that contains consequtive equal
points, we end up calculating an invalid normal vector for the joins.
This fix skips past duplicate consequtive points.
Task-number: QTBUG-9548
Reviewed-by: Kim
|
| |
| |
| |
| |
| |
| |
| | |
The patterns all got the same cache key (e.g. 1), which caused the
patterns to be uploaded as a texture every single time they were used.
Reviewed-by: Kim
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This is not valid in C++0x:
char str[] = { 128, 0 };
Because 128 cannot be represented in a char. The same applies to
conversion from int to qreal: it's a narrowing conversion, with
possible data loss.
More info: http://www2.research.att.com/~bs/C++0xFAQ.html#narrowing
Reviewed-by: Trust Me
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* '4.7' of scm.dev.nokia.troll.no:qt/qt-qml: (112 commits)
Verbose unexpected errors.
One url for an *unqualilfied* import is not special.
Fix test failures
Optimization: Don't unnecessarily run VMEStack element constructors
Optimization: Reduce unnecessary QObject allocations
Reset QDeclarativeDeclarativeData::outerContext when the context is removed
Simplify QDeclarativeComponent::creationContext() logic
Optimization: Use id notifier for QtScript bindings
Optimization: Combine QDeclarativeDeclarativeData and QObject allocations
Fixes for the module import
Fix documentation
add alan's tic-tac-toe AI
Remove test in .pro file also
Remove unneeded #include and add needed header to .pri
Add easing changes to QmlChanges.txt
Update more animation on property value source docs.
Doc fixes.
QmlChanges.txt cleanup.
Remove WorkerListModel and integrate its functionality into ListModel.
Split post alpha API changes into a separate section.
...
|
| |\ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
* '4.7' of scm.dev.nokia.troll.no:qt/qt-qml: (100 commits)
Remove test in .pro file also
Remove unneeded #include and add needed header to .pri
Add easing changes to QmlChanges.txt
Update more animation on property value source docs.
Doc fixes.
QmlChanges.txt cleanup.
Remove WorkerListModel and integrate its functionality into ListModel.
Split post alpha API changes into a separate section.
Optimize drawPixmapFragments for the GL2 paint engine.
Optimize QRegion::intersects(QRect).
Compile with user defined Qt namespace
Fix regression from previous commit
Import "content" with as qualifier to support network without qmldir
Small fixes to photoviewer demo
Little more doc on QabstractItemModel and QML.
Fix benchmark.
Add basic QUrl benchmarks.
Add busy indicator to photoviewer demo
Set maximumExtents correctly for highlightRangeMode: StrictlyEnforceRange
fix installation of imports libraries
...
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
In this case, we don't need QGL2PEXVertexArray to keep track of min and
max information.
Reviewed-by: Samuel
|
| | | |
| | | |
| | | |
| | | | |
Reviewed-by: Daniel Pope
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The simplified vertex shader for complex geometry is written
specifically for solid brushes and needs to be disabled when the
brush is anything else. This work-around can be removed later when
QTBUG-9069 is handled, since that removes the extra requirements on
the setPosition() shader.
Reviewed-by: tom
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When drawing text, the vertex count will most likely be so high that
using a uniform-based, simpler vertex shader is faster. We implement
the ability to inform the shader manager that the geometry is considered
complex, so that it can choose the simpler vertex shader in these cases.
Task-number: QT-2887
Reviewed-by: tom
|
|\ \
| |/
| |
| |
| | |
Conflicts:
src/gui/styles/qs60style_s60.cpp
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Apparently the driver does some optimization which causes it to behave
erratically when stencil testing is enabled. Multiplying the return
value from the texture lookup by 1.0 disables the optimization.
Task-number: QTBUG-8753
Reviewed-by: Trond
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Without clipping, the stroker could consume a huge amount of
memory when scaling up cosmetic, dashed strokes. I also made
QDashStroker clip more aggressively.
Task-number: QTBUG-7832
Reviewed-by: Samuel
|
| |
| |
| |
| | |
Reviewed-by: Samuel
|
| |
| |
| |
| | |
Reviewed-by: Tom Cooksey
|
| |
| |
| |
| | |
Reviewed-by: Kim
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
configure.exe
examples/multimedia/audioinput/audioinput.cpp
src/corelib/io/qfsfileengine.cpp
src/gui/egl/qegl_wince.cpp
src/gui/egl/qeglproperties.cpp
src/gui/egl/qeglproperties_p.h
src/gui/embedded/directfb.pri
src/gui/kernel/qapplication_win.cpp
src/gui/painting/qdrawutil.cpp
src/opengl/qgl_p.h
src/sql/drivers/odbc/qsql_odbc.cpp
src/sql/drivers/odbc/qsql_odbc.h
tests/auto/auto.pro
tests/auto/qgl/tst_qgl.cpp
translations/assistant_adp_ru.ts
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The global destructor for the clean up hooks might be called before the
global destructor for QPixmap objects. We shouldn't leave pixmaps
around that is destroyed after the QApplication destructor is called.
Task-number: QTBUG-8681
Reviewed-by: Tom Cooksey
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Removing this comment, as a decision was made. QStaticText is an
optimization class. Forcing a fallback for all fonts over a certain
size would be to intrusive. People should get to decide for themselves
whether to cache the text or not when using QStaticText. They can always
fall back to drawText() themselves.
Reviewed-by: TrustMe
|