diff options
author | Jocelyn Turcotte <jocelyn.turcotte@digia.com> | 2014-10-15 14:46:20 +0200 |
---|---|---|
committer | Jocelyn Turcotte <jocelyn.turcotte@digia.com> | 2014-11-25 16:27:29 +0100 |
commit | d604139c9fc68a27a1d95faf9122a91abb9dd8f0 (patch) | |
tree | d687a20edad5565c5d6b154617e4d521a23fb9fe /src/core/delegated_frame_node.h | |
parent | e47a1ff932bfc0cc2a8886ae24d5b6805dd4f055 (diff) |
Support TransferableResource::is_software
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>
Diffstat (limited to 'src/core/delegated_frame_node.h')
-rw-r--r-- | src/core/delegated_frame_node.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/core/delegated_frame_node.h b/src/core/delegated_frame_node.h index 8fad76cb3..b866c94b4 100644 --- a/src/core/delegated_frame_node.h +++ b/src/core/delegated_frame_node.h @@ -84,10 +84,13 @@ private: static void syncPointRetired(DelegatedFrameNode *frameNode, QList<MailboxTexture *> *mailboxesToFetch); ResourceHolder *findAndHoldResource(unsigned resourceId, QHash<unsigned, QSharedPointer<ResourceHolder> > &candidates); + QSGTexture *initAndHoldTexture(ResourceHolder *resource, bool quadIsAllOpaque, RenderWidgetHostViewQtDelegate *apiDelegate = 0); + QExplicitlySharedDataPointer<ChromiumCompositorData> m_chromiumCompositorData; struct SGObjects { QList<QPair<cc::RenderPass::Id, QSharedPointer<QSGLayer> > > renderPassLayers; QList<QSharedPointer<QSGRootNode> > renderPassRootNodes; + QList<QSharedPointer<QSGTexture> > textureStrongRefs; } m_sgObjects; int m_numPendingSyncPoints; QMap<uint32, gfx::TransferableFence> m_mailboxGLFences; |