Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2209)

Unified Diff: android_webview/browser/shared_renderer_state.h

Issue 266353003: aw: Ubercomp mega patch (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: r272176 Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: android_webview/browser/shared_renderer_state.h
diff --git a/android_webview/browser/shared_renderer_state.h b/android_webview/browser/shared_renderer_state.h
index 9c90731d7ad33f99baa1a13978ca169dba518177..385a751d3158b9f2a27e4830e7b2463224f9634f 100644
--- a/android_webview/browser/shared_renderer_state.h
+++ b/android_webview/browser/shared_renderer_state.h
@@ -5,33 +5,40 @@
#ifndef ANDROID_WEBVIEW_BROWSER_SHARED_RENDERER_STATE_H_
#define ANDROID_WEBVIEW_BROWSER_SHARED_RENDERER_STATE_H_
-#include <queue>
-
-#include "base/callback.h"
#include "base/message_loop/message_loop_proxy.h"
#include "base/synchronization/lock.h"
+#include "cc/output/compositor_frame.h"
+#include "cc/output/compositor_frame_ack.h"
#include "content/public/browser/android/synchronous_compositor.h"
#include "ui/gfx/geometry/rect.h"
#include "ui/gfx/geometry/vector2d.h"
+namespace cc {
+class CompositorFrameAck;
+}
+
+namespace gpu {
+class GLInProcessContext;
+}
+
namespace android_webview {
class BrowserViewRendererClient;
// Set by BrowserViewRenderer and read by HardwareRenderer.
struct DrawGLInput {
- unsigned int frame_id;
gfx::Rect global_visible_rect;
gfx::Vector2d scroll_offset;
int width;
int height;
+ cc::CompositorFrame frame;
DrawGLInput();
+ ~DrawGLInput();
};
// Set by HardwareRenderer and read by BrowserViewRenderer.
struct DrawGLResult {
- unsigned int frame_id;
bool clip_contains_visible_rect;
DrawGLResult();
@@ -61,17 +68,25 @@ class SharedRendererState {
void SetMemoryPolicyDirty(bool is_dirty);
bool IsMemoryPolicyDirty() const;
- void SetDrawGLInput(const DrawGLInput& input);
- DrawGLInput GetDrawGLInput() const;
+ void SetDrawGLInput(scoped_ptr<DrawGLInput> input);
+ scoped_ptr<DrawGLInput> PassDrawGLInput();
- void ClearClosureQueue();
- void AppendClosure(const base::Closure& closure);
- // Will return empty closure if queue empty.
- base::Closure PopFrontClosure();
+ // Set by UI and read by RT.
+ void SetInsideTeardown(bool inside);
+ bool IsInsideTeardown() const;
+ // Set by RT and read by UI.
void SetHardwareInitialized(bool initialized);
bool IsHardwareInitialized() const;
+ void SetSharedContext(gpu::GLInProcessContext* context);
+ gpu::GLInProcessContext* GetSharedContext() const;
+
+ void ReturnResources(const cc::TransferableResourceArray& input);
+ void InsertReturnedResources(const cc::ReturnedResourceArray& resources);
+ void SwapReturnedResources(cc::ReturnedResourceArray* resources);
+ bool ReturnedResourcesEmpty() const;
+
private:
void ClientRequestDrawGLOnUIThread();
@@ -88,9 +103,11 @@ class SharedRendererState {
// Set to true when SetMemoryPolicy called with a different memory policy.
// Set to false when memory policy is read and enforced to compositor.
bool memory_policy_dirty_;
- DrawGLInput draw_gl_input_;
- std::queue<base::Closure> closure_queue_;
+ scoped_ptr<DrawGLInput> draw_gl_input_;
+ bool inside_tear_down_;
bool hardware_initialized_;
+ gpu::GLInProcessContext* share_context_;
+ cc::ReturnedResourceArray returned_resources_;
};
} // namespace android_webview

Powered by Google App Engine
This is Rietveld 408576698