| 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));
|
|
|