diff options
| author | amarinichev@google.com <amarinichev@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-02-02 20:17:18 +0000 |
|---|---|---|
| committer | amarinichev@google.com <amarinichev@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-02-02 20:17:18 +0000 |
| commit | 36681ead4b5a9aa5a36d5a27e6f41561dffc0955 (patch) | |
| tree | 3fec9b4ab3338a5831ebae17c0dc1e3785b3cac2 /chrome/renderer/webgraphicscontext3d_command_buffer_impl.cc | |
| parent | b62262a58b7506c0e0736674a95b302377ddb5ed (diff) | |
| download | chromium_src-36681ead4b5a9aa5a36d5a27e6f41561dffc0955.zip chromium_src-36681ead4b5a9aa5a36d5a27e6f41561dffc0955.tar.gz chromium_src-36681ead4b5a9aa5a36d5a27e6f41561dffc0955.tar.bz2 | |
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
Diffstat (limited to 'chrome/renderer/webgraphicscontext3d_command_buffer_impl.cc')
| -rw-r--r-- | chrome/renderer/webgraphicscontext3d_command_buffer_impl.cc | 22 |
1 files changed, 22 insertions, 0 deletions
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) |
