aboutsummaryrefslogtreecommitdiffstats
path: root/src/quickwidgets/qquickwidget.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Change graphicsAPI to graphicsApiLaszlo Agocs2016-06-011-1/+1
| | | | | Change-Id: I065f17abd1cb71cd8d6ead76abf7a544eb7a99c0 Reviewed-by: Andy Nichols <[email protected]>
* Merge remote-tracking branch 'origin/dev' into HEADLaszlo Agocs2016-05-241-4/+7
|\ | | | | | | Change-Id: If91e0e28d004f1db978dcab393f189743bb69cd5
| * Merge remote-tracking branch 'origin/5.7' into devLiang Qi2016-05-241-3/+7
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/qml/jsruntime/qv4engine_p.h src/qml/jsruntime/qv4runtime_p.h src/qml/qml/qqmldelayedcallqueue.cpp src/qml/qml/qqmlvaluetypewrapper.cpp src/qml/qml/qqmlvmemetaobject.cpp src/qml/qml/v8/qv8engine_p.h tests/auto/quick/qquicktext/tst_qquicktext.cpp Change-Id: I3f0608c7beb88088cbbef4d0db59920f56deaea9
| | * Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-05-191-3/+7
| | |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/plugins/qmltooling/qmldbg_profiler/qqmlprofilerservice.cpp src/qml/jsruntime/qv4engine.cpp src/qml/jsruntime/qv4engine_p.h Change-Id: I89ffccd699bee675732758d039e22224b275d60d
| | | * QQuickWidget: update() when resetting updatePending in showEvent()Ulf Hermann2016-05-171-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If updatePending is set, that means we want to call update() eventually. If we just reset updatePending without calling update(), we produce UI glitches. Change-Id: Ie7353b2f5da567e196dbee8c113920e0e4702304 Task-number: QTCREATORBUG-16022 Reviewed-by: Robert Loehning <[email protected]> Reviewed-by: Laszlo Agocs <[email protected]>
* | | | Merge remote-tracking branch 'origin/dev' into wip/scenegraphngLaszlo Agocs2016-05-071-4/+1
|\| | | | | | | | | | | | | | | Change-Id: Ifb69f73ac805afe5e3c8708fa975b7d3c13a4e48
| * | | Introduce delegating constructors.Friedemann Kleint2016-05-061-4/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Reduce code duplication by chaining constructors. Change-Id: I8a0afd20ed13d4eb938536dcb05787ba2565a4cc Reviewed-by: Simon Hausmann <[email protected]>
* | | | QQuickWidget: Partial update support with software renderingAndy Nichols2016-04-201-6/+20
| | | | | | | | | | | | | | | | | | | | Change-Id: I886287812c1c3cd56739e24470492adc90cfafbb Reviewed-by: Laszlo Agocs <[email protected]>
* | | | QQuickWidget: Enable use with software renderer backendAndy Nichols2016-04-201-70/+154
| | | | | | | | | | | | | | | | | | | | Change-Id: Ic7a550e55cc4ece4c3a5547dae5bf0dbb3f5b0ac Reviewed-by: Laszlo Agocs <[email protected]>
* | | | Merge remote-tracking branch 'origin/dev' into wip/scenegraphngLaszlo Agocs2016-04-061-1/+3
|\| | | | | | | | | | | | | | | Change-Id: Id98d3514e602a3c8c159a27be7b2fd24d7d290ae
| * | | Merge remote-tracking branch 'origin/5.7' into devAndy Nichols2016-04-051-1/+3
| |\| | | | | | | | | | | | | | Change-Id: I57b06e2e98beb010a56dd0593d93e078ecf76eea
| | * | Add a note saying that QQuickWidget::rootObject can return nullAlbert Astals Cid2016-04-041-1/+3
| | | | | | | | | | | | | | | | | | | | Change-Id: Ia5db63c39287d23c3ed279aa5671a9e7bc7b26c0 Reviewed-by: Gunnar Sletta <[email protected]>
* | | | Enable building Qt Quick module with QT_NO_OPENGL definedAndy Nichols2016-03-221-0/+4
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently the Qt Quick module depends on either the OpenGL or OpenGLES headers being available at build time. Since we are adding support for adaptations that do not depend on OpenGL, it should be possible to build Qt Quick in environments that do not have OpenGL development headers. This does present many challenges though because in some cases GL types, and classes that require OpenGL are part of the public APIs. However since these classes were never available when QT_NO_OPENGL was defined, it should be possible to redefine the function signatures under this scenario, since it's not possible to break binary compatibility if there never were any binaries to break compatibility with. One of the bigger changes that was necessary to facilitate this change is creating interfaces out of QSGContext and QSGRenderContext. Here the default behavior was usage of OpenGL directly, even though subclasses could override all OpenGL usage. Making them interfaces should bring QSGContext and QSGRenderContext more in line with the other classes present in the adaptation layer. Change-Id: Iaa54dc0f6cfd18d2da1d059548abf509bd71f200 Reviewed-by: Laszlo Agocs <[email protected]>
* / / Remove Windows CE.Friedemann Kleint2016-03-101-2/+2
|/ / | | | | | | | | | | | | | | Remove #ifdef sections for Q_OS_WINCE and wince .pro file clauses. Task-number: QTBUG-51673 Change-Id: I33ab74f0c2ce9086c3610c5fa727f281197b6b55 Reviewed-by: Robin Burchell <[email protected]>
* | Updated license headersJani Heikkinen2016-01-191-14/+20
| | | | | | | | | | | | | | | | | | | | | | From Qt 5.7 -> LGPL v2.1 isn't an option anymore, see http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation/ Updated license headers to use new LGPL header instead of LGPL21 one (in those files which will be under LGPL v3) Change-Id: Ic36f1a0a1436fe6ac6eeca8c2375a79857e9cb12 Reviewed-by: Lars Knoll <[email protected]>
* | Rewrite inspector serviceUlf Hermann2016-01-121-8/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The inspector service had bitrotted to a point where there was little code to be rescued. Apparently it was never really finished and quite some code didn't make any sense. This change removes some features that were unused or didn't work correctly: 1. Panning and Zooming with mouse wheel and touch interaction. This might be useful in some contexts, but the implementation was so broken that it wasn't worth trying to fix it. The whole idea of doing this on the layer of QQuickItems is not so great because there is no distinction between spontaneous changes triggered by the application and debugging interaction triggered from outside. It might be better to implement such functionality on a lower level, e.g. in the renderer. 2. Reloading the scene with debug changes. Use one of the other debug services to change properties. Clearing the component cache is a rather drastic measure and not necessary here. In turn, we get support for inspecting multiple windows, and all subclasses of QQuickWindow are supported now. Also, show-on-top works now. Task-number: QTBUG-33376 Change-Id: I65497f49c6b46128a600b0e3a31483eeef40313c Reviewed-by: Simon Hausmann <[email protected]>
* | Merge remote-tracking branch 'origin/5.6' into devLiang Qi2015-12-181-7/+16
|\| | | | | | | | | | | | | Conflicts: tests/auto/quick/qquicklistview/tst_qquicklistview.cpp Change-Id: I9588a3e2c7d590e031dd4c66905a79f0d74d3ac8
| * Fix crash when grabbing a QQuickWidget before it is shown.Friedemann Kleint2015-12-151-6/+7
| | | | | | | | | | | | | | | | Do not access null share contexts. Task-number: QTBUG-49929 Change-Id: I1c88563df71dd6c5d186b6f2ae147614fcc6ded9 Reviewed-by: Laszlo Agocs <[email protected]>
| * QQuickWidget: Update position of offscreen window in show().Friedemann Kleint2015-12-151-0/+1
| | | | | | | | | | | | | | | | | | | | The position of the offscreen window needs to be exact as it is used for popup menus by the Quick Controls. Updating the position in show amends the situation. Task-number: QTBUG-49097 Change-Id: I416021d6632ede45b1f9dc6b35a3ff15394566ee Reviewed-by: Laszlo Agocs <[email protected]>
| * Make QQuickWidget update inside a proxy widgetLaszlo Agocs2015-12-081-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | Performance will be bad but this allows having simple scenes in a QQuickWidget embedded into a QGraphicsView (ouch). This kind of setup is strongly discouraged but QWidget already has the readback-based fallback for render(), so we only need to add the update re-routing to the proxy widget. Task-number: QTBUG-49724 Change-Id: I1c80cb0a7b401327304ec7b92c77dc654d843b33 Reviewed-by: Paul Olav Tvete <[email protected]>
* | QSGRenderLoop: Remove the exhaust delay timer.Robin Burchell2015-12-071-0/+8
| | | | | | | | | | | | | | | | | | This was replaced by a proper requestUpdate mechanism at the QWindow level, so it isn't needed anymore. As we can't remove the QQuickWidget version so easily, document the exhaust_delay reasoning, as it is not too obvious. Change-Id: I0a15237bacae47dc87af6b6018a7bc1b47eb8d2d Reviewed-by: Gunnar Sletta <[email protected]>
* | Merge remote-tracking branch 'origin/5.6' into devLiang Qi2015-12-071-3/+5
|\| | | | | | | Change-Id: Ica75a71062d0613e415f2433c5c22c2e251b37cd
| * Create proper offscreen surface the first timePaul Olav Tvete2015-11-271-3/+5
| | | | | | | | | | | | | | | | | | | | | | Make sure the context is correct the first time we create the offscreenSurface, so we don't have to destroy it immediately afterwards and create a new one. This causes problems with some (probably buggy) drivers. Task-number: QTBUG-48440 Change-Id: I4790e1b02738fc84aca201430548934d8054e2b2 Reviewed-by: Laszlo Agocs <[email protected]>
* | Merge remote-tracking branch 'origin/5.6' into devLiang Qi2015-11-211-1/+36
|\| | | | | | | Change-Id: I3567f741394f912d4312460e85555b6c39b61cb4
| * Merge remote-tracking branch 'origin/5.5' into 5.6Liang Qi2015-11-171-1/+6
| |\ | | | | | | | | | | | | | | | | | | Conflicts: src/quick/util/qquickimageprovider.cpp Change-Id: I7ca4e49468b5ba697208287be4684e42b9900023
| | * Doc: added documentation to undocumented functionsNico Vertriest2015-11-021-1/+6
| | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-36985 Change-Id: I219375d405fbfb53611c0138698e955d9cd5d821 Reviewed-by: Venugopal Shivashankar <[email protected]> Reviewed-by: Topi Reiniö <[email protected]>
| * | QQuickWidget: Emulate visibility for offscreen windowUlf Hermann2015-11-161-0/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | The "visibility" and "visible" properties are exported to QML and should return useful values. Task-number: QTBUG-49054 Change-Id: I3c474885653c4b57659b02f183293e3186edc972 Reviewed-by: Laszlo Agocs <[email protected]>
* | | QmlProfiler: Collect useful input eventsUlf Hermann2015-10-301-7/+14
|/ / | | | | | | | | | | | | | | | | Just "Key" or "Mouse" as only attributes of input events are not very useful. This change adds some additional information and also collects input events from QQuickWindow. Change-Id: I062bbffeef3fa87776bc8be33f2321edf793faa2 Reviewed-by: Simon Hausmann <[email protected]>
* | Merge remote-tracking branch 'origin/5.5' into 5.6Liang Qi2015-10-021-1/+6
|\| | | | | | | | | | | | | Conflicts: src/quickwidgets/qquickwidget.cpp Change-Id: I3e2326bc86a9d3adaafbe3830b75ce9afa81c45b
| * Assert that context exists in QQuickWidgetPrivate::renderRobert Loehning2015-09-221-0/+2
| | | | | | | | | | | | Task-number: QTCREATORBUG-15040 Change-Id: I401aec030840175efda2e2f0ec60569ce9c46b02 Reviewed-by: Gunnar Sletta <[email protected]>
| * Don't try to render directly without context in showEventRobert Loehning2015-09-221-1/+4
| | | | | | | | | | | | | | | | | | | | Partially reverting db525935ccd64d2c5c674f8a66dbe7096d754e9f Task-number: QTCREATORBUG-15040 Change-Id: I6ced42a3d00bb1c419b2b0d4729bc4f5f3cf8bc7 Reviewed-by: Gunnar Sletta <[email protected]> Reviewed-by: Laszlo Agocs <[email protected]>
* | Fix up flawed TranslucentBackground usage in docs and examplesLaszlo Agocs2015-09-281-5/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Following the qtbase fixes, start doing things correctly in the QQuickWidget examples too. Remove the checkbox and use a --transparent command line argument (like in hellogl2). In addition --transparent --no_render_alpha can be used to verify the most problematic case: when alpha is present and the backingstore contains semi-transparent pixels in places where the underlying QOpenGLWidget is opaque. Here the result must still be an opaque pixel. This was previously ensured by a glColorMask call, now replaced by glBlendFuncSeparate in QPlatformBackingStore. Task-number: QTBUG-47276 Change-Id: Ia040f899405f73e95e957becee5df43683af9c39 Reviewed-by: Allan Sandfeld Jensen <[email protected]> Reviewed-by: Gunnar Sletta <[email protected]>
* | QQuickWidget: do not render when there is no fbo due to no sizeLaszlo Agocs2015-09-081-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | It is not invalid to have a widget with a 0,0 size. The FBO logic already handles this: no FBO is created in this case, it will be done on a subsequent resize. However, we can still get to render() which is not currently prepared to handle this case. Correct this. Task-number: QTBUG-47588 Task-number: QTBUG-48059 Change-Id: Idd674c536847e5f293fec5a40aa3038600473c27 Reviewed-by: Gunnar Sletta <[email protected]>
* | QQuickView/QQuickWidget::errors(): fix crashJ-P Nurmi2015-09-031-1/+1
| | | | | | | | | | | | Change-Id: Ie37ed5fac642931b658d2b738ddd45d23cda54c6 Reviewed-by: Robin Burchell <[email protected]> Reviewed-by: Mitch Curtis <[email protected]>
* | Retrieve services from debug connector, not via static instance()Ulf Hermann2015-08-041-5/+7
| | | | | | | | | | | | | | | | | | 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 <[email protected]>
* | Extract minimal abstract interfaces from debug services.Ulf Hermann2015-08-041-2/+2
| | | | | | | | | | | | | | | | We will access the services' functionality through those interfaces once they live in their own plugins. Change-Id: I0a0d7e73c07cb874b3b507cc4a9d304588c87bca Reviewed-by: Simon Hausmann <[email protected]>
* | Avoid multisampled contexts in QQuickWidgetLaszlo Agocs2015-08-041-1/+10
| | | | | | | | | | | | | | | | | | | | Like with QOpenGLWidget, not requesting a multisampled context unnecessarily avoids crashing with Mesa/Intel/EGL (f.ex. in the qquickviewcomparison example when enabling multisampling). Task-number: QTBUG-47509 Change-Id: Ia22110332f639a238cfb3b2c36916f65c00a7bbc Reviewed-by: Andy Nichols <[email protected]>
* | Extract minimal interface from QQmlDebugServer and use it.Ulf Hermann2015-07-301-3/+3
| | | | | | | | | | | | | | | | | | | | 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 <[email protected]>
* | Remove static proxy methods from QQmlDebugServiceUlf Hermann2015-07-291-2/+3
| | | | | | | | | | | | | | | | | | 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 <[email protected]>
* | Merge remote-tracking branch 'origin/5.5' into devLiang Qi2015-06-301-1/+8
|\| | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf src/qml/qml/qqmlengine.cpp src/quick/items/qquickitemsmodule.cpp tools/qml/main.cpp Change-Id: Ida8daf6b4d7e675385f2f5514c446e52dedaf136
| * Redirect the default FBO correctly with QQuickWidgetLaszlo Agocs2015-06-031-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 <[email protected]> Reviewed-by: Paul Olav Tvete <[email protected]>
* | Merge remote-tracking branch 'origin/5.5' into devSimon Hausmann2015-06-041-3/+13
|\| | | | | | | | | | | | | | | | | | | | | 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
| * Fix flickering when QQuickWidget becomes visibleJoni Poikelin2015-06-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | QQuickWidget used short delay before rendering. This caused black area to flash on the widget briefly. Instead of scheduling redraw, render scene immediately. Task-number: QTBUG-46387 Change-Id: I342d96a1aaef3244190221807b0d816815697623 Reviewed-by: Gunnar Sletta <[email protected]> Reviewed-by: Laszlo Agocs <[email protected]>
| * Create contexts and pbuffers with the correct screen in QQuickWidgetLaszlo Agocs2015-05-121-2/+12
| | | | | | | | | | Change-Id: I8e9db998eee0af5f62c1384f2dcb2028254cc642 Reviewed-by: Gunnar Sletta <[email protected]>
* | Merge remote-tracking branch 'origin/5.5' into devLiang Qi2015-04-221-1/+46
|\| | | | | | | | | | | | | | | | | Conflicts: src/qml/qml/qqmlbinding.cpp src/qml/jsruntime/qv4arraybuffer.cpp src/qml/jsruntime/qv4functionobject.cpp Change-Id: Ic752e9dfd69b282093651c9234c110a49762f06d
| * Support sRGB for text with QQuickWidgetLaszlo Agocs2015-04-161-0/+21
| | | | | | | | | | | | | | | | | | Otherwise we get visually different results with QQuickWindow and QQuickWidget on OS X. Task-number: QTBUG-42861 Change-Id: Icbf6f6e980129f5de73a88e7be7bef4f592e875e Reviewed-by: Gunnar Sletta <[email protected]>
| * Match the offscreen windows position to the QQuickWidget position.Christian Strømme2015-04-131-1/+25
| | | | | | | | | | | | | | | | | | | | The position of the offscreen window would always be set to 0,0, making it impossible to get the actual position of the scene. With this change, it will be possible for child windows or items in the scene to correctly calculate their global position. Change-Id: Ibd3ff03880209047776e86ad889b40cbf79c3e6e Reviewed-by: Laszlo Agocs <[email protected]>
* | Merge remote-tracking branch 'origin/5.5' into devLiang Qi2015-04-131-1/+20
|\| | | | | | | | | | | | | | | Conflicts: src/quick/util/qquickpixmapcache.cpp tests/auto/quick/qquickwindow/BLACKLIST Change-Id: Ie81612f2884f8ea508c48ba2735ec54ea1c2eca5
| * QQuickWidget: expose the underlying QQuickWindowGiuseppe D'Angelo2015-03-271-0/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | There's a number of APIs (such as all the scenegraph-related signals) that are currently missing from QQuickWidget. Instead of duplicating every API in QQuickWidget, simply expose the underlying offscreen QQuickWindow. Task-number: QTBUG-45260 Change-Id: I1a89fe600ce675963ea24ee6dd56d6ca4fea9cd2 Reviewed-by: Andy Shaw <[email protected]> Reviewed-by: Gunnar Sletta <[email protected]> Reviewed-by: Laszlo Agocs <[email protected]>
| * Fix flushing QQuickWidgetLaszlo Agocs2015-03-261-1/+1
| | | | | | | | | | | | | | | | Like it was done for QOpenGLWidget. Task-number: QTBUG-45106 Change-Id: I69c11f53f781f57ceebb9b7ed95a2753bff31492 Reviewed-by: Giuseppe D'Angelo <[email protected]>