| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If the SRGB framebuffer extension in GL is available, we can support
gamma correction of text with a gamma of 2.1. On Mac this is
sufficient for gamma correcting subpixel antialiased text. Gray
antialiasing should not be gamma corrected on Mac.
On Windows, the user can potentially set the gamma value to anything
between 1.0 and 2.2 (or something like that). We support anything
that resembles 1.0 closely enough by pushing the text out without
any correction (like before). We also support anything that resembles
2.1 (the gamma hardcoded in GL's SRGB extension) by turning on the
extension before blending the text. In between the two, we'll use
gray antialiasing to avoid differing too much from the raster engine
(which is our reference in this.)
For gray antialiasing on Windows, we use a constant gamma of 2.3 which
has been determined by experimentation. Since this is close enough to
2.1 we do gamma correction with SRGB extension.
The distance limit of 0.2 is determined by some experimentation.
Reviewed-by: Samuel
|
|
|
|
|
|
|
|
| |
The extended radial gradients conform to the radial gradient
specification in HTML 5 canvas.
Task-number: QTBUG-14075
Reviewed-by: Andreas Kling
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The Core profile was introduced in OpenGL 3.2 and if chosen removes
all deprecated functionality from the OpenGL API.
In the Core profile glGetString(GL_EXTENSIONS) is unsupported, so
instead we need to use glGetStringi(GL_EXTENSIONS, index) together with
glGetIntegerv(GL_NUM_EXTENSIONS). Also optimized the QGLExtensionMatcher
to not have to recompute the split positions all the time.
Preliminary support to prevent non-core-functions to be called in the GL
2 engine has also been added.
Reviewed-by: Kim
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
As the DPI of displays continues to rise, especially on mobile devices,
the maximum glyph size of 64 pixels for the glyph cache has become a
limitation. This problem is made worse by the fact that when the maximum
glyph size is exceeded, the OpenGL paint engine falls back to using
rasterized geometry for glyph rendering. This does not produce
acceptable quality if the OpenGL rendering surface lacks support for
multisampling.
This patch offers a solution to the problem by making the
cached glyph size configurable at build time. This way the limit can be
set according to the capabilities of the target hardware.
Signed-off-by: Sami Kyöstilä <sami.kyostila@nokia.com>
Merge-request: 1131
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
master-integration
* 'master' of scm.dev.nokia.troll.no:qt/qt-fire-staging:
Fix crash and infinite recursion caused by previous commits
Fix remaining regressions in QWS
Take Xft.hintstyle by default to match the behavior of GTK+
Fixed remaining issues in subpixel positioning with FreeType
Fix QTransform debug output
qFloor the decoration line width before painting
Let QTextLine decide its own x position in QPainter
Avoid repeatedly trying to load unloadable plugins, causing slowness
Reset GL glyph cache when texture limit is reached
unlockFace was put in the wrong place in previous patch
Implement subpixel positioning with FreeType
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This is a port of 72f161739b270b01807f97cd853030440f0fd430 which was
reverted in integration to master, since it was incompatible with
the refactored glyph cache.
When the GL glyph cache reached its texture limit, we have to reset it
and start over. Added a new cleanup() function in
QGLContextGroupResourceBase which deletes the resource for a given
context and removes itself from that context group.
Task-number: QTBUG-13784
Reviewed-by: Samuel
|
|\ \
| |/
|/|
| |
| | |
Conflicts:
src/opengl/qwindowsurface_gl.cpp
|
| |
| |
| |
| |
| |
| |
| |
| | |
Destroyed swap behaviour is a little bit faster than
preserved swap with heavily animated UIs like QML.
Task-number: QTBUG-18270
Reviewed-by: Samuel Rødal
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Avoid doing a lot of glTexSubImage2D calls in favor of doing a single
call (even if it involves an additional image copy).
Reviewed-by: Eskil
|
|\ \ \
| | | |
| | | |
| | | |
| | | | |
Conflicts:
mkspecs/qws/macx-nacl-g++/qplatformdefs.h
|
| |\ \ \
| | |/ /
| |/| /
| | |/
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
configure
mkspecs/symbian-gcce/qmake.conf
qmake/generators/metamakefile.cpp
qmake/generators/win32/mingw_make.cpp
src/corelib/global/global.pri
src/corelib/global/qglobal.h
src/opengl/qgl.cpp
src/opengl/qwindowsurface_gl.cpp
src/plugins/platforms/wayland/qwaylandbuffer.h
tests/auto/qnetworkreply/tst_qnetworkreply.cpp
tools/designer/src/components/formeditor/qdesigner_resource.cpp
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Keep the implementation in separate
qpixmapdata_poolgl.cpp file until the pooling has
been verified and confirmed to work ok.
Task-number: QTBUG-15253 QTBUG-17850
Reviewed-by: Samuel Rødal
|
| |\ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
master-integration
* 'master' of scm.dev.nokia.troll.no:qt/qt-fire-staging:
Fix static text item positioning GL2 paint engine
Fix combining marks handling in Core Text shaper
Fix PBuffer example to work again
|
| | | |
| | | |
| | | |
| | | | |
Reviewed-by: Eskil
|
| |/ /
| | |
| | |
| | |
| | | |
Reviewed-by: Trust Me
(cherry picked from commit 774a3536b00c4d6e4c4c10b708e31b4373a338e3)
|
|\ \ \
| |/ / |
|
| |\ \
| | |/
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp
src/opengl/gl2paintengineex/qtextureglyphcache_gl_p.h
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When the context is destroyed and recreated, we end up with a new glyph
cache, but we only recreate the vertex arrays for the very first static
text item. We need to keep track of the glyph cache in each text item,
so that we can recreate the vertex arrays and re-populate the cache
accordingly. As the pointer might be the same after the glyph cache is
recreated, we need to use serial numbers instead.
We also need to re-create the cache when the context pointer has been
invalidated, so that the static text items also get invalidated, and
the texture glyph cache gets repopulated.
Reviewed-by: Eskil Abrahamsen Blomfeldt
|
| |\ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
into master-integration
* 'staging-master' of scm.dev.nokia.troll.no:qt/qt-lighthouse: (69 commits)
Lighthouse: License headers to new files in testlite
Make sure we blit the fbo on flush in QGLWindowSurface
Lighthouse: Wayland. Make the wayland integration closer to Lighthosue
Lighthouse: Wayland, only make one fbo for the WaylandPaintDevice
Making clearer separation between responsibility of different classes
Make it possible to vertically mirror gl painting
Lighthouse:Wayland Moving some logic into files
Fix Wayland plugin to work with Wayland after some interfaces changed
Make QGLContext::fromPlatformGLContext show correct sharing
Remove Lighthouse specific code from QGLWindowSurface
Fix X11 clipboard bug.
Fix for uninitialized member in QWaylandCursor
wayland: use pkgconfig for libdrm in wayland.pro
wayland: remove non-public header from config.tests
wayland: fix SOURCES to point to wayland.cpp in config.tests
Wayland: request rbg and premultiplied argb visuals as needed
Wayland: clamp window resizes to screen size
Wayland: split GL code into separate files
Wayland: use correct viewport for swapBuffers and correct coords
Wayland: fix geometry of swapBuffers
...
|
| |\ \ \
| | | |/
| | |/|
| | | |
| | | |
| | | | |
Conflicts:
configure
src/network/bearer/bearer.pri
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Q_DECL_IMPORT is still __declspec(dllimport), which is unsuitable for
static code.
Commit edbc656b changed Q_DECL_IMPORT_IMPORT to Q_CORE_EXPORT when
declaring QtCore functions in svg.
Now we change Q_DECL_IMPORT to Q_GUI_EXPORT when declaring QtGui
functions into opengl and openvg.
Also removed the redundant keyword "extern" from the function declarations.
Merge-request: 2540
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: mariusSO
|
| | | | |
|
| |_|/
|/| |
| | |
| | | |
Reviewed-by: sroedal
|
|\ \ \
| |/ / |
|
| |\ \
| | |/
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
examples/webkit/imageanalyzer/imageanalyzer.h
examples/webkit/imageanalyzer/mainwindow.h
mkspecs/unsupported/qws/linux-x86-openkode-g++/qplatformdefs.h
src/corelib/io/qfsfileengine_iterator_unix.cpp
src/corelib/io/qfsfileengine_iterator_win.cpp
src/corelib/kernel/qcoreapplication.cpp
src/network/access/qnetworkaccessdatabackend.cpp
src/plugins/bearer/connman/qconnmanservice_linux.cpp
src/plugins/platforms/openvglite/qwindowsurface_vglite.h
src/s60installs/bwins/QtCoreu.def
src/s60installs/eabi/QtCoreu.def
src/s60installs/s60installs.pro
tools/assistant/tools/assistant/helpviewer_qwv.h
tools/qdoc3/test/qt-html-templates.qdocconf
|
| | |\
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1:
QFont/Windows: restrict the pixel size accuracy
Update copyright year to 2011.
For non-developer builds, skip test that requires private API
tst_qhttpnetworkconnection: Compile fix
Change QHostInfoCache to use QElapsedTime instead of QTime.
Fix for qtdemo bug
|
| | | |
| | | |
| | | |
| | | | |
Reviewed-by: Trust Me
|
| | |\ \
| | | |/
| | |/| |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Change 532115bcaa370af827a5cbad017b272842c5aacf introduced a regression
by fixing a typo in the QT_OPENGL_ES_2 macro. This caused a broken
and untested code path to be used in the GLES2 case. Since the QImage
scanlines are 32 bit aligned, QImage::width() cannot be used when
copying the data. Rather than pass in bytesPerLine() to the GL function,
I opted to revert to the proven behavior, where the pad bytes are never
read by GL but each scanline is copied separately, to avoid further
regressions on different hardware. This also seems like the more correct
approach, as the pad bytes should ideally not be copied into the cache
texture.
Reviewed-by: Samuel
|
| |\ \ \ |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
To avoid calling the bounding box function for the same non-printable
characters in every call, we cache them as empty in the coords table
and bail out before painting them. This patch also fixes some possible
reads of uninitialized memory (reference to return value) and reference
to a default constructed object consisting of uninitialized pods.
Reviewed-by: Samuel
|
|/ / / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The GLPaintDevice gets a flip property. If this is set, the pvr matrix
is altered to paint "upside down"
Reviewed-by: sroedal
|
|\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
master-integration
* 'master' of scm.dev.nokia.troll.no:qt/oslo-staging-1: (33 commits)
Add inter-process binary shader cache for MeeGo
Track average wait times under our maximum spin time threshold
Store and track spin times in nanosecond resolution
Optimize adaptive spinning mutex code
Improve QMutex contention performance on Linux
Improve QMutex contention performance on Mac OS X
Disable spinning under lock contention on single CPU machines
Remove unnecessary testAndSetAcquire from QMutex::lockInternal()
Move contender count maintenance to QMutexPrivate
test contention when using 2 mutexes
Ensure that every thread does contend in the contention tests
Add baseline test data to measure test overhead
Test contention performance for long (10ms) critical sections
Add a benchmark for contended and uncontended QMutex performance
Removed QMutexPrivate::self() declaration
Add QElapsedTimer::nsecsElapsed() const
Delay creation of the process manager
Make the QRasterPaintEngineState copy constructor cheaper.
Micro-optimization for QSpanData::setup()
define FSCTL_SET_REPARSE_POINT in test header
...
|
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This patch significantly reduces MeeGo app startup times by caching binary
shaders in a shared memory segment.
Reviewed-by: Robert Griebl
Reviewed-by: Samuel Rødal
|
|\ \ \ \
| |/ / /
|/| / /
| |/ /
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
demos/declarative/minehunt/minehunt.pro
src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp
src/plugins/phonon/mmf/mmf.pro
src/s60installs/s60installs.pro
tests/auto/qapplication/test/test.pro
tests/auto/qgraphicsview/tst_qgraphicsview.cpp
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
It seems that copying small rectangles from glTexSubImage2D into a
texture which is 2048x2048 is busted on some SGX drivers, even though
the driver reports 2048 as the maximum texture size. This caused text to
turn into flickering garbage once the texture glyph cache had grown to
its max size (e.g. when painting very many Chinese glyphs.) To work
around the problem, we hardcore the maximum texture height to 1024 on
this driver so that the texture glyph cache is reset whenever that
size is exceeded.
Task-number: QT-3971
Done-with: Samuel
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When the glyph cache is cleared because the max texture size has been
exceeded, we shouldn't delete the fbo as this is only created in
setContext() and will thus not be recreated. All subsequent resizing
of the cache will fail.
Task-number: QT-3971
Reviewed-by: Samuel
|
| |
| |
| |
| |
| |
| |
| |
| | |
Down-scale images or pixmaps that are above the max texture size. Not
optimal performance-wise, but better than failing.
Task-number: QTBUG-16033
Reviewed-by: Eskil Abrahamsen Blomfeldt
|
| |
| |
| |
| |
| |
| |
| |
| | |
Get rid of the aliased coordinate delta, like we already did in the
raster paint engine.
Task-number: QTBUG-16043
Reviewed-by: Gunnar Sletta
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
configure
src/gui/graphicsview/qgraphicslayout.cpp
src/gui/text/qfontengine_s60.cpp
src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
src/opengl/qwindowsurface_gl.cpp
src/s60installs/bwins/QtGuiu.def
src/s60installs/eabi/QtGuiu.def
tests/auto/qsortfilterproxymodel/tst_qsortfilterproxymodel.cpp
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Since scaled text is backed by an A8 glyph cache, it needs to repopulate
even if it has previously populated the cache for the unscaled text.
This means that we need to record in the userData that the type of the
cache is not the same as the last time. Otherwise the A8 version of the
cache will only be updated when it's created and when the text actually
changes, leading to glyphs missing on screen when zooming text using
a scale.
Task-number: QTBUG-16012
Reviewed-by: Gunnar
|
| |
| |
| |
| |
| |
| |
| |
| | |
As long as the final clip area is rectangular and axis aligned we can
use a scissor clip. This prevents performance problems when doing
90-degree rotated rectangle clips.
Reviewed-by: Bjørn Erik Nilsen
|
| |
| |
| |
| |
| |
| | |
If we recreate the texture glyph cache, we also need to repopulate.
Reviewed-by: Eskil Abrahamsen Blomfeldt
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When there is no transformation on a glyph in the GL texture glyph
cache, it will take the RGB code path to support subpixel antialiasing.
In this code path we would ask glTextImage2D() to convert from a
GL_ALPHA buffer to an internal format of GL_RGBA. This is not supported
on OpenGL ES 2, and would cause missing text for some drivers.
The change also fixes a typo in an #ifdef.
Task-number: QTBUG-15789
Reviewed-by: Kim
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
qmake/generators/symbian/symmake.cpp
src/corelib/global/qglobal.h
src/gui/kernel/qwidget_p.h
src/gui/painting/qtextureglyphcache.cpp
src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp
src/opengl/gl2paintengineex/qtextureglyphcache_gl_p.h
src/plugins/qpluginbase.pri
src/qbase.pri
tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp
tests/auto/qthread/tst_qthread.cpp
tests/auto/selftests/expected_cmptest.txt
tests/auto/selftests/expected_crashes_3.txt
tests/auto/selftests/expected_longstring.txt
tests/auto/selftests/expected_maxwarnings.txt
tests/auto/selftests/expected_skip.txt
tools/assistant/tools/assistant/doc/assistant.qdocconf
tools/qdoc3/test/assistant.qdocconf
tools/qdoc3/test/designer.qdocconf
tools/qdoc3/test/linguist.qdocconf
tools/qdoc3/test/qdeclarative.qdocconf
tools/qdoc3/test/qmake.qdocconf
tools/qdoc3/test/qt-build-docs.qdocconf
tools/qdoc3/test/qt-build-docs_ja_JP.qdocconf
tools/qdoc3/test/qt-build-docs_zh_CN.qdocconf
tools/qdoc3/test/qt.qdocconf
tools/qdoc3/test/qt_ja_JP.qdocconf
tools/qdoc3/test/qt_zh_CN.qdocconf
|
| |
| |
| |
| | |
Reviewed-by: Jani Hautakangas
|
| |\
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/qt-s60-public: (21 commits)
Fixed handling of QInputMethodEvents with nonzero replacementLength.
Fixed namespace issues related to epocroot.cpp
Corrected ASCII comparison and removed extra braces
Add symbian scope for qfiledialog_symbian.cpp
Resolve EPOCROOT in qt.conf using same logic as in .pro
Make epocroot resolving compatible with more build environments
Fix for QtOpenGL RVCT4 compilation error
Removed extra cpp and done changes based on comments
Correct flags for Symbian file dialogs
Fix for WServ 64 crash on Symbian.
Use include(original mkspec) instead of copying of mkspec to default
Fixed code style of d92cbfc5, reported by git push.
Switched qdesktopservices to use SchemeHandler for Symbian^3 and later.
Removed unnecessary Q_OS_SYMBIAN flags from qdesktopservices_s60.cpp.
Documented usage of dialogs on Symbian
Native file dialog on Symbian^3
Add Location as self signable capability in patch_capabilities.pl
Localize .loc and .pkg content based on TRANSLATIONS
Bump Qt version to 4.7.2.
SSL: Fix for systemCaCertificates being called first on symbian
...
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
RVCT4 has strict lookup rules. Calls from function
,that depends on a template parameter, to internal
static functions must be qualified.
Task-number: QTBUG-15424
Reviewed-by: Jason Barron
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When the OpenGL glyph cache filled up (the max texture size on the
hardware was exceeded) the characters would be drawn as black blocks
instead. As a work-around for this, the cache will now be cleared and
repopulated whenever this happens, meaning that once in a while (when
a lot of different glyphs have been drawn in a font) there will be a
performance hit. A more complete solution is described in QTBUG-13784,
but this requires so much refactoring that it was deemed too risky for
a patch release. This patch fixes the problem with a small penalty
and low risk.
Task-number: QT-3971
Reviewed-by: Samuel
|