Index: gpu/command_buffer/service/gles2_cmd_decoder.cc |
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder.cc b/gpu/command_buffer/service/gles2_cmd_decoder.cc |
index d6c513ec186ac4fa6986d0531ebcf0ccd48b3917..aceb6aa2749e715c665c68939857715363832a21 100644 |
--- a/gpu/command_buffer/service/gles2_cmd_decoder.cc |
+++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc |
@@ -477,6 +477,8 @@ class GLES2DecoderImpl : public base::SupportsWeakPtr<GLES2DecoderImpl>, |
virtual void SetResizeCallback(Callback1<gfx::Size>::Type* callback); |
+ virtual void SetSurfaceVisibleCallback(Callback1<bool>::Type* callback); |
+ |
#if defined(OS_MACOSX) |
virtual void SetSwapBuffersCallback(Callback0::Type* callback); |
#endif |
@@ -1284,6 +1286,8 @@ class GLES2DecoderImpl : public base::SupportsWeakPtr<GLES2DecoderImpl>, |
scoped_ptr<Callback1<gfx::Size>::Type> resize_callback_; |
+ scoped_ptr<Callback1<bool>::Type> surface_visible_callback_; |
+ |
#if defined(OS_MACOSX) |
scoped_ptr<Callback0::Type> swap_buffers_callback_; |
#endif |
@@ -2295,6 +2299,11 @@ void GLES2DecoderImpl::SetResizeCallback( |
resize_callback_.reset(callback); |
} |
+void GLES2DecoderImpl::SetSurfaceVisibleCallback( |
+ Callback1<bool>::Type* callback) { |
+ surface_visible_callback_.reset(callback); |
+} |
+ |
#if defined(OS_MACOSX) |
void GLES2DecoderImpl::SetSwapBuffersCallback(Callback0::Type* callback) { |
swap_buffers_callback_.reset(callback); |
@@ -2578,6 +2587,21 @@ error::Error GLES2DecoderImpl::HandleResizeCHROMIUM( |
return error::kNoError; |
} |
+error::Error GLES2DecoderImpl::HandleSetSurfaceVisibleCHROMIUM( |
+ uint32 immediate_data_size, const gles2::SetSurfaceVisibleCHROMIUM& c) { |
+ bool visible = !!static_cast<GLboolean>(c.visible); |
+ TRACE_EVENT1("gpu", "glSetSurfaceVisibleChromium", "visible", visible); |
+ |
+ if (surface_visible_callback_.get()) { |
+ surface_visible_callback_->Run(visible); |
+ } else { |
+ printf("[ . ] No callback (no image xport surface?)!\n\n"); |
+ fflush(stdout); |
+ } |
+ |
+ return error::kNoError; |
+} |
+ |
const char* GLES2DecoderImpl::GetCommandName(unsigned int command_id) const { |
if (command_id > kStartPoint && command_id < kNumCommands) { |
return gles2::GetCommandName(static_cast<CommandId>(command_id)); |