Index: gpu/command_buffer/service/gl_state_restorer_impl.cc |
diff --git a/gpu/command_buffer/service/gl_state_restorer_impl.cc b/gpu/command_buffer/service/gl_state_restorer_impl.cc |
index 7b3c5ed384148318cde872d3a1c343ccb488feab..710eb2a42330c7c948b1014ec717576758fc3c2e 100644 |
--- a/gpu/command_buffer/service/gl_state_restorer_impl.cc |
+++ b/gpu/command_buffer/service/gl_state_restorer_impl.cc |
@@ -21,14 +21,17 @@ bool GLStateRestorerImpl::IsInitialized() { |
return decoder_->initialized(); |
} |
-void GLStateRestorerImpl::RestoreState() { |
+void GLStateRestorerImpl::RestoreState(const gfx::GLStateRestorer* prev_state) { |
DCHECK(decoder_.get()); |
- decoder_->RestoreState(); |
+ const GLStateRestorerImpl* restorer_impl = |
+ static_cast<const GLStateRestorerImpl*>(prev_state); |
+ decoder_->RestoreState( |
+ restorer_impl ? restorer_impl->GetContextState() : NULL); |
} |
void GLStateRestorerImpl::RestoreAllTextureUnitBindings() { |
DCHECK(decoder_.get()); |
- decoder_->RestoreAllTextureUnitBindings(); |
+ decoder_->RestoreAllTextureUnitBindings(NULL); |
} |
void GLStateRestorerImpl::RestoreFramebufferBindings() { |
@@ -36,4 +39,9 @@ void GLStateRestorerImpl::RestoreFramebufferBindings() { |
decoder_->RestoreFramebufferBindings(); |
} |
+const gles2::ContextState* GLStateRestorerImpl::GetContextState() const { |
+ DCHECK(decoder_.get()); |
+ return decoder_->GetContextState(); |
+} |
+ |
} // namespace gpu |