diff options
author | apatrick@chromium.org <apatrick@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-06-16 20:54:53 +0000 |
---|---|---|
committer | apatrick@chromium.org <apatrick@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-06-16 20:54:53 +0000 |
commit | 7196e011d46f597b406e43a1978fa9d846e747c4 (patch) | |
tree | b13701827207e5a223c9a916bdd90d6ca892e6d8 /gpu/command_buffer/service/gpu_scheduler_win.cc | |
parent | c59aa47960369c63ac773d5cf4b2d1052d4a69c3 (diff) | |
download | chromium_src-7196e011d46f597b406e43a1978fa9d846e747c4.zip chromium_src-7196e011d46f597b406e43a1978fa9d846e747c4.tar.gz chromium_src-7196e011d46f597b406e43a1978fa9d846e747c4.tar.bz2 |
Automatically put all GL contexts associated with a particular GPU channel (and renderer process) in the same share group.
This is work towards allowing offscreen canvas contexts to be allocated before compositor view contexts are created. This is a problem because a canvas might be created before the window it will be displayed in exists.
This does not fix the bug on its own.
BUG=80703
Review URL: http://codereview.chromium.org/7104148
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@89395 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'gpu/command_buffer/service/gpu_scheduler_win.cc')
-rw-r--r-- | gpu/command_buffer/service/gpu_scheduler_win.cc | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/gpu/command_buffer/service/gpu_scheduler_win.cc b/gpu/command_buffer/service/gpu_scheduler_win.cc index 81ab10b..a92d225 100644 --- a/gpu/command_buffer/service/gpu_scheduler_win.cc +++ b/gpu/command_buffer/service/gpu_scheduler_win.cc @@ -6,6 +6,7 @@ #include "gpu/command_buffer/service/gpu_scheduler.h" #include "ui/gfx/gl/gl_context.h" +#include "ui/gfx/gl/gl_share_group.h" #include "ui/gfx/gl/gl_surface.h" using ::base::SharedMemory; @@ -19,16 +20,13 @@ bool GpuScheduler::Initialize( const char* allowed_extensions, const std::vector<int32>& attribs, GpuScheduler* parent, - uint32 parent_texture_id) { - // Get the parent decoder and the GLContext to share IDs with, if any. + uint32 parent_texture_id, + gfx::GLShareGroup* share_group) { + // Get the parent decoder. gles2::GLES2Decoder* parent_decoder = NULL; - gfx::GLContext* parent_context = NULL; if (parent) { parent_decoder = parent->decoder_.get(); DCHECK(parent_decoder); - - parent_context = parent_decoder->GetGLContext(); - DCHECK(parent_context); } // Create either a view or pbuffer based GLSurface. @@ -47,7 +45,7 @@ bool GpuScheduler::Initialize( // Create a GLContext and attach the surface. scoped_refptr<gfx::GLContext> context( - gfx::GLContext::CreateGLContext(parent_context, surface.get())); + gfx::GLContext::CreateGLContext(share_group, surface.get())); if (!context.get()) { LOG(ERROR) << "CreateGLContext failed.\n"; Destroy(); |