diff options
Diffstat (limited to 'webkit')
-rw-r--r-- | webkit/gpu/webgraphicscontext3d_in_process_command_buffer_impl.cc | 18 | ||||
-rw-r--r-- | webkit/gpu/webgraphicscontext3d_in_process_impl.cc | 17 | ||||
-rw-r--r-- | webkit/plugins/npapi/plugin_host.cc | 4 | ||||
-rw-r--r-- | webkit/support/webkit_support.cc | 3 |
4 files changed, 31 insertions, 11 deletions
diff --git a/webkit/gpu/webgraphicscontext3d_in_process_command_buffer_impl.cc b/webkit/gpu/webgraphicscontext3d_in_process_command_buffer_impl.cc index 2ee71e8..7b43d63 100644 --- a/webkit/gpu/webgraphicscontext3d_in_process_command_buffer_impl.cc +++ b/webkit/gpu/webgraphicscontext3d_in_process_command_buffer_impl.cc @@ -17,6 +17,7 @@ #include "ui/gfx/gl/gl_bindings_skia_in_process.h" #include "ui/gfx/gl/gl_context.h" #include "ui/gfx/gl/gl_implementation.h" +#include "ui/gfx/gl/gl_surface.h" namespace webkit { namespace gpu { @@ -102,7 +103,7 @@ bool WebGraphicsContext3DInProcessCommandBufferImpl::initialize( WebGraphicsContext3D::Attributes attributes, WebView* webView, bool render_directly_to_web_view) { - if (!gfx::GLContext::InitializeOneOff()) + if (!gfx::GLSurface::InitializeOneOff()) return false; gfx::BindSkiaToInProcessGL(); @@ -132,7 +133,13 @@ bool WebGraphicsContext3DInProcessCommandBufferImpl::initialize( // and from there to the window, and WebViewImpl::paint already // correctly handles the case where the compositor is active but // the output needs to go to a WebCanvas. - gl_context_.reset(gfx::GLContext::CreateOffscreenGLContext(share_context)); + scoped_ptr<gfx::GLSurface> surface(gfx::GLSurface::CreateOffscreenGLSurface( + gfx::Size(1, 1))); + if (!surface->Initialize()) + return false; + + gl_context_.reset(gfx::GLContext::CreateGLContext(surface.release(), + share_context)); if (!gl_context_.get()) { if (!is_gles2_) return false; @@ -145,7 +152,12 @@ bool WebGraphicsContext3DInProcessCommandBufferImpl::initialize( // and force them to drop their contexts, sending a context lost event if // necessary. webView->mainFrame()->collectGarbage(); - gl_context_.reset(gfx::GLContext::CreateOffscreenGLContext(share_context)); + + surface.reset(gfx::GLSurface::CreateOffscreenGLSurface(gfx::Size(1, 1))); + + gl_context_.reset(gfx::GLContext::CreateGLContext( + surface.release(), + share_context)); if (!gl_context_.get()) return false; } diff --git a/webkit/gpu/webgraphicscontext3d_in_process_impl.cc b/webkit/gpu/webgraphicscontext3d_in_process_impl.cc index 2fb703a..08d93ca 100644 --- a/webkit/gpu/webgraphicscontext3d_in_process_impl.cc +++ b/webkit/gpu/webgraphicscontext3d_in_process_impl.cc @@ -17,6 +17,7 @@ #include "ui/gfx/gl/gl_bindings_skia_in_process.h" #include "ui/gfx/gl/gl_context.h" #include "ui/gfx/gl/gl_implementation.h" +#include "ui/gfx/gl/gl_surface.h" namespace webkit { namespace gpu { @@ -102,7 +103,7 @@ bool WebGraphicsContext3DInProcessImpl::initialize( WebGraphicsContext3D::Attributes attributes, WebView* webView, bool render_directly_to_web_view) { - if (!gfx::GLContext::InitializeOneOff()) + if (!gfx::GLSurface::InitializeOneOff()) return false; gfx::BindSkiaToInProcessGL(); @@ -132,8 +133,9 @@ bool WebGraphicsContext3DInProcessImpl::initialize( // and from there to the window, and WebViewImpl::paint already // correctly handles the case where the compositor is active but // the output needs to go to a WebCanvas. - gl_context_.reset(gfx::GLContext::CreateOffscreenGLContext(share_context)); - if (!gl_context_.get()) { + scoped_ptr<gfx::GLSurface> surface(gfx::GLSurface::CreateOffscreenGLSurface( + gfx::Size(1, 1))); + if (!surface.get()) { if (!is_gles2_) return false; @@ -145,11 +147,16 @@ bool WebGraphicsContext3DInProcessImpl::initialize( // and force them to drop their contexts, sending a context lost event if // necessary. webView->mainFrame()->collectGarbage(); - gl_context_.reset(gfx::GLContext::CreateOffscreenGLContext(share_context)); - if (!gl_context_.get()) + surface.reset(gfx::GLSurface::CreateOffscreenGLSurface(gfx::Size(1, 1))); + if (!surface.get()) return false; } + gl_context_.reset(gfx::GLContext::CreateGLContext(surface.release(), + share_context)); + if (!gl_context_.get()) + return false; + attributes_ = attributes; // FIXME: for the moment we disable multisampling for the compositor. diff --git a/webkit/plugins/npapi/plugin_host.cc b/webkit/plugins/npapi/plugin_host.cc index b6021d46..e92c22e 100644 --- a/webkit/plugins/npapi/plugin_host.cc +++ b/webkit/plugins/npapi/plugin_host.cc @@ -17,8 +17,8 @@ #include "third_party/npapi/bindings/npruntime.h" #include "third_party/WebKit/Source/WebKit/chromium/public/WebBindings.h" #include "third_party/WebKit/Source/WebKit/chromium/public/WebKit.h" -#include "ui/gfx/gl/gl_context.h" #include "ui/gfx/gl/gl_implementation.h" +#include "ui/gfx/gl/gl_surface.h" #include "webkit/glue/webkit_glue.h" #include "webkit/plugins/npapi/default_plugin_shared.h" #include "webkit/plugins/npapi/npapi_extension_thunk.h" @@ -62,7 +62,7 @@ static bool SupportsSharingAcceleratedSurfaces() { gfx::GLImplementation implementation = gfx::GetGLImplementation(); if (implementation == gfx::kGLImplementationNone) { // Not initialized yet. - if (!gfx::GLContext::InitializeOneOff()) { + if (!gfx::GLSurface::InitializeOneOff()) { return false; } implementation = gfx::GetGLImplementation(); diff --git a/webkit/support/webkit_support.cc b/webkit/support/webkit_support.cc index 520b988..8210aaa 100644 --- a/webkit/support/webkit_support.cc +++ b/webkit/support/webkit_support.cc @@ -36,6 +36,7 @@ #include "third_party/WebKit/Source/WebKit/chromium/public/WebURLError.h" #include "ui/gfx/gl/gl_context.h" #include "ui/gfx/gl/gl_implementation.h" +#include "ui/gfx/gl/gl_surface.h" #include "webkit/appcache/web_application_cache_host_impl.h" #include "webkit/glue/media/video_renderer_impl.h" #include "webkit/glue/webkit_constants.h" @@ -323,7 +324,7 @@ WebKit::WebString GetWebKitRootDir() { void SetUpGLBindings(GLBindingPreferences bindingPref) { switch(bindingPref) { case GL_BINDING_DEFAULT: - gfx::GLContext::InitializeOneOff(); + gfx::GLSurface::InitializeOneOff(); break; case GL_BINDING_SOFTWARE_RENDERER: gfx::InitializeGLBindings(gfx::kGLImplementationOSMesaGL); |