diff options
Diffstat (limited to 'patches/chromium/0013-Add-seams-to-setup-GL-contexts-sharing-with-QtQuick.patch')
-rw-r--r-- | patches/chromium/0013-Add-seams-to-setup-GL-contexts-sharing-with-QtQuick.patch | 106 |
1 files changed, 0 insertions, 106 deletions
diff --git a/patches/chromium/0013-Add-seams-to-setup-GL-contexts-sharing-with-QtQuick.patch b/patches/chromium/0013-Add-seams-to-setup-GL-contexts-sharing-with-QtQuick.patch deleted file mode 100644 index febdf6aab..000000000 --- a/patches/chromium/0013-Add-seams-to-setup-GL-contexts-sharing-with-QtQuick.patch +++ /dev/null @@ -1,106 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Jocelyn Turcotte <jocelyn.turcotte@digia.com> -Date: Thu, 24 Oct 2013 18:26:59 +0200 -Subject: Add seams to setup GL contexts sharing with QtQuick. - -This will allow us to know right before the first GL context is -instantiated by Chromium so that we can install those contexts to -be shared with QtQuick GL contexts as well. ---- - content/common/gpu/gpu_channel_manager.cc | 8 +++++++- - content/public/browser/content_browser_client.h | 5 +++++ - ui/gl/gl_share_group.cc | 3 +++ - ui/gl/gl_share_group.h | 7 +++++-- - 4 files changed, 20 insertions(+), 3 deletions(-) - -diff --git a/content/common/gpu/gpu_channel_manager.cc b/content/common/gpu/gpu_channel_manager.cc -index 8b466bd..fe3f7b3 100644 ---- a/content/common/gpu/gpu_channel_manager.cc -+++ b/content/common/gpu/gpu_channel_manager.cc -@@ -11,6 +11,7 @@ - #include "content/common/gpu/gpu_memory_manager.h" - #include "content/common/gpu/gpu_messages.h" - #include "content/common/gpu/sync_point_manager.h" -+#include "content/public/browser/content_browser_client.h" - #include "gpu/command_buffer/service/feature_info.h" - #include "gpu/command_buffer/service/gpu_switches.h" - #include "gpu/command_buffer/service/mailbox_manager.h" -@@ -124,7 +125,12 @@ void GpuChannelManager::OnEstablishChannel(int client_id, bool share_context) { - DCHECK(!mailbox_manager_.get()); - mailbox_manager_ = new gpu::gles2::MailboxManager; - } -- share_group = share_group_.get(); -+ // Qt: Ask the browser client at the top to manage the context sharing. -+ // This can only work with --in-process-gpu or --single-process. -+ if (GetContentClient()->browser() && GetContentClient()->browser()->GetInProcessGpuShareGroup()) -+ share_group = GetContentClient()->browser()->GetInProcessGpuShareGroup(); -+ else -+ share_group = share_group_.get(); - mailbox_manager = mailbox_manager_.get(); - } - -diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h -index 8633105..639998f 100644 ---- a/content/public/browser/content_browser_client.h -+++ b/content/public/browser/content_browser_client.h -@@ -45,6 +45,7 @@ class FilePath; - } - - namespace gfx { -+class GLShareGroup; - class ImageSkia; - } - -@@ -582,6 +583,10 @@ class CONTENT_EXPORT ContentBrowserClient { - // information. - virtual VibrationProvider* OverrideVibrationProvider(); - -+ // Allow an embedder to provide a share group reimplementation to connect renderer -+ // GL contexts with the root compositor. -+ virtual gfx::GLShareGroup* GetInProcessGpuShareGroup() { return 0; } -+ - #if defined(OS_POSIX) && !defined(OS_MACOSX) - // Populates |mappings| with all files that need to be mapped before launching - // a child process. -diff --git a/ui/gl/gl_share_group.cc b/ui/gl/gl_share_group.cc -index 8e8958b..347873d 100644 ---- a/ui/gl/gl_share_group.cc -+++ b/ui/gl/gl_share_group.cc -@@ -18,6 +18,9 @@ GLShareGroup::GLShareGroup() - } - - void GLShareGroup::AddContext(GLContext* context) { -+ if (contexts_.empty()) -+ AboutToAddFirstContext(); -+ - contexts_.insert(context); - } - -diff --git a/ui/gl/gl_share_group.h b/ui/gl/gl_share_group.h -index 1deed63..f1b0369 100644 ---- a/ui/gl/gl_share_group.h -+++ b/ui/gl/gl_share_group.h -@@ -31,7 +31,7 @@ class GL_EXPORT GLShareGroup : public base::RefCounted<GLShareGroup> { - - // Returns a pointer to any initialized context in the share group - // or NULL if there are no initialized contexts in the share group. -- GLContext* GetContext(); -+ virtual GLContext* GetContext(); - - // Sets and returns the unique shared GL context. Used for context - // virtualization. -@@ -45,10 +45,13 @@ class GL_EXPORT GLShareGroup : public base::RefCounted<GLShareGroup> { - int GetRendererID(); - #endif - -+ protected: -+ virtual ~GLShareGroup(); -+ virtual void AboutToAddFirstContext() { } -+ - private: - friend class base::RefCounted<GLShareGroup>; - -- ~GLShareGroup(); - - // References to GLContext are by raw pointer to avoid a reference count - // cycle. |