Index: gpu/command_buffer/service/gles2_cmd_decoder.cc |
=================================================================== |
--- gpu/command_buffer/service/gles2_cmd_decoder.cc (revision 106500) |
+++ gpu/command_buffer/service/gles2_cmd_decoder.cc (working copy) |
@@ -507,6 +507,7 @@ |
virtual bool ResizeOffscreenFrameBuffer(const gfx::Size& size); |
void UpdateParentTextureInfo(); |
virtual bool MakeCurrent(); |
+ virtual void ReleaseCurrent(); |
virtual GLES2Util* GetGLES2Util() { return &util_; } |
virtual gfx::GLContext* GetGLContext() { return context_.get(); } |
virtual gfx::GLSurface* GetGLSurface() { return surface_.get(); } |
@@ -514,9 +515,7 @@ |
virtual void SetResizeCallback(Callback1<gfx::Size>::Type* callback); |
-#if defined(OS_MACOSX) |
virtual void SetSwapBuffersCallback(Callback0::Type* callback); |
-#endif |
virtual void SetStreamTextureManager(StreamTextureManager* manager); |
virtual bool GetServiceTextureId(uint32 client_texture_id, |
@@ -1324,9 +1323,7 @@ |
scoped_ptr<Callback1<gfx::Size>::Type> resize_callback_; |
-#if defined(OS_MACOSX) |
scoped_ptr<Callback0::Type> swap_buffers_callback_; |
-#endif |
StreamTextureManager* stream_texture_manager_; |
@@ -2223,6 +2220,11 @@ |
return result; |
} |
+void GLES2DecoderImpl::ReleaseCurrent() { |
+ if (context_.get()) |
+ context_->ReleaseCurrent(surface_.get()); |
+} |
+ |
void GLES2DecoderImpl::RestoreCurrentRenderbufferBindings() { |
glBindRenderbufferEXT( |
GL_RENDERBUFFER, |
@@ -2371,11 +2373,9 @@ |
resize_callback_.reset(callback); |
} |
-#if defined(OS_MACOSX) |
void GLES2DecoderImpl::SetSwapBuffersCallback(Callback0::Type* callback) { |
swap_buffers_callback_.reset(callback); |
} |
-#endif |
void GLES2DecoderImpl::SetStreamTextureManager(StreamTextureManager* manager) { |
stream_texture_manager_ = manager; |
@@ -6851,11 +6851,10 @@ |
// For multisampled buffers, bind the resolved frame buffer so that |
// callbacks can call ReadPixels or CopyTexImage2D. |
ScopedResolvedFrameBufferBinder binder(this, true, false); |
-#if defined(OS_MACOSX) |
if (swap_buffers_callback_.get()) { |
swap_buffers_callback_->Run(); |
} |
-#endif |
+ |
return error::kNoError; |
} else { |
ScopedFrameBufferBinder binder(this, |
@@ -6876,11 +6875,10 @@ |
// Run the callback with |binder| in scope, so that the callback can call |
// ReadPixels or CopyTexImage2D. |
-#if defined(OS_MACOSX) |
if (swap_buffers_callback_.get()) { |
swap_buffers_callback_->Run(); |
} |
-#endif |
+ |
return error::kNoError; |
} |
} else { |
@@ -6891,11 +6889,9 @@ |
} |
} |
-#if defined(OS_MACOSX) |
if (swap_buffers_callback_.get()) { |
swap_buffers_callback_->Run(); |
} |
-#endif |
return error::kNoError; |
} |