| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QEgl::createSurface() on X11 will now check to see if the device's
X11 Visual is compatible with the EGLConfig passed in. If it is not
compatible, the function will re-create the QPaintDevice's native
drawable with a different Visual (one which is compatable with the
EGLConfig). This represented the bulk of the QGLWidget::setContext
method which is now much simpler.
As a consequense of this change, QWidgets with graphicssystem opengl
will behave much more like QGLWidget as most of the code is re-used.
So things like WA_TranslucentBackground should now work with opengl
graphicssystem too.
Reviewed-By: TrustMe
|
|
|
|
|
|
| |
Also renamed qt_egl_set_format->qt_eglproperties_set_glformat
Reviewed-By: TrustMe
|
|
|
|
|
|
|
| |
QEglProperties::setPaintDeviceFormat() seems to be a copy & paste
of qt_egl_add_platform_config for every platform anyway.
Reviewed-By: TrustMe
|
|
|
|
| |
Reviewed-By: Trond Kjernåsen
|
|
|
|
|
|
|
| |
This method has been re-written as QEgl::getCompatibleVisualId()
which is much cleaner code.
Reviewed-By: TrustMe
|
|
|
|
| |
Reviewed-By: TrustMe
|
|
|
|
| |
Reviewed-By: Aleksandar Sasha Babic
|
|
|
|
|
|
|
|
| |
This puts the QEgl namespace in a single file which can be used by
both qeglcontext and qeglproperties. Files which need QEglContext
should now include qeglcontext_p.h.
Reviewed-By: Aleksandar Sasha Babic
|
|\
| |
| |
| |
| |
| | |
Conflicts:
qmake/generators/symbian/initprojectdeploy_symbian.cpp
qmake/generators/symbian/symmake_abld.h
|
| |
| |
| |
| |
| | |
Task-number: QT-2988
Reviewed-by: Julian de Bhal
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
QPainter has now gotten a drawPixmapFragments() function together
with a Fragment class that describes how each pixmap fragment is
supposed to be drawn.
Reviewed-by: Gunnar
Reviewed-by: Samuel
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
configure.exe
src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
src/opengl/qgl.cpp
|
| |\ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
master-integration
* 'master' of scm.dev.nokia.troll.no:qt/qt-qml: (81 commits)
Revert "Speed up QmlGraphicsItem::setParentItem."
Fix dynamic example
More strict type checking of ListElement properties.
Fix tst_QmlGraphicsLoader::networkRequestUrl autotest.
Fix tst_qmlgraphicstextedit::delegateLoading autotest
Delete the QmlImageRequestHandler in the correct thread.
Fix "AnimatedImage ignores Anchors setting"
Remove unused function that breaks build on AIX.
doc
Add support for startDragDistance in qmlviewer.
Add pixmap benchmarks and make cached rounded rect the same as Rectangle.
Make QmlDom API internal
Compile fix with namepaces
Doc: reformulate why we build a button
Removed incorrect Q_UNUSED() macro from QmlPropertyAnimation::transition
Doc: onExited, onEntered only work when button pressed or hoverEnabled
Ensure visibleIndex and currentIndex are updated on itemsMoved().
QmlView API review. See QmlChanges.txt for details.
Fix example after introduction of RotationAnimation.
Animation doc fix.
...
|
| | |\ \
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Conflicts:
mkspecs/linux-g++-x11egl/qplatformdefs.h
src/declarative/qml/qmldom.h
src/declarative/util/qmlview.cpp
src/declarative/util/qmlview.h
tools/qdoc3/cppcodemarker.cpp
tools/qmldebugger/standalone/canvasframerate.cpp
tools/qmldebugger/standalone/engine.cpp
tools/qmldebugger/standalone/expressionquerywidget.cpp
tools/qmldebugger/standalone/expressionquerywidget.h
tools/qmldebugger/standalone/objectpropertiesview.cpp
tools/qmldebugger/standalone/objectpropertiesview.h
tools/qmldebugger/standalone/objecttree.cpp
tools/qmldebugger/standalone/qmldebugger.cpp
tools/qmldebugger/standalone/watchtable.cpp
tools/qmldebugger/standalone/watchtable.h
|
| | | | | |
|
| |\ \ \ \
| | | |/ /
| | |/| |
| | | | |
| | | | |
| | | | |
| | | | | |
Conflicts:
tools/assistant/tools/assistant/helpviewer_qtb.h
tools/assistant/tools/assistant/helpviewer_qwv.cpp
tools/assistant/tools/assistant/helpviewer_qwv.h
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Gcc warns if declaration and initialization order are different.
Reviewed-by: Samuel
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The code is disabled by default, but included for testing on different
platforms. Intuition implies that caching the index array in a VBO
should be a performance improvement, but so far our tests do not
confirm this.
Reviewed-by: Gunnar
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Only call glBindTexture() if the glyph cache texture is not already
bound. This can potentially give performance improvement of around 30%.
Reviewed-by: Gunnar
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
- Make bindTexture threadsafe
- Document which areas of QGLWidget needs locking in order
to do out-of-gui thread rendering
- Testcases to prove that these cases work
Reviewed-by: Trond
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
GL_RGB5 and GL_RGB8 don't exist on OpenGL/ES systems.
Reviewed-by: Julian de Bhal
|
| |\ \ \ \
| | | |/ /
| | |/| |
| | | | |
| | | | | |
Conflicts:
tests/auto/qlineedit/tst_qlineedit.cpp
|
| |\ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Conflicts:
src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
tests/auto/qlineedit/tst_qlineedit.cpp
Merge branch 'master' of scm.dev.troll.no:qt/oslo-staging-2 into qstatictext-4.7
Conflicts:
src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
tests/auto/qlineedit/tst_qlineedit.cpp
Merge branch 'master' of scm.dev.troll.no:qt/oslo-staging-2 into qstatictext-4.7
Conflicts:
src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
tests/auto/qlineedit/tst_qlineedit.cpp
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
QStaticText was previously made private API to support inclusion in
Qt 4.6.x. This change turns it back into public API for Qt 4.7.0.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Changing the height here will make the coords out of sync with the '
buffer, causing broken drawing. I revert this change to prepare
QStaticText for integration, and will revisit it later on.
|
| |\ \ \ \ \
| | | | | | |
| | | | | | |
| | | | | | | |
git@scm.dev.nokia.troll.no:qt/qt-graphics-team into qstatictext-4.6
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
This is a significant speed-up on some architectures and drivers.
|
| |\ \ \ \ \ \
| | |/ / / / /
| |/| | | | | |
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
We keep around a engine-global index array which we only grow when we
need to. This should hopefully speed up text drawing on some devices.
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
glDrawElements needs to be handled properly, using triangle strips
rather than triangle lists, so the code has been removed for now.
The VBO caching did not gain us any particular performance. We rather
cache the client-side buffers for the same speed-up but with less
clean-up complexity.
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Follow pattern from qpaintengine_opengl.cpp and listen for the
destroyed signal of the GL context. If the context that owns the VBOs
is deleted, then we delete the VBOs as well.
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
A small hack to turn off the current matrix when drawing QStaticText,
since its coordinates are already transformed.
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
If you draw the QStaticText object to a new QGLWidget, then we need to
recreate the VBOs (if the vertex arrays are cached.) It would be
possible to share this across contexts, which can be implemented later
as an extra optimization for switching between different target
devices.
|
| |\ \ \ \ \ \
| | | | | | | |
| | | | | | | |
| | | | | | | | |
qstatictext-4.6
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
Don't recalculate the index array when the glyphs are simply moved.
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
Passing text through drawElements introduced a bug when text items
exceeded the range of GLubyte (seen in textedit demo.)
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
According to some design documents, drawElements() is likely to be
quicker on some devices, as the driver then does not have to create
the index array. To test the impact of this, we cache use drawElements
and cache the index array in QStaticText
|
| |\ \ \ \ \ \ \ |
|
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
The GL2 paint engine was rewritten to use GL to transform glyphs when
copying them from the glyph cache instead of keeping a separate cache
for different transformations. Since the glyph positions in QStaticText
already include the transformation, we need to run the gl calls with
an identity matrix, otherwise the position of the glyphs will be
transformed twice. The output from drawText() and drawStaticText()
will for the same reason look different for the two different engines.
The option here is to detect the problem when drawing to the opengl2
engine, and then recalculating the glyph positions for the QStaticText.
This will of course create a big overhead when regularly switching
between different paint devices, but it might make sense to optimize
for one QStaticText per paint device. For the time being I haven't
done that, though, since that change would require a bigger hack, so
it warrants deeper consideration.
|
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
Turns QStaticText into private API in preparation for Qt 4.6.x. The
related functions in QPainter are marked as internal in the docs. There
are already internal functions in QPainter, so this seemed like a
reasonable solution. Since the functions require QStaticText they will
not be accessible to anyone who does not include private API.
|
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
The default GL header on Windows is GL 1.1, so the 1.5 extensions are
not defined. To work around this, we define the macros when needed.
The macros are required for QStaticText's OpenGL backend.
|
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
These belong to an OpenGL extension which is not in use.
|
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
There's a big improvement to be seen in the OpenGL engine by caching
the vertex data for the QStaticText in VBOs. In order to have the
buffers properly disposed, I've implemented a userdata concept for
QStaticTextItem. By default, the optimizations will be turned off, and
can be turned on by using the useBackendOptimizations flag.
|
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
Optimization for drawStaticText()
|
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
This function is the main performance hog when using QStaticText with
the OpenGL engine, so I've improved on it a little by removing the
conversion from (qreal,qreal) -> QPointF -> QGLPoint. Since the function
is called so often, it has an impact on drawStaticText().
|
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
Some errors introduced by merges.
|
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
Update the code to compile with merged changes.
|
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
The OpenGL and OpenGL2 engines now have support for static text, as
well as the QEmulationPaintEngine.
Also contains an optimization: Instead of passing both the position and
glyph positions to drawStaticTextItem() we add the position into the
glyph position and update it only when it changes. Otherwise we would
have to do this work in all engines for every call. This means we have
to cache the position in QStaticTextPrivate as well, but it seems like
a small price to pay, since it's a per-text overhead and only 16 bytes.
|
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
1. Support transformations on the painter in drawStaticText().
Transforming the painter will cause the text layout to be recalculated,
except for translations, which are handled by shifting the position of
the text items.
2. Make const length arrays of the internal data in QStaticTextItem in
order to minimize the memory consumption.
|