| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
| |
Make QtDeclarative run on Native Client.
Some of these should be looked at more closely at
a later point in time, but will do as workarounds
from now.
Change-Id: Ifddcb45b190c3a80c6137772a05ababb5466ea22
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
|
|
|
|
|
|
|
|
|
| |
QSGDefaultImageNode::preprocess() always sets the
geometry to dirty even if no new texture was grabbed.
Change-Id: Ifb6ce160854aa0a5b9e0f87fbf517b21e86e0ade
Task-number: QTBUG-49904
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
|
|
|
|
|
|
|
|
|
| |
QSGTextureProvider::texture() was getting a warning from qdoc because
it didn't find an exact match for its signature: the doc lacked const.
Ditch some spurious semicolons while we're about it.
Change-Id: I785ae8b8d46c839a1e29339284834a8b8e44bffe
Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
|
|
|
|
|
| |
Change-Id: I991b22bf52f3523762df25ce7d5d7e8a0f08a2a2
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|
|
|
|
|
|
| |
Saves iterating the whole container and unneeded allocation of a list
Change-Id: Iae1f8e0cf3a17b163cf930c43a27b2ebb4315e5c
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
|
|
|
|
|
|
|
| |
Without this all styled text appears as solid-filled rectangles.
Change-Id: I7b64b274b3562b75ed7126d4bb8e89b6cb8d6f77
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
|
|\
| |
| |
| |
| |
| |
| | |
Conflicts:
src/quick/util/qquickimageprovider.cpp
Change-Id: I7ca4e49468b5ba697208287be4684e42b9900023
|
| |
| |
| |
| |
| |
| |
| | |
Task-number: QTBUG-36985
Change-Id: I219375d405fbfb53611c0138698e955d9cd5d821
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
|
| |
| |
| |
| |
| | |
Change-Id: I888dc4b1dbc49deeb13f967b0da34cd2273f1680
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
|
|\|
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
tests/auto/qml/qml.pro
tools/qmlprofiler/qmlprofilerclient.cpp
Change-Id: Id47f15a5ab38f8ec79f0a26c92805acba62caac4
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In the uncommon case (m_context->hasBrokenIndexBufferObjects()
|| m_visualizeMode != VisualizeNothing) of mapping a buffer, malloc is
called without first freeing the previous malloc.
Regression was introduced with:
qt5 commit: 9347499e78f03710eaf24af3c1e7ac650d0ef81d
qtdeclarative commit: a371bac3fba73f92aaa63a68d8ab1ae81a1d1031
[ChangeLog][QtQuick][Scene Graph] Fixed memory leak in
QSGBatchRenderer::Renderer::map()
Task-number: QTBUG-48799
Change-Id: I5ef4b7301d390463845aeb192851f86655962499
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Where possible, use qEnvironmentVariableIsSet()/
qEnvironmentVariableIsEmpty() instead of checking on the
return value of qgetenv().
Where the value is required, add a check using one of
qEnvironmentVariableIsSet()/Empty().
Move QSGAtlasTexture::qsg_envInt() to qsgrenderer.cpp
for reuse as qt_sg_envInt() and add qt_sg_envFloat().
Change-Id: I4c93f16c228d4f537154f389a0fa1427654485f7
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
|
| |
| |
| |
| |
| |
| | |
Task-number: QTBUG-43810
Change-Id: I2e9fa91d63c5998df50f3678e485135e8518916d
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
|
| |
| |
| |
| |
| |
| | |
Change-Id: I2dd69745427d8f5e882303d2a4de3935ddca02e9
Task-number: QTBUG-48787
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Just not requesting a depth buffer is insufficient since there's nothing
guaranteeing that the EGL or other implementation will return depthless
configs. When the depth buffer is always there, setting the environment
variable is futile. To do what the user has requested, the value has to
be checked in the renderer too.
Change-Id: I1f572bc6f2f5b5aa94070a239d6e871e3421a51f
Reviewed-by: Louai Al-Khanji <louai.al-khanji@theqtcompany.com>
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
|
| |
| |
| |
| |
| |
| |
| | |
Use character literals where applicable.
Change-Id: I294fc4cb5cbbd23df9735ba2b398118f37cbe08a
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
|
| |
| |
| |
| |
| |
| | |
Task-number: QTBUG-48594
Change-Id: Ifc207938de7f0c8995fc712df92665f222612647
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
contentsSize/Scale/BoundingRect are confusing and will in
most cases not produce what the user wants, but since
they might be in use, we keep their behavior and simply
obsolete them. New code should use textureSize, though most
code can simply rely on implicit HighDpi support.
[ChangeLog][QtQuick][QQuickPaintedItem] Implement high-dpi
support and add function textureSize. This obsoletes the
existing contentsSize, contentsScale and contentsBoundingRect
functions.
Task-number: QTBUG-32510
Task-number: QTBUG-40489
Change-Id: I660bbf394594b6ea588d4de9cc83c8c5eb28cb28
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| | |
Saves us a few bytes
Change-Id: Ie2cdda5ca0cd4a82aa00ea26e28418e6b027afac
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Disconnecting the screen to which the context belongs results in a null
QOpenGLContext::screen(). Fall back to qguiapp's devicePixelRatio() in
this case (giving the highest dpi in the system) due to the lack of any
other option.
This will fix the crashes when rendering offscreen (QQuickWidget) and
using native text rendering. Without this the render attempt after
disconnecting the screen with which the context was created would
crash due to accessing the already destroyed screen instance.
Task-number: QTBUG-42803
Change-Id: Ie5889f59e5d66d09329b3d5fb8e1365d14d5b8fc
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
|
| |
| |
| |
| |
| | |
Change-Id: I6e1f03bad9e957a60e1248e423f6a0e237d43f55
Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Using textures generated by ShaderEffectSource items (or Item.layer)
with custom OpenGL code was non-intuitive due to mismatching coordinate
systems, so added a possibility to control the generated texture
orientation.
[ChangeLog][QtQuick][ShaderEffectSource] Added possibility to mirror
generated OpenGL texture.
Change-Id: I7c03d8b6fbfc43d69812c15d244200fb8e7c7bb9
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
|
|\|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/qml/debugger/qv4debugservice.cpp
src/qml/jsruntime/qv4value_inl_p.h
src/qml/jsruntime/qv4value_p.h
src/qml/memory/qv4mm.cpp
src/qml/memory/qv4mm_p.h
src/qml/qml/qqmlnotifier_p.h
src/qml/qml/qqmlproperty.cpp
src/quick/items/qquickflickable.cpp
src/quick/items/qquicktextedit.cpp
tests/auto/quick/qquickwindow/BLACKLIST
The extra changes in qqmlbinding.cpp are ported from changes to
qqmlproperty.cpp that occurred in parallel with writeBinding() being
moved to qqmlbinding.cpp.
Change-Id: I16d1920abf448c29a01822256f52153651a56356
|
| |
| |
| |
| |
| |
| | |
Change-Id: Ifc664b9c718744b9549953e42ac3450a88403dea
Task-number: QTBUG-47090
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
|
| |
| |
| |
| |
| | |
Change-Id: I0138aa116abdf890060e868fb95e866db1c7a398
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
|
| |\
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
tests/auto/quick/qquickwindow/tst_qquickwindow.cpp
Change-Id: I272074fa2ca259439cae2f686325932f7f9d7c01
|
| | |
| | |
| | |
| | |
| | |
| | | |
Task-number: QTBUG-46260
Change-Id: Ib84a41da10d38391c3248a209a851f5b603d46b0
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
For the non-threaded renderloops, we there might be a timer firing
before the animationController is cleaned up through deleteLater()
which will then reference the deleted QQuickWindow. Rely instead on
direct and explicit cleanup at the right time in each render loop.
Change-Id: Id81daddae78ce3922d6a932fb21200f2dc7955bb
Task-number: QTBUG-33723
Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Make sure the QSGSimpleTextureNode deletes the old QSGTexture
if a new one is set via setTexture() and the ownsTexture flag
is true.
[ChangeLog][QtQuick][SceneGraph] QSGSimpleTextureNode will now delete
the currently set QSGTexture object, if a new QSGTexture is set and
the ownsTexture flag is on.
Change-Id: Iabfbccd390e16948d4575baf29e6c8b4a184a404
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Animating a complete batch of geometries bound by property
bindings will cause an unnecessary rebuild of the batch on
each animation step even though it will end up with the
same batch as in the previous frame.
Since the invalidation happens in nodeChanged, any node
change in an updatePaintNode might trigger an invalitation
if it is compared with a material that hasn't been updated yet.
Delay the verification of the DirtyMaterial flag until all
materials have been updated, later on in visitNode, to
make sure that we call compare only on up-to-date materials.
Change-Id: I03c095efc20817813508d959c74b41eae57beedc
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This will allow us to remove the instance() methods and create the
services from factories in plugins. Also, it allows us to remove the
isDebugging member from QQmlEnginePrivate.
Change-Id: Id9d9820a910902ecfdb1e8175e215093ce3d0965
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This will allow us to move QQmlDebugServer into a plugin. The new QQmlDebugServer
is the interface exposed to connection plugins. The interface exposed to services
is renamed to QQmlDebugConnector, as technically it doesn't have to be a
"server".
Change-Id: Id508b8c0a6960228e889f45a437b73060392db39
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
They all internally map to one-liners and just add to binary size and
complexity. Especially, the most used one, isDebuggingEnabled(), simply
checks if there is a QQmlDebugServer::instance().
Change-Id: Ib269928e08506894d933f6696e34ff0d3acb048b
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
|
|\| |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
.qmake.conf
src/qml/qml/qqmlengine.cpp
src/quick/items/qquickitemsmodule.cpp
tools/qml/main.cpp
Change-Id: Ida8daf6b4d7e675385f2f5514c446e52dedaf136
|
| |\ \
| | | |
| | | |
| | | | |
Change-Id: I4020a1b3c59dea18faf7cbcbb78b90fcfc3680f0
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Similarly to QOpenGLWidget, functions like QOpenGLFramebufferObject::bindDefault()
should bind the QQuickWidget's FBO, not 0, while rendering the scene graph.
This becomes particularly important on platforms with surfaceless context support.
Here offscreen surfaces are not backed by any surface. Therefore any OpenGL operation
accessing the current draw framebuffer with FBO 0 bound may potentially crash, as there
is no draw framebuffer at all.
The distance field glyph cache exhibits this issue when running with EGL on Mesa:
glViewport crashes when we render via QQuickWidget and the current framebuffer is reset
to 0. The problem goes away when the code changed is to use bindDefault() - as it should have
anyhow - and QQuickWidget is enhanced to communicate the "default" framebuffer to QOpenGLContext,
just like QOpenGLWidget does.
Task-number: QTBUG-46415
Task-number: QTBUG-43269
Change-Id: I35fe375a0870dadecc4a074dfdec122c6a4c92ab
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Once we hit removedFromAtlas() and the glCopyTexImage2D() path, bad things
tend to happen with OpenGL ES, both on certain embedded devices (Beaglebone, RPi)
and ANGLE.
ANGLE just rejects GL_BGRA_EXT with INVALID_ENUM. So if it fails, just try
with GL_RGBA. The BGRA extensions do not mention glCopyTexImage2D in any form
and in plain GLES (any version) BGRA does not exist. So rejecting it may be valid,
depending on how one reads the specs.
Same problem on Beaglebone, where the call with BGRA fails as INVALID_OPERATION.
The RPi 1 and 2 fails in a different way: the temporary framebuffer is not complete
because BGRA textures are not supported as color attachments. So our only choice
here is to do what we do for some Android devices already: ignore BGRA support.
Task-number: QTBUG-46806
Change-Id: I89b3b38bf7f8883c39509606ec5ae525f131292b
Reviewed-by: aavit <eirik.aavitsland@theqtcompany.com>
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
We had been accidentally using the 8-bit alpha glyph shader, which
resulted in rendering solid black outlines of the glyphs.
Task-number: QTBUG-37986
Task-number: QTBUG-45514
Change-Id: Ie8728d50068f58d659e24bc5db2d73e01ca8db75
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Change the gradient position calculations to consider full border, not
just half of it, because the border is fully drawn inside the
rectangle, not half outside, half inside.
Task-number: QTBUG-36059
Change-Id: Ie7dec94d9f6e03ae07c612c6e3b1950781973dc7
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Just like commit fd565ec6, this fixes another vertex shader compilation
issue on certain OpenGL drivers.
Change-Id: Ided3d6082fa0790659e9c242d0b43d7de5a2ae4d
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* Put the cheap checks (pointer ones) first
* Don't call currentThread twice as it involves a mutex lock/unlock
Change-Id: I5df92ea99b034301113e9bd34f8a66df1a7e7dfe
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
No reason to iterate through all items to create a temporary
QList we don't need.
Change-Id: I3c5388f026ded0290afb9dd35fc7934011c4998d
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Opaque textures can be a lot faster, so give this option without
forcing the user to reimplement her/his own QSGTexture class.
The old behavior was that createTextureFromImage() disregarded
TextureHasAlphaChannel and looked solely at the image's format. To
keep this behavior intact, we introduce a second opt-in flag to switch
textures from auto-detect to false, namely TextureIsOpaque.
[ChangeLog][QtQuick][QQuickWindow] Add TextureIsOpaque option to
createTextureFromImage()
Change-Id: I248db4bc5f7920864b6aa8d831ce24d23ad370ef
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
No known users of this interface exist, and not having it helps to make things
less complicated.
Change-Id: I3d749cfbde9e84e1c7b8dc5cbd952c5c51d347ee
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: Id4820ac458f48b10f2bf457144767efdef9e2c07
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This adds a few more text items/frame on my macbook, and more or less halves the
amount of transient 608 byte allocations (42mb -> 25mb).
Change-Id: Ib1a67c8203f777a2f3b790ff3597d1af34eed2dd
Done-with: Gunnar Sletta
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Performing a full scan of the pages each time a new node is to be allocated is
wasteful. Instead, store the last known free page, and search from that position
forwards. When an item is freed, reset the last known free page to search
forward from that position. If no free page is found, don't fall back to a full
scan - just allocate a new page.
The creation of lots of new items is a pretty common pattern (PageStack on
mobile and similar), thus it makes sense to optimize for it and avoid scanning
where possible.
This takes the time to instantiate 142k Rectangles in a single
component from 2433ms on the render thread to 495ms on the render thread (down
slightly from 511ms when using no paging at all, and down from 638ms on 5.3.1).
Separately to this, it may make sense to increase the size of pages, but
ideally, this will wait until there is a shared pool between renderers.
Change-Id: I2b335e230bc28fffcbb38b3fb43f3d441789c256
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: Iab7c9949941559b4773e5d4a0406dc58cfc70adb
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
|
|\| |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/qml/jsruntime/qv4engine_p.h
src/quick/items/qquickitemsmodule.cpp
src/quick/items/qquicktext.cpp
src/quick/util/qquickpixmapcache.cpp
tests/auto/quick/qquickwindow/tst_qquickwindow.cpp
Change-Id: I90ecaad6a4bfaa4f36149a7463f4d7141f4a516a
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
GLX, and potentially other platforms too, require that compatible
contexts and surfaces are created with the same screen.
This makes Quick functional on X.org configurations where each
physical screen represents a separate X screen on the same X display.
Change-Id: I03c87819e1aee148c880a3caca13d4a0c5409056
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
|