Index: android_webview/browser/shared_renderer_state.cc |
diff --git a/android_webview/browser/shared_renderer_state.cc b/android_webview/browser/shared_renderer_state.cc |
index 193eca045ddcc0eb53f1e0b2f3f370c0c27263e6..42a42450ac46d8f87f8fddd6295c36f088001f57 100644 |
--- a/android_webview/browser/shared_renderer_state.cc |
+++ b/android_webview/browser/shared_renderer_state.cc |
@@ -10,9 +10,14 @@ |
namespace android_webview { |
-DrawGLInput::DrawGLInput() : frame_id(0), width(0), height(0) {} |
+DrawGLInput::DrawGLInput() : width(0), height(0) { |
+} |
+ |
+DrawGLInput::~DrawGLInput() { |
+} |
-DrawGLResult::DrawGLResult() : frame_id(0), clip_contains_visible_rect(false) {} |
+DrawGLResult::DrawGLResult() : clip_contains_visible_rect(false) { |
+} |
SharedRendererState::SharedRendererState( |
scoped_refptr<base::MessageLoopProxy> ui_loop, |
@@ -24,7 +29,8 @@ SharedRendererState::SharedRendererState( |
compositor_(NULL), |
memory_policy_dirty_(false), |
hardware_allowed_(false), |
- hardware_initialized_(false) { |
+ hardware_initialized_(false), |
+ share_context_(NULL) { |
DCHECK(ui_loop_->BelongsToCurrentThread()); |
DCHECK(client_on_ui_); |
} |
@@ -77,14 +83,15 @@ SharedRendererState::GetMemoryPolicy() const { |
return memory_policy_; |
} |
-void SharedRendererState::SetDrawGLInput(const DrawGLInput& input) { |
+void SharedRendererState::SetDrawGLInput(scoped_ptr<DrawGLInput> input) { |
base::AutoLock lock(lock_); |
- draw_gl_input_ = input; |
+ DCHECK(!draw_gl_input_.get()); |
+ draw_gl_input_ = input.Pass(); |
} |
-DrawGLInput SharedRendererState::GetDrawGLInput() const { |
+scoped_ptr<DrawGLInput> SharedRendererState::PassDrawGLInput() { |
base::AutoLock lock(lock_); |
- return draw_gl_input_; |
+ return draw_gl_input_.Pass(); |
} |
void SharedRendererState::SetHardwareAllowed(bool allowed) { |
@@ -107,6 +114,18 @@ bool SharedRendererState::IsHardwareInitialized() const { |
return hardware_initialized_; |
} |
+void SharedRendererState::SetSharedContext(gpu::GLInProcessContext* context) { |
+ base::AutoLock lock(lock_); |
+ DCHECK(!share_context_ || !context); |
+ share_context_ = context; |
+} |
+ |
+gpu::GLInProcessContext* SharedRendererState::GetSharedContext() const { |
+ base::AutoLock lock(lock_); |
+ DCHECK(share_context_); |
+ return share_context_; |
+} |
+ |
void SharedRendererState::SetMemoryPolicyDirty(bool is_dirty) { |
base::AutoLock lock(lock_); |
memory_policy_dirty_ = is_dirty; |
@@ -117,4 +136,28 @@ bool SharedRendererState::IsMemoryPolicyDirty() const { |
return memory_policy_dirty_; |
} |
+void SharedRendererState::ReturnResources( |
+ const cc::TransferableResourceArray& input) { |
+ base::AutoLock lock(lock_); |
+ cc::TransferableResource::ReturnResources(input, &returned_resources_); |
+} |
+ |
+void SharedRendererState::InsertReturnedResources( |
+ const cc::ReturnedResourceArray& resources) { |
+ base::AutoLock lock(lock_); |
+ returned_resources_.insert( |
+ returned_resources_.end(), resources.begin(), resources.end()); |
+} |
+ |
+void SharedRendererState::SwapReturnedResources( |
+ cc::ReturnedResourceArray* resources) { |
+ base::AutoLock lock(lock_); |
+ resources->swap(returned_resources_); |
+} |
+ |
+bool SharedRendererState::ReturnedResourcesEmpty() const { |
+ base::AutoLock lock(lock_); |
+ return returned_resources_.empty(); |
+} |
+ |
} // namespace android_webview |