| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
Texture nodes has an alternative and rarely used way of setting source
rect using uv_top_left and uv_bottom_right. This patch adds support
for it.
Task-number: QTBUG-59407
Change-Id: Ic14c3dbdede6ece07eb3cda2dcfea8e860654ef2
Reviewed-by: Michael Brüning <michael.bruning@qt.io>
|
|
|
|
|
|
|
| |
The simplest adaptations to API and build changes in Chromium 55
Change-Id: I923fa188690a04902492317807f72f006bcab9c6
Reviewed-by: Michal Klocek <michal.klocek@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
After reparenting the view, the compositor data may still be the
same, but the node might be a different one. Check if the list of
scene graph nodes is empty when making the decision on whether to
build a new node tree or not. Also advance the node iterator for
missing render passes.
Task-number: QTBUG-58472
Change-Id: I28dfb40bda89470c7cdaec0aef8a976e307f5b6a
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
|\
| |
| |
| | |
Change-Id: I0c3654ad097809fe10bcc6a15827a0af3006c4e6
|
| |
| |
| |
| |
| |
| |
| | |
Don't try to access null OpenGL contexts.
Change-Id: I7d0e607e8d29d3cfba8d6e98cd142b951c960281
Reviewed-by: Michal Klocek <michal.klocek@qt.io>
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, Qt WebEngine always dropped all existing scene graph
nodes that were created for previous frames and built up a whole
new tree. The main reason for this was that the render pass
structure is not guaranteed to remain the same across two frames.
This resulted in a full repaint of every new frame, even if only
a small area had changed.
We now check first if the structure of the frame data has changed
across two sequential frames. We only discard the old nodes if
there actually has been a change. Otherwise, we reuse the scene
graph nodes and only update the nodes that have changed.
A general exception to this at the moment is video. In case any
streaming video or yuv video nodes are found in the render pass,
all nodes get recreated.
Task-number: QTBUG-57720
Change-Id: I8998577af48a163d54144f205c316ee427ed0307
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
|
|
|
|
|
|
| |
Make minimal changes so QtWebEngineCore 5.8 still builds with Qt LTR.
Change-Id: Iae3ae606b3457a6ca311ae174b3d2a331e9b20bc
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
| |
Task-number: QTBUG-54327
Change-Id: I759598d56aa0a74b64092365b422a743fb508ac6
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
|\
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/3rdparty
src/core/delegated_frame_node.h
src/webengine/api/qquickwebenginecontextmenudata.cpp
Change-Id: I163488d0d32cd981351608b2886f12e547e24672
|
| |\
| | |
| | |
| | | |
Change-Id: Ic739ab9db0851cc13467168840ea2549996432f8
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Fix for QTBUG-48969 was only half-baked patch and
introduced massive memory leak on fbo and texture
alloctaions. Delete fbo and extra allocated
textures.
Task-number: QTBUG-52575
Task-number: QTBUG-48969
Change-Id: I2148f37cd27dab9e40ab72caeb6857752b69379f
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: I15053486edfd42ee607250b4f14fb6eaa325c959
Reviewed-by: Michael Brüning <michael.bruning@qt.io>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: Idf8a511ba26d263fd9d014d87d5e1101d706da71
Reviewed-by: Michael Brüning <michael.bruning@qt.io>
|
|\| |
| | |
| | |
| | | |
Change-Id: Id5f97771be23a4393e8d3be98903c321377ae809
|
| | |
| | |
| | |
| | |
| | |
| | | |
Task-number: QTBUG-53972
Change-Id: Ie722e40e4763c5a78ce566d03fec6877d64b2023
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Use the new public QSG classes meant to replace QSGSimpleRectNode and
QSGSimpleTextureNode.
Change-Id: Icdfc3b4ba13dd28258defa955d050927abbae95b
Reviewed-by: Michael Brüning <michael.bruning@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
What was previous called QSGImageNode is now
QSGInternalImageNode
Task-number: QTBUG-54312
Change-Id: Iec286765bea5598d86932c81bfd122461a2e9884
Reviewed-by: Liang Qi <liang.qi@qt.io>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
|/ /
| |
| |
| |
| |
| |
| |
| | |
Handles new properties added to YUV nodes to handle 9- and 10-bit per
color channel videos.
Change-Id: If96660995650d3deeda7601714146fafeef57176
Reviewed-by: Michael Brüning <michael.bruning@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Chromium 49 switched to using SyncToken, making our old model based on
sync-points obsolete. This patch rewrites our syncing to instead take
advantage of new Chromium API for waiting on sync tokens. It also
moves the creation of the GLFences we use out of Chromium.
Task-number: QTBUG-51173
Change-Id: I04d726d4bc81bf6b7fe39bb2b5507e84a0b6991e
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
|
|\|
| |
| |
| | |
Change-Id: If884b8b8bc087a6a726476b49cdb48a0efaa173e
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In case of two individual screens on X11 qt global shared
context is not shared. Copy the textures between contexts using
FBO and system memory.
Task-number: QTBUG-48969
Change-Id: I07d9d5e27917fd63064215b4eb1d0b134065bd43
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Update files using old header.LGPL3 to use header.LGPL
Update files using old header.FLD to use new header.FDL
Update files using old header.BSD to use new header.BSD
Change-Id: I36a67aaa8c3ca6c7946308defc9c03c3571a7d23
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
|
|\|
| |
| |
| | |
Change-Id: I05fe27b8321944cf68cc96dfa9dfcaeb54c8c8cd
|
| |
| |
| |
| |
| |
| |
| |
| | |
Replace QList with QVector in all places where the type isn't a pointer,
and is not already (indirectly) exposed through public API.
Change-Id: I90e3db56bf9ebda6b3cb8fb4396d2ae283159727
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Support getting video as IOSurface frames on OS X.
With Chromium 45 we only get IOSurface frame when using
non-default command-line flags.
Change-Id: Ibf5226db53fa6fb51112bec9061d701918798ddd
Reviewed-by: Michael Brüning <michael.bruning@theqtcompany.com>
|
|/
|
|
|
|
|
| |
Updating to Chromium 47 and adapting API.
Change-Id: Id465bbcd4facd7c47cb8a9f4bd4e18cbdc0d1120
Reviewed-by: Michael Brüning <michael.bruning@theqtcompany.com>
|
|
|
|
|
|
|
| |
Fixing the minor differences needed to work with Chromium 45.
Change-Id: I5036b4b9a069d45e8dd37e24fab84cdfe5e67acc
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
|
|
|
|
|
|
|
|
| |
Define the needed extension when not available at compile time.
Change-Id: I93be828facb2d2e3bf16ac98c04ef3544d695675
Reviewed-by: Pierre Rossi <pierre.rossi@theqtcompany.com>
Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com>
|
|
|
|
|
|
|
|
|
| |
Updates shaders and rendering logic to match the new similar logic from
Chromium. This includes separate UV and YA channels and different YUV
color spaces.
Change-Id: I677ec5477207a00d259d69989be6b8737803221d
Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
|
|
|
|
|
|
|
|
|
|
| |
Chromium will now use the sync extension on OpenGL ES3, this means
we shouldn't check for DesktopGL specific define, and since we do not
use anything directly from the extension we don't need the ifdef.
Change-Id: If664a885042c216079f1c58c8e6245b1c5447c9e
Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
|
|
|
|
|
| |
Change-Id: I8261b201f1d6623eff3427b68b8d098c17d293d3
Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com>
|
|
|
|
|
|
|
|
| |
Adds the QtWebEngineCore namespace to all internal core API. This
ensures we don't export any internal symbols in the global namespace.
Change-Id: I26af888ea7c6c4c4d0f04c24a377c1a9d3c92751
Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com>
|
|
|
|
|
|
|
|
|
| |
Qt copyrights are now in The Qt Company, so we could update the source
code headers accordingly. In the same go we should also fix the links to
point to qt.io.
Change-Id: Ieb6bac7a1be5c25eb7cb917495b58b6a870ca6d4
Reviewed-by: Pierre Rossi <pierre.rossi@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* scoped_refptr operator for implicit conversion to pointer has
been disabled upstream: https://codereview.chromium.org/510323002
* Group permission API as done upstream:
https://codereview.chromium.org/622793002
* content_worker gyp target has been removed upstream.
* GetPageThumbnailData moved to DevToolsManagerDelegate.
* ui/ui_resources has been renamed to ui/resources
* WebPreferences and ResourceType have moved inside content.
* Merge ResourceBundle's InitSharedInstanceLocaleOnly with InitSharedInstanceWithLocale():
https://codereview.chromium.org/457103003
* Remove obsolete accessibility events.
* AX_EVENT_SELECTED_TEXT_CHANGED has been renamed to AX_EVENT_TEXT_SELECTION_CHANGED
* AX_ROLE_MATH_ELEMENT was removed upstream. https://codereview.chromium.org/695133002
* Screen::IsDIPEnabled has been removed upstream. https://codereview.chromium.org/672823002
* Update DevToolsHttpHandlerDelegateQt according to ShellDevToolsManagerDelegate.
* Various functionality from DevToolsHttpHandler was moved to DevToolsManagerDelegate
https://codereview.chromium.org/560323005
* DevToolsHttpHandler::Start expects a scoped_ptr now.
* Make sure event_factory_evdev.h is not included when USE_OZONE is not defined
* ErrorPageParams was moved into namespace error_page.
* Media Access is now handled by ContentBrowserClient::CheckMediaAccessPermission
* SpecialStoragePolicy moved to namespace storage
* Add implementation for new pure virtual function BrowserContext::GetSSLHostStateDelegate.
* RenderPass::Id was renamed to RenderPass::RenderPassId
* Include view_messages.h for ViewHostMsg_TextInputState_Param
* CERT_UNABLE_TO_CHECK_REVOCATION has been deprecated by Chromium:
https://codereview.chromium.org/449743002
* MailboxManager::ConsumeTexture only takes the mailbox as an argument
* Replace RWHVQt::TextInputStateChanged with RWHVQt::TextInputTypeChanged.
* RenderWidgetHostView::ScrollOffsetChanged has been removed.
* SkBitmap::Config was removed upstream.
* CopyFromCompositingSurfaceCallback has become an own type.
* AcceleratedSurfaceInitialized only takes route_id as an argument.
* ServerBoundCertService has been renamed to ChannelIDService.
Related API has been renamed accordingly.
* TextureImageTransportSurface was removed upstream.
* Update MediaCaptureDispatcher::OnMediaRequestStateChanged signature.
* AudioStream related functions are gone upstream.
https://codereview.chromium.org/569713002
* Add implementation for RenderWidgetHostViewQt::GetLastScrollOffset.
* Include generic touch_device implementation.
* switches::kDisableDesktopNotifications was removed upstream.
https://codereview.chromium.org/607843002
* PageTransition moved to ui.
* Messages headers are not guarded. Including them multiple times does hurt.
* ScaleGestureDetector does not create a standalone GestureDetector anymore.
https://codereview.chromium.org/501503003
* MotionEvent::Cancel and Clone are not virtual anymore.
https://codereview.chromium.org/502993004
* Exclude os_exchange_data_provider_mac from build.
* Remove argument from ScopedClipboardWriter ctor.
https://codereview.chromium.org/558913003
* Remove ShowPopupMenu override from WebContentsQt.
The function is not pure virtual anymore,
and we never implemented any specifics.
* Do not use clang on desktop linux.
* Request functions in ContentBrowserClient
were merged into RequestPermission.
* ninja: use configure.py --bootstrap instead of bootstrap.py
Change-Id: I3575612826db7845461a949b4e737264bb4e8d88
Reviewed-by: Pierre Rossi <pierre.rossi@theqtcompany.com>
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
.qmake.conf
src/3rdparty
src/core/content_browser_client_qt.h
src/core/core_module.pro
Change-Id: Ia05a6564a4d17ca14ff9b76ae018c3f4ef33d535
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We create an EGL_KHR_fence_sync on the chromium thread
but try to verify if the wait function implementation
is available by testing for the EGL_KHR_reusable_sync
extension in the scene graph thread.
Since the latter extension is not supported by most of
our devices, we never actually waited for the rendering
to finish.
Change-Id: Ied829d4035d42899cfb3f86de018bc48e61c0cc0
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
QHash::values will copy all values into a new QList, increasing the
ref-count of all stored QSharedPointer temporarily. Use the QHash
iterators directly to avoid this.
Change-Id: I49b1af24b706da195dc4df7206133f039198aad7
Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When the GPU process fails to initialize, or when the --disable-gpu
switch is provided, the delegating renderer will transfer resource
mailboxes through shared memory pixel data instead of through shared
texture IDs in the GPU process.
Handle this by uploading the pixel data ourselves with
createTextureFromImage, also allowing us to render tiles in the
QtQuick 2D Renderer.
Change-Id: I70ad7122cd0e52dd5ab435ae01e7f032b8e1194e
Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
As a first step to allow using plain textures for software resources,
split the Chromium resource handling responsibility into a
ResourceHolder class.
This also moves the static findMailboxTexture into a member
DelegatedFrameNode::findAndHoldResource in preparation for how
texture refcounting will work in the following patch.
Change-Id: Iaa64273c187af022045bbcaa956fcaa1f3defabc
Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Use QSGLayer and get rid of RenderPassTexture so that we can render
intermediate layers with the QtQuick 2D Renderer.
This reintroduces the private dependency on QtQuick since the
QSGLayer factory methods aren't available publically, and also that
we need to use QSGImageNode instead of QSGSimpleTextureNode to use
them.
Since we can't subclass QSGLayer to hold a reference to SG objects
directly in the nodes that use them, store them all in the wrapping
DelegatedFrameNode in a SGObjects structs. This works assuming that
the DelegatedFrameNode will always be at the root of our nodes,
layers and textures; if the scene graph destroys the
DelegatedFrameNode all child nodes will be destroyed with it.
Change-Id: Iedeceb8f98eb54fd8228a677c366d6df9a270e11
Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
What really matters with texture coordinates is the normalized 0-1
coordinate that will end up on vertex attributes. By default
QSGSimpleTextureNode will use the full texture size to calculate
those coordinates. In that case any texture size will end up with
the same (0,0)-(1,1) coordinates, so we don't really need to set
the actual texel size of the texture.
So instead of relying on dependent quads to come back and set the
size on the texture, do like the Chromium compositor does and just
make sure that the full normalized texture rect is set on vertices
if no texture size was provided on the resource. Since the scene
graph doesn't achieve this behavior by default with an empty
texture size, set a 1x1 size to get it to do what we want.
Change-Id: I48751d2c2f6ea82dcb4bec9e984b64f7e77316f6
Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
|
| |
| |
| |
| |
| |
| |
| | |
This is cleaner than hacking the QSGGeometry data ourselves.
Change-Id: Id2009ac8c6237472e56a11d6daa589e94bf10945
Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This clarifies that those objects span to the lifetime of a Chromium
frame rather than to the DelegatedFrameNode, which can be destroyed
by the scene graph when the window is unmapped.
The also avoids the confusion with the DelegatedFrameData Chromium
structure name.
Change-Id: Ibbeb2b10ef18704fc0934e285cca4ead23879646
Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
|
|/
|
|
|
|
|
|
| |
This can be useful for debugging in conjunction with the
--show-composited-layer-borders command line switch.
Change-Id: Iade97f935c26e11f74552f7018770b968a31daf1
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
|
|
|
|
|
|
|
|
| |
Enabling rendering into a WGL backbuffer, in addition to the EGL/angle
one.
Change-Id: I8f2e3f5ecf52b6db22712b1129059f462725a256
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Posting a runnable on the GPU thread's message loop and creating a GL
fence sync there assumes that there is a current GL context, and that
synchronizing with this context will make sure that we wait for all
GL context producing any of our consumed texture mailboxes.
This is however not always the case like when:
- The current GL context on the GPU thread is destroyed right before
our runnable is handled, displaying errors on the console that
glFlush needs a current context.
- The GL driver will do extra scheduling and let the scene graph
thread synchronize its GL command stream only with the GL context
in which the fence sync was created.
To remedy the situation, make sure that Chromium creates a fence sync
for every sync points associated with a mailbox that we consume and
do so directly in the GL context associated with the originating
glInsertSyncPointCHROMIUM call. Wait for all those syncs on the Qt
side afterward.
This might also help with a few erratic behaviors noticed on some
embedded GL drivers.
Change-Id: I5fc60fcf51497477b2e1b3a535d0a141954fc6e5
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
|
|
|
|
|
|
|
| |
Change-Id: Idbe0eafb51d77cc00e3a93179b81770724d5bfaa
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Reviewed-by: Tuukka Turunen <tuukka.turunen@digia.com>
Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Most of the patch is about upstream classes/methods that changed.
Other important details:
- icu data files are now used by default
- cygwin is no longer required to build on Windows
- RenderFrameHost has been replacing RenderViewHost in a few places,
following the separate process iframes support in Chromium
- The user agent is accessed through ContentClient::GetUserAgent
instead of from the command line switches
Change-Id: I86cc93aff7ce31176a80b0b4a5d54025674a451c
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
|
|
|
|
|
|
|
| |
This is now possible through GLSurfaceQt, and GLContextHelper respectively.
Change-Id: I06e13ccdea9737dc41b034befb4f01aa08d72c2a
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
|
|
|
|
|
|
|
|
|
| |
QSGEngine was added in Qt 5.4 to allow using the scene graph
without QQuickWindow. Use it for our FBO as well as for the
QOpenGLWidget rendering.
Change-Id: If4665d4f33c9dad69d2d4269309163bb5ffbd8e3
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
|