From 36681ead4b5a9aa5a36d5a27e6f41561dffc0955 Mon Sep 17 00:00:00 2001 From: "amarinichev@google.com" Date: Wed, 2 Feb 2011 20:17:18 +0000 Subject: Added context lost callback. Methods added are: CommandBufferProxy::SetChannelErrorCallback ggl::SetContextLostCallback WebGraphicsContext3DCommandBufferImpl::setContextLostCallback WebGraphicsContext3DInProcessImpl::setContextLostCallback (empty) This can land only after https://bugs.webkit.org/show_bug.cgi?id=53153, because it needs WebGraphicsContext3D::WebGraphicsContextLostCallback class. After this lands, webkit change adding lost context methods to GraphicsContext3D needs to land before the bug is closed. BUG=67837 TEST=webkit change pending Review URL: http://codereview.chromium.org/6317015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@73496 0039d316-1c4b-4281-b951-d872f2087c98 --- .../webgraphicscontext3d_command_buffer_impl.cc | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'chrome/renderer/webgraphicscontext3d_command_buffer_impl.cc') diff --git a/chrome/renderer/webgraphicscontext3d_command_buffer_impl.cc b/chrome/renderer/webgraphicscontext3d_command_buffer_impl.cc index c5ad191..52f8440 100644 --- a/chrome/renderer/webgraphicscontext3d_command_buffer_impl.cc +++ b/chrome/renderer/webgraphicscontext3d_command_buffer_impl.cc @@ -27,6 +27,10 @@ WebGraphicsContext3DCommandBufferImpl::WebGraphicsContext3DCommandBufferImpl() : context_(NULL), web_view_(NULL), +#if defined(OS_MACOSX) + plugin_handle_(NULL), +#endif // defined(OS_MACOSX) + context_lost_callback_(0), cached_width_(0), cached_height_(0), bound_fbo_(0) { @@ -126,6 +130,12 @@ bool WebGraphicsContext3DCommandBufferImpl::initialize( } if (!context_) return false; + + ggl::SetContextLostCallback( + context_, + NewCallback(this, + &WebGraphicsContext3DCommandBufferImpl::OnContextLost)); + // TODO(gman): Remove this. const CommandLine& command_line = *CommandLine::ForCurrentProcess(); if (command_line.HasSwitch(switches::kDisableGLSLTranslator)) { @@ -998,4 +1008,16 @@ void WebGraphicsContext3DCommandBufferImpl::OnSwapBuffers() { renderview->DidFlushPaint(); } +void WebGraphicsContext3DCommandBufferImpl::setContextLostCallback( + WebGraphicsContext3D::WebGraphicsContextLostCallback* cb) +{ + context_lost_callback_ = cb; +} + +void WebGraphicsContext3DCommandBufferImpl::OnContextLost() { + if (context_lost_callback_) { + context_lost_callback_->onContextLost(); + } +} + #endif // defined(ENABLE_GPU) -- cgit v1.1