diff options
author | Jocelyn Turcotte <jocelyn.turcotte@digia.com> | 2013-10-24 18:26:59 +0200 |
---|---|---|
committer | Jocelyn Turcotte <jocelyn.turcotte@digia.com> | 2013-11-06 17:31:13 +0100 |
commit | 9427c1a0222ebd67efef1a2c7990a0fa5c9aac84 (patch) | |
tree | 8963bbb40950722b04fc94b1eb3550dc345baf90 /chromium/ui | |
parent | 56f2c0752454e38177322547b3750a6ff15dab97 (diff) | |
download | qtwebengine-chromium-9427c1a0222ebd67efef1a2c7990a0fa5c9aac84.tar.gz |
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.
Change-Id: Ia2de987edb5a87097c2b29bedd8a1f908141d8ee
Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
Diffstat (limited to 'chromium/ui')
-rw-r--r-- | chromium/ui/gl/gl_share_group.cc | 3 | ||||
-rw-r--r-- | chromium/ui/gl/gl_share_group.h | 7 |
2 files changed, 8 insertions, 2 deletions
diff --git a/chromium/ui/gl/gl_share_group.cc b/chromium/ui/gl/gl_share_group.cc index 8e8958b49a4..347873dc3ab 100644 --- a/chromium/ui/gl/gl_share_group.cc +++ b/chromium/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/chromium/ui/gl/gl_share_group.h b/chromium/ui/gl/gl_share_group.h index 1deed63c541..f1b03690f34 100644 --- a/chromium/ui/gl/gl_share_group.h +++ b/chromium/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. |